เมื่อ gnome-terminal เริ่ม bash แล้วมันจะออกจากลูปไปจนถึงการประมวลผลคำสั่ง: มันจะจัดการอินพุตและเอาต์พุตเท่านั้น ดังนั้นคุณต้องใช้ความร่วมมือของ bash ในการรันบางสิ่งหลังจาก~/.bashrc
โหลดเสร็จแล้ว
ครั้งแรกในหลายกรณีคุณไม่จำเป็นต้องเรียกใช้คำสั่งหลังจาก~/.bashrc
นั้น ตัวอย่างเช่นการเปิดเทอร์มินัลในไดเรกทอรีเฉพาะสามารถทำได้โดยcd /foo/bar && gnome-terminal
ง่าย คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมด้วยวิธีที่คล้ายกัน: VAR=value gnome-terminal
. (หาก~/.bashrc
ตัวแปรสภาพแวดล้อมของคุณแทนที่คุณกำลังทำผิด: คำจำกัดความตัวแปรสภาพแวดล้อมอยู่ใน~/.profile
)
เพื่อรันคำสั่งในเทอร์มินัล แต่ก่อนหน้า~/.bashrc
นี้คุณสามารถทำได้
gnome-terminal -x sh -c 'command1; command2; exec bash'
หากคุณต้องการที่จะใช้แท็บหลายที่คุณต้องใช้แทน-e
-x
Gnome-terminal ช่วยแยกอาร์กิวเมนต์ของ-e
at ช่องว่างโดยไม่ต้องดำเนินการผ่านเชลล์ อย่างไรก็ตามคุณสามารถเขียนคำสั่งเชลล์ได้หากคุณแน่ใจว่าจะไม่รวมช่องว่างในนั้น อย่างน้อยด้วย gnome-terminal 2.26 คุณสามารถใช้แท็บได้ (แทนที่<TAB>
ด้วยอักขระแท็บตัวอักษร):
gnome-terminal -e 'sh -c command1;command2;exec<TAB>bash'
gnome-terminal --tab -e 'sh -c command1;<TAB>exec<TAB>bash' \
--tab -e 'sh -c command2;<TAB>exec<TAB>bash'
หากคุณไม่จำเป็นต้องเรียกใช้คำสั่งหลังจาก~/.bashrc
ให้มันเรียกใช้คำสั่ง ตัวอย่างเช่นรวมรหัสต่อไปนี้ในตอนท้ายของ~/.bashrc
:
eval "$BASH_POST_RC"
จากนั้นให้เรียกใช้โค้ดบางส่วนหลังจาก (จริงๆแล้วในตอนท้าย) bashrc ของคุณ:
gnome-terminal -x sh -c BASH_POST_RC=\''command1; command2'\''; exec bash'
หรือ (หนักน้อยลงในข้อความ)
BASH_POST_RC='command1; command2' gnome-terminal
แม้ว่าฉันจะไม่แนะนำให้ทำเช่นนี้โดยเฉพาะคุณอาจสนใจเทคนิคต่าง ๆ ที่กล่าวถึงใน
วิธีการเริ่มต้นเทอร์มินัลด้วยข้อความบางอย่างที่ป้อนในบรรทัดคำสั่งแล้ว? .