คำสั่งในตัวมักใช้กับคำสั่งภายนอกเสมอ เหตุผลคือคำสั่งในตัวเร็วขึ้น (และในบางกรณีเช่นcd
หรือเฉพาะคำสั่งในตัวเท่านั้นที่สามารถมีผลที่ต้องการ)test -o BASH_OPTION
บางครั้งคำสั่งภายนอกอาจมีความสามารถที่เชลล์บิวด์อินไม่มี ในกรณีดังกล่าวคุณสามารถเรียกคำสั่งภายนอกโดยกำหนดเส้นทางที่ชัดเจน (เช่นมีเครื่องหมายทับ) (สิ่งนี้จะข้ามข้อกังวลใด ๆ เกี่ยวกับลำดับใน$PATH
) หากคุณไม่ต้องการโค้ดฮาร์ดไดรฟ์ภายนอก แต่ต้องการป้องกันการใช้ builtin คุณสามารถใช้"$(type -P test)"
(ตัวพิมพ์ใหญ่P
) ใน bash, "$(whence -p test)"
ksh และ=test
zsh อีกวิธีในการบังคับใช้คำสั่งภายนอกคือการใช้command
builtin ( command -p test …
) หรือเพื่อผ่านenv
ยูทิลิตี้ ( env test …
)
ใน zsh disable test
คุณสามารถปิดการใช้งานในตัวด้วย นี่เป็นสิ่งที่ถาวร (สำหรับเชลล์ปัจจุบันหรือ subshell) จนกว่า builtin จะเปิดใช้งานenable test
อีกครั้งด้วย ในทุบตีคุณสามารถทำเช่นเดียวกันกับenable -n test
การปิดการใช้งานและenable test
เพื่อเปิดใช้งานอีกครั้ง
คุณสามารถใช้นามแฝงหรือฟังก์ชั่นที่จะบังคับให้การดำเนินการของคำสั่งที่แตกต่างกันเช่นหรือalias test=/usr/bin/test
test () { /usr/bin/test "$@"; }
หากคุณมีนามแฝงดังกล่าวคุณสามารถป้องกันการใช้งานโดยอ้างถึงส่วนใด ๆ ของมันเช่น\test
จะทำหน้าที่ปกติ / builtin / ค้นหาภายนอก โปรดทราบว่าขึ้นอยู่กับเชลล์และการตั้งค่าคำจำกัดความของนามแฝงในฟังก์ชั่นอาจจะขยายเมื่อฟังก์ชั่นจะอ่านหรือเมื่อมีการดำเนินการ หากคุณได้กำหนดฟังก์ชั่นที่คุณสามารถใช้command test
เพื่อป้องกันไม่ให้การค้นหาฟังก์ชั่นเช่นเดียวกับการค้นหานามแฝง (ดังนั้นที่นี่test
ในตัวจะถูกเรียกเว้นแต่คนพิการ)
/usr/bin/test -f "$file"
...