Khi bạn chạy một tập lệnh shell, nó được thực hiện trong một sub-shell nên nó không thể ảnh hưởng đến môi trường của shell cha. Bạn muốn tạo nguồn tập lệnh bằng cách thực hiện:
. ./setfoo.sh
Điều này thực thi nó trong ngữ cảnh của trình bao hiện tại , không phải dưới dạng trình bao phụ .
Từ trang người đàn ông bash:
. tên tệp [đối số]
tên tệp nguồn [đối số]
Đọc và thực thi các lệnh từ tên tệp trong môi trường trình bao hiện tại và trả về trạng thái thoát của lệnh cuối cùng được thực thi từ tên tệp.
Nếu tên tệp không chứa dấu gạch chéo, tên tệp trong PATH được sử dụng để tìm thư mục chứa tên tệp.
Tệp được tìm kiếm trong PATH không cần phải thực thi được. Khi bash không ở chế độ POSIX, thư mục hiện tại được tìm kiếm nếu không tìm thấy tệp nào trong PATH.
Nếu tùy chọn chuacepath cho lệnh nội trang shopt bị tắt, PATH sẽ không được tìm kiếm.
Nếu bất kỳ đối số nào được cung cấp, chúng sẽ trở thành tham số vị trí khi tên tệp được thực thi.
Nếu không, các tham số vị trí không thay đổi. Trạng thái trả về là trạng thái của lệnh cuối cùng được thoát trong tập lệnh (0 nếu không có lệnh nào được thực thi) và false nếu không tìm thấy tên tệp hoặc không thể đọc được.