แบ็กสแลชจะระงับการขยายนามแฝงนั่นคือมันรันคำสั่งเดิมและทำให้แน่ใจว่าเวอร์ชันนามแฝงจะไม่ทำงาน สคริปสามารถทำงานได้โดยไม่รู้ตัวกับการขยายตัวนามแฝงเมื่อระบบได้มีการกำหนดshopt -s expand_aliases
(ทุบตีเท่านั้น) source
หรือถ้ามันจะถูกดำเนินการโดยใช้
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
ผู้ดูแลระบบบางคนชอบที่จะใส่แบ็กสแลชในทุกสิ่งเพื่อป้องกันผลข้างเคียงของนามแฝงในกรณีที่มีการใช้นามแฝงโดยไม่ได้ตั้งใจที่อื่นและนามแฝงจะขยายตามที่อธิบายไว้ก่อนหน้านี้ ตัวอย่างเช่นหากระบบได้ตั้งค่าไว้ที่alias dirname='dirname -z'
ใดที่หนึ่งและเงื่อนไขอนุญาตให้ขยายนามแฝงได้สคริปต์ที่พยายามเรียก dirname จะโทรdirname -z
แทนขออภัยซึ่งไม่ใช่สคริปต์ที่ตั้งใจไว้
หากมีความมั่นใจว่านามแฝงดังกล่าวไม่มีอยู่เราสามารถลบเครื่องหมายแบ็กสแลชทั้งหมดและควรจะทำงานได้ดี
อีกวิธีหนึ่งสามารถใช้command
แทนเวอร์ชันแบ็กสแลชเพื่อระงับนามแฝง ดังนั้นแทนที่จะใช้\dirname
อย่างใดอย่างหนึ่งcommand dirname
ซึ่งอาจดูอ่านง่ายขึ้น (สำหรับคำสั่งในตัวเช่นcd
เดียวควรใช้builtin
แทน) ฉันชอบสิ่งนี้แทนเพราะมันยังข้ามฟังก์ชันที่มีชื่อเดียวกันและชื่อแทนใด ๆ