อะไรคือความแตกต่างระหว่างการเรียกใช้งานสคริปต์ (เช่น / some / script) กับsource /some/script
และ. /some/script
ใน Bash?
อะไรคือความแตกต่างระหว่างการเรียกใช้งานสคริปต์ (เช่น / some / script) กับsource /some/script
และ. /some/script
ใน Bash?
คำตอบ:
source
และ.
มีความหมายเหมือนในทุบตี
สำหรับทุกคนที่อาจต้องการตรวจสอบว่าคำสั่งที่เป็นเพียงคำพ้องความหมายและไม่มีอะไรเพิ่มเติมให้ดูที่รหัสที่มากล่าวว่าสำหรับรุ่น 4.3 builtins/source.def
และตรวจสอบไฟล์ คุณจะอ่านว่าทั้งสองของคำสั่งในตัว, source
และใช้ฟังก์ชันเดียวกันมาก:.
source_builtin
.
เป็นคำสั่งแหล่งดั้งเดิมสืบทอดมาจากเปลือก bourne โบราณ source
เป็นเพียงทุบตีในตัวที่ไม่เหมือนกับ.
สันนิษฐานว่าเป็นเพราะมันสามารถอ่านได้มากขึ้น ( .
คนเดียวอาจจะยากที่จะมองเห็นด้วยตัวอักษรขนาดเล็ก) คุณจะเห็นhelp source
และhelp .
แสดงข้อมูลเดียวกัน
man bash
แล้วค้นหาsource
คุณจะเห็นว่าเป็นคำพ้องสำหรับsource filename [arguments]
. filename [arguments]
.
มีความหมายเหมือนกันกับsource
ในทุบตี แต่ไม่ใช่ใน POSIX sh ดังนั้นคุณควรใช้.
ถ้าสคริปต์ของคุณถูกเรียกใช้โดย / bin / sh โปรดทราบว่า bash อ้างว่าทำงานเหมือน POSIX sh เมื่อถูกเรียกเป็น / bin / sh แต่ยอมรับsource
โดยไม่มีการร้องเรียน
พฤติกรรมนี้กัดฉันสคริปต์ทดสอบกับ bash เป็น / bin / sh ล้มเหลวเมื่อทำงานภายใต้เถ้าตัวอย่างเช่น
#!/bin/sh
คุณไม่ควรถือว่าเชลล์สนับสนุนอะไรเลยนอกจากคุณสมบัติ POSIX pubs.opengroup.org/onlinepubs/9699919799/utilities/…