Sự khác biệt giữa thực thi một tập lệnh như thế này là gì:
./test.sh
và thực thi một kịch bản như thế này:
. test.sh
?
Tôi đã thử một kịch bản hai dòng đơn giản để xem liệu tôi có thể tìm thấy nếu có sự khác biệt không:
#!/bin/bash
ls
Nhưng cả hai . test.sh
và ./test.sh
trả lại cùng một thông tin.
test.sh
không giống như ./test.sh
(lần đầu tiên gọi một PATH
tìm kiếm), vì vậy . test.sh
và . ./test.sh
khác nhau theo cùng một cách (trước đây gọi một PATH
tìm kiếm). Nhiều shell dường như hoàn toàn bao gồm .
vào cuối PATH
khi thực hiện .
tìm kiếm đường dẫn, nhưng hành vi này không chuẩn. Vì vậy, nó là chính xác hơn để so sánh test.sh
vs . test.sh
và ./test.sh
vs . ./test.sh
.