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.shvà ./test.shtrả lại cùng một thông tin.
test.shkhông giống như ./test.sh(lần đầu tiên gọi một PATHtìm kiếm), vì vậy . test.shvà . ./test.shkhác nhau theo cùng một cách (trước đây gọi một PATHtìm kiếm). Nhiều shell dường như hoàn toàn bao gồm .vào cuối PATHkhi 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.shvs . test.shvà ./test.shvs . ./test.sh.