ฉันต้องการปรับแต่งการทำงานของcd
คำสั่งตามความต้องการของฉัน
ฉันกำหนดหน้าที่ดังต่อไปนี้ -
function cd () { cd "$@" && pushd "$@"; }
ความตั้งใจของฟังก์ชั่นนี้คือการผลักดันไดเรกทอรีไปยังสแต็กโดยอัตโนมัติเพื่อให้ฉันไม่ต้องพยายามพิมพ์ด้วยตนเองpushd .
ทุกครั้ง
แต่ฟังก์ชั่นดังกล่าวข้างต้นเป็นฟังก์ชันเวียนเพียบเช่นการเรียกร้องให้cd
มีการตีความว่าจะเป็นฟังก์ชั่นของตัวเองและไม่ได้cd
ในตัว
ฉันจะอ้างอิงในcd
ตัวในฟังก์ชั่นนี้ได้อย่างไร
\
ฉันรู้ว่านามแฝงสามารถหนีออกมาใช้ เป็นวิธีการหลบหนีฟังก์ชั่นหรือการอ้างอิงในตัวในทางที่ชัดเจนมากขึ้นคืออะไร?
หมายเหตุ: ฉันไม่ต้องการเปลี่ยนชื่อฟังก์ชั่นของฉันเป็นอย่างอื่น
pushd
-P
แต่คุณถูกต้องดังที่แสดงในคำถามว่ามันfunction cd
ดูผิดเล็กน้อยเพราะมันเปลี่ยนไดเรกทอรีสองครั้ง
alias cd=pushd
? คุณคาดหวังว่าจะเกิดอะไรขึ้นเมื่อคุณทำซีดีกับสิ่งที่ไม่ใช่เส้นทางที่แน่นอน (เช่นcd ../
)