Họ tương đương với bash ở chỗ họ làm chính xác điều tương tự. Mặt khác, source
dài hơn 5 ký tự và không thể di chuyển sang hệ vỏ chỉ POSIX hoặc Bourne trong khi .
(dấu chấm) là vậy, vì vậy tôi không bao giờ bận tâm sử dụng source
.
Điều đó là chính xác - tìm nguồn cung cấp một tệp chạy các lệnh trong shell hiện tại và nó sẽ ảnh hưởng đến môi trường shell hiện tại của bạn. Bạn vẫn có thể truyền các đối số cho tệp có nguồn gốc và bash sẽ thực sự tìm kiếm $PATH
tên tệp giống như một lệnh thông thường nếu nó không chứa bất kỳ dấu gạch chéo nào.
Không liên quan đến câu hỏi ban đầu của .
vs source
, nhưng trong ví dụ của bạn,
. ./myScript.sh
không giống với
source myScript.sh
bởi vì trong khi .
và source
giống nhau về chức năng, myScript.sh
và ./myScript.sh
không giống nhau. Vì ./myScript.sh
chứa một dấu gạch chéo, nó được hiểu là một đường dẫn và shell chỉ sử dụng ./myScript.sh
. Tuy nhiên, myScript.sh
không có dấu gạch chéo nên shell thực hiện $PATH
tìm kiếm trước. Đây là hành vi tiêu chuẩn được chỉ định POSIX cho .
. Hầu hết các shell mặc định này mặc dù chúng có thể thêm các tiện ích mở rộng (chẳng hạn như tìm kiếm trong thư mục làm việc hiện tại sau khi tìm kiếm đường dẫn) hoặc các tùy chọn để thay đổi hành vi của .
/ source
.