ความแตกต่างระหว่างการเรียกใช้งานสคริปต์เช่นนี้:
./test.sh
และดำเนินการสคริปต์เช่นนี้:
. test.sh
?
ฉันลองสคริปต์สองบรรทัดแบบง่าย ๆ เพื่อดูว่าฉันสามารถค้นหาได้หรือไม่ว่ามีความแตกต่าง:
#!/bin/bash
ls
แต่ทั้งสอง. test.sh
และ./test.sh
ส่งคืนข้อมูลเดียวกัน
test.sh
ไม่ได้เป็นเช่นเดียวกับ./test.sh
(คนแรกที่จะเรียกPATH
การค้นหา) เพื่อให้มี. test.sh
และ. ./test.sh
ที่แตกต่างกันในทางเดียวกัน (อดีตจะเรียกPATH
การค้นหา) กระสุนจำนวนมากดูเหมือนจะรวม.
อยู่ในตอนท้ายPATH
เมื่อทำการ.
ค้นหาเส้นทาง แต่พฤติกรรมนี้ไม่ได้มาตรฐาน ดังนั้นจึงเป็นที่ถูกต้องมากขึ้นเพื่อเปรียบเทียบtest.sh
เทียบ. test.sh
และเทียบ./test.sh
. ./test.sh