มีตัวเลือกเชลล์cdable_vars
:
cdable_vars
หากตั้งค่านี้อาร์กิวเมนต์ของcd
คำสั่ง builtin ที่ไม่ใช่ไดเร็กทอรีจะถือว่าเป็นชื่อของตัวแปรที่มีค่าเป็นไดเร็กทอรีที่จะเปลี่ยน
คุณสามารถเพิ่มสิ่งนี้ใน.bashrc
:
shopt -s cdable_vars
export myFold=$HOME/Files/Scripts/Main
สังเกตว่าฉันแทนที่เครื่องหมายตัวหนอนด้วย$HOME
; ~/Files/Scripts/Main
คำพูดที่ป้องกันไม่ให้เกิดการขยายตัวและตัวหนอนทุบตีจะบ่นว่ามีไดเรกทอรีไม่มี
ตอนนี้คุณสามารถใช้สิ่งนี้ได้ดังนี้:
cd myFold
ไม่$
จำเป็น นั่นคือจุดรวม - ตามที่แสดงในคำตอบอื่น ๆcd "$myFold"
ทำงานได้โดยไม่มีตัวเลือกเชลล์ cd myFold
ยังใช้งานได้หากเส้นทางในmyFold
มีช่องว่างไม่จำเป็นต้องมีการอ้างอิง
โดยปกติจะใช้งานได้กับการเติมแท็บอัตโนมัติเนื่องจาก_cd
ฟังก์ชันในการbash_completion
ตรวจสอบว่าcdable_vars
ตั้งค่าไว้หรือไม่ แต่ไม่ใช่ทุกการใช้งานจะทำในลักษณะเดียวกันดังนั้นคุณอาจต้องกำหนดแหล่งที่มาbash_completion
อีกครั้งในของคุณ.bashrc
(หรือแก้ไข/etc/profile
เพื่อตั้งค่าตัวเลือกเชลล์)
กระสุนอื่น ๆ มีตัวเลือกที่คล้ายกันตัวอย่างเช่น Zsh ( cdablevars
)