เกิดอะไรขึ้น
คำสั่งต่อไปนี้ไม่ทำงานสำหรับฉัน:
echo -ne "\e]0;MYTITLE\a"
ปรากฎว่าการติดตั้ง Cygwin ที่เป็นค่าเริ่มต้นของฉันรวมถึงการกำหนดพรอมต์ต่อไปนี้ใน. bashrc:
PS1=\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$
โปรดทราบว่าส่วนแรกของพรอมต์ ( \e]0;\w\a
) กำลังตั้งค่าชื่อหน้าต่างทุกครั้งที่มีข้อความปรากฏขึ้น
การแก้ไขปัญหา
เพิ่มบรรทัดเหล่านี้ในของคุณ.bashrc
ที่กำหนด 2 ฟังก์ชั่น:
function settitle() {
export PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
echo -ne "\e]0;$1\a"
}
function settitlepath() {
export PS1="\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n$ "
}
จากนั้นคุณสามารถตั้งชื่อแบบกำหนดเองด้วยคำสั่งนี้:
settitle "MYWonderfullTest here"
หรือคุณสามารถเปลี่ยนกลับไปใช้ค่าเริ่มต้นของ cygwin (เส้นทางปัจจุบัน) ด้วยคำสั่งนี้:
settitlepath
หวังว่านี่จะช่วยได้
$PS1
) มีลำดับการควบคุมที่ตั้งชื่อหน้าต่างเป็น user @ machine: working_directory