เมื่อฉันกำหนดนามแฝงใหม่ใน.bash_aliases
ไฟล์หรือฟังก์ชั่นใหม่ใน.bashrc
ไฟล์มีคำสั่งรีเฟรชที่จะสามารถใช้นามแฝงหรือฟังก์ชั่นใหม่ได้ทันทีโดยไม่ต้องปิดเทอร์มินัล (ในกรณีของฉัน xfce4 เทอร์มินัล และในระหว่างการทำงาน)
เมื่อฉันกำหนดนามแฝงใหม่ใน.bash_aliases
ไฟล์หรือฟังก์ชั่นใหม่ใน.bashrc
ไฟล์มีคำสั่งรีเฟรชที่จะสามารถใช้นามแฝงหรือฟังก์ชั่นใหม่ได้ทันทีโดยไม่ต้องปิดเทอร์มินัล (ในกรณีของฉัน xfce4 เทอร์มินัล และในระหว่างการทำงาน)
คำตอบ:
การจัดหาไฟล์ที่เปลี่ยนแปลงจะช่วยให้สามารถเข้าถึงนามแฝงหรือฟังก์ชั่นที่เขียนใหม่ในเทอร์มินัลปัจจุบันตัวอย่างเช่น:
source ~/.bashrc
ไวยากรณ์ทางเลือก:
. ~/.bashrc
โปรดทราบว่าหากคุณมี bash หลายอินสแตนซ์ที่ทำงานในเทอร์มินัลของคุณ (คุณพูดถึงหลายแท็บ) คุณจะต้องรันสิ่งนี้ในทุก ๆ อินสแตนซ์
source
ได้มาจาก csh วิธี Bourne . .bashrc
เปลือก
alias prg='prg.py'
นั่นเป็นที่น่าสนใจว่าเรื่องนี้จะไม่ทำงานเมื่อฉันกำหนด ฉันต้องปิดสถานี
การพิมพ์. ~/.bashrc
ที่บรรทัดคำสั่งจะทำงาน.bashrc
และฟังก์ชันใด ๆ ที่กำหนดไว้ในไฟล์นั้นจะถูกสร้างขึ้น
.bashrc
ตัวเองก็จะเรียกและเรียกใช้.bash_aliases
( ถ้ามี) หาก.bashrc
มีรหัสนี้อยู่:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
ในขณะที่ใช้. ~/.bash_aliases
คนเดียว (ที่บรรทัดคำสั่งตัวอย่าง) จะลองและรัน.bash_aliases
โดยไม่เกี่ยวข้องกับ. bashrc และจะให้ข้อผิดพลาดหากไฟล์ไม่มีอยู่ (ดังนั้นการทดสอบการตรวจสอบไฟล์เมื่ออยู่ใน.bashrc
)
บางครั้งคุณอาจต้องการเปลี่ยนนามแฝงเป็นฟังก์ชั่น แต่เมื่อคุณแหล่งไฟล์ 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
. .bashrc
หรือsource .bashrc
ในทุก ๆ เชลล์ที่คุณเปิด