การตั้งค่านามแฝงทุบตีชั่วคราวเมื่อเข้าสู่โฟลเดอร์


13

บางครั้งฉันชอบที่จะมีนามแฝงทุบตีที่กำหนดเองมากและอาจจะเป็นปุ่มลัดเมื่อฉันป้อนในโฟลเดอร์ (อาจเป็นโครงการที่ฉันเคยพิมพ์คำสั่งจำนวนมากจาก CLI)

ให้สมมติว่าเมื่อฉันป้อนโฟลเดอร์เช่น "projectAlpha /" ฉันคาดหวังชื่อแทนที่กำหนดเองเช่น:

  • alias doTaskX='./app arg1 arg2...|filter arg1 arg2...'
  • ...

ยิ่งกว่านั้นฉันคิดว่า:

  • แสดงข้อความที่เป็นประโยชน์แสดงนามแฝงและคำสั่งทั่วไป
  • แสดง keybindings ที่กำหนดเองทั่วไปบางอย่างสำหรับโครงการของฉัน

แต่ทันทีที่ฉันออกจากโครงการของฉันการตั้งค่าเหล่านี้จะไม่สามารถใช้ได้

วิธีที่ดีที่สุดที่จะทำวันนี้คืออะไร?


มีความคิดที่นี่ตอนนี้ให้ใช้ชื่อแทนหนึ่งรายการสำหรับ "cd" ใน ~ / .bashrc ชื่อแทนหนึ่งรายการเพื่อเข้าสู่ไดเรกทอรีเดียวและเริ่มทุบตีใหม่ที่อ่าน. bashrc ที่ซ่อนอยู่ในไดเรกทอรีนั้น ...
gzinho

คำตอบ:


14

Bash มีตัวแปรพิเศษPROMPT_COMMANDซึ่งเนื้อหาจะถูกดำเนินการทุกครั้งหลังจากที่คำสั่งถูกดำเนินการเพื่อให้คุณสามารถตั้งค่าดังต่อไปนี้:

PROMPT_COMMAND='[[ "$PWD" = /tmp ]] && { alias ll=ls; echo "Remember: ll=ls"; } || { unalias ll 2>/dev/null; }'

จากนี้ไปทุกครั้งที่คุณจะอยู่ใน/tmpนามแฝงไดเรกทอรีllจะถูกสร้างขึ้นและในไดเรกทอรีอื่น ๆ ทั้งหมดมันจะถูกลบออก


น่าจะเป็นไปได้มากขึ้นในการรวบรวมนามแฝงทั้งหมดของคุณและสิ่งอื่น ๆ ในฟังก์ชั่นเดียว (พูดmakealias) และ unaliases ทั้งหมดในฟังก์ชั่นอื่น ๆmakeunaliasที่คุณสามารถเรียกใช้ขึ้นอยู่กับความต้องการของคุณเช่น

PROMPT_COMMAND='[[ "$PWD" = /tmp ]] && makealias || makeunalias 2>/dev/null'

ขอให้สังเกตว่าการเปลี่ยนเส้นทาง stderr มีอยู่เพื่อป้องกันไม่ให้บางคนไร้ประโยชน์ในการแจ้งเตือนกรณีนี้


ใช่ฉันจะลองดู +1 (ถ้าฉันทำได้)
gzinho

1
@ user3697611 คุณไม่จำเป็นต้องมีชื่อเสียงในการตอบคำถามของคุณเอง คลิกที่เครื่องหมายถูกถัดจากคำตอบ
Barmar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.