7
$ 0 จะรวมเส้นทางไปยังสคริปต์หรือไม่
ฉันต้องการ grep สคริปต์ปัจจุบันเพื่อให้ฉันสามารถพิมพ์ความช่วยเหลือและข้อมูลรุ่นจากส่วนความเห็นที่ด้านบน ฉันกำลังคิดถึงสิ่งนี้: grep '^#h ' -- "$0" | sed -e 's/#h //' แต่ฉันสงสัยว่าจะเกิดอะไรขึ้นถ้าสคริปต์นั้นอยู่ในไดเรกทอรีที่อยู่ใน PATH และถูกเรียกโดยไม่ระบุไดเรกทอรีอย่างชัดเจน ฉันค้นหาคำอธิบายของตัวแปรพิเศษและพบคำอธิบายต่อไปนี้ของ$0: ชื่อของเชลล์หรือโปรแกรมปัจจุบัน ชื่อไฟล์ของสคริปต์ปัจจุบัน ชื่อของสคริปต์เอง คำสั่งในขณะที่มันถูกเรียกใช้ สิ่งเหล่านี้ไม่ทำให้ชัดเจนว่าค่าของ$0จะรวมถึงไดเรกทอรีหรือไม่หากสคริปต์ถูกเรียกใช้โดยไม่มี อันสุดท้ายบ่งบอกถึงความจริงที่ว่ามันจะไม่เกิดขึ้น ทดสอบบนระบบของฉัน (Bash 4.1) ฉันสร้างไฟล์เรียกทำงานได้ใน / usr / local / bin ชื่อscriptnameด้วยหนึ่งบรรทัดecho $0และเรียกใช้จากตำแหน่งอื่น นี่คือผลลัพธ์ของฉัน: > cd /usr/local/bin/test > ../scriptname ../scriptname > cd /usr/local/bin > ./scriptname ./scriptname > …
11
shell-script
path