รีเฟรช alias และฟังก์ชั่นใหม่หลังจากกำหนด alias และฟังก์ชั่นใหม่หรือไม่?


54

เมื่อฉันกำหนดนามแฝงใหม่ใน.bash_aliasesไฟล์หรือฟังก์ชั่นใหม่ใน.bashrcไฟล์มีคำสั่งรีเฟรชที่จะสามารถใช้นามแฝงหรือฟังก์ชั่นใหม่ได้ทันทีโดยไม่ต้องปิดเทอร์มินัล (ในกรณีของฉัน xfce4 เทอร์มินัล และในระหว่างการทำงาน)


6
โปรดทราบว่าไม่มีคำสั่งที่จะทำให้คำสั่งใหม่เป็นที่รู้จักในเทอร์มินัล / แท็บที่เปิดอยู่ทั้งหมดของคุณ คุณจะต้องทำ. .bashrcหรือsource .bashrcในทุก ๆ เชลล์ที่คุณเปิด
พอลทอมบลิน

คำตอบ:


65

การจัดหาไฟล์ที่เปลี่ยนแปลงจะช่วยให้สามารถเข้าถึงนามแฝงหรือฟังก์ชั่นที่เขียนใหม่ในเทอร์มินัลปัจจุบันตัวอย่างเช่น:

source ~/.bashrc

ไวยากรณ์ทางเลือก:

. ~/.bashrc

โปรดทราบว่าหากคุณมี bash หลายอินสแตนซ์ที่ทำงานในเทอร์มินัลของคุณ (คุณพูดถึงหลายแท็บ) คุณจะต้องรันสิ่งนี้ในทุก ๆ อินสแตนซ์


3
sourceได้มาจาก csh วิธี Bourne . .bashrcเปลือก
พอลทอมบลิน

alias prg='prg.py'นั่นเป็นที่น่าสนใจว่าเรื่องนี้จะไม่ทำงานเมื่อฉันกำหนด ฉันต้องปิดสถานี
xralf

"คุณจะต้องเรียกใช้สิ่งนี้ในทุก ๆ กรณี" - โปรดทราบว่าผู้ใช้ zsh สามารถตั้งค่า TMOUT และ TRAPALRM ได้อย่างเหมาะสมกับสถิติและ (ถ้าจำเป็น) re-source ~ / .zshrc หนึ่งครั้งต่อวินาทีหรือในช่วงเวลาอื่นที่เหมาะสม ฉันไม่เชื่อว่าทุบตีสามารถทำได้
เควิน

6

การพิมพ์. ~/.bashrcที่บรรทัดคำสั่งจะทำงาน.bashrcและฟังก์ชันใด ๆ ที่กำหนดไว้ในไฟล์นั้นจะถูกสร้างขึ้น

.bashrcตัวเองก็จะเรียกและเรียกใช้.bash_aliases( ถ้ามี) หาก.bashrcมีรหัสนี้อยู่:

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

ในขณะที่ใช้. ~/.bash_aliasesคนเดียว (ที่บรรทัดคำสั่งตัวอย่าง) จะลองและรัน.bash_aliasesโดยไม่เกี่ยวข้องกับ. bashrc และจะให้ข้อผิดพลาดหากไฟล์ไม่มีอยู่ (ดังนั้นการทดสอบการตรวจสอบไฟล์เมื่ออยู่ใน.bashrc)


2

บางครั้งคุณอาจต้องการเปลี่ยนนามแฝงเป็นฟังก์ชั่น แต่เมื่อคุณแหล่งไฟล์ bashrc อาจเกิดข้อผิดพลาดแปลก:

. ~/.bashrc
bash: /home/username/.bashrc: line 38: syntax error near unexpected token `('
bash: /home/username/.bashrc: line 38: `hello_world() {'

สิ่งนี้อาจเกิดขึ้นเนื่องจากชื่อนามแฝงกระทบกับชื่อของฟังก์ชันที่กำหนดใหม่ เท่าที่ฉันทราบเพื่อหลีกเลี่ยงสิ่งนี้ต้อง unalias ทุกอย่างแล้วแหล่ง bashrc ไฟล์:

bash-4.3 $
unalias -a && . $HOME/.bashrc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.