ฉันทำงานแก้ปัญหาของตัวเองจากการโพสต์ต่างๆ สิ่งนี้สร้างหัวเรื่องที่มีผู้ใช้ชื่อโฮสต์ pwd, tty และคำสั่งที่เรียกใช้งานในปัจจุบัน (สำหรับ bash)
ดูเหมือนว่านี้ (ไม่มีคำสั่งที่ถูกเรียกใช้):
.:[user@hostname:/home/user][pts/10]:.
และเช่นนี้ (รันคำสั่ง):
.:[user@hostname:/home/user][pts/10] {tail -F /var/log/syslog}:.
ที่ไหนสักแห่งใน. bashrc ฉันขยาย PS1:
# set the terminals title. This is the "post-command" part,
# need to use a trap for pre-command (to add the command line to the title)
PS1+="\[\033]2;.:[\u@\h:\$PWD] [$(tty | cut -b 6-)]:.\007\]"
เพิ่มคำสั่งปัจจุบันโดยใช้history 1และtrap :
# set a fancy title (this is pre-command, in PS1 is after-command (to reset command)
trap 'echo -ne "\033]2;.:[${USER}@${HOSTNAME}:${PWD}] [$(tty | cut -b 6-)] {$(history 1 | sed "s/^[ ]*[0-9]*[ ]*//g")}:.\007"' DEBUG
รู้สึกฟรีเพื่อนำไปใช้กับความต้องการของคุณ
.bashrc
ในคำสั่งหลังแต่ละคำสั่งในเชลล์ฉันจะได้รับผลลัพธ์0;%s@%s:%s" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}
นี้ ฉันคิดว่าฉันสามารถระงับเอาต์พุตนี้โดยกำหนดคำสั่ง Trap ให้กับPS1
? อย่างไรก็ตามPS1=trap 'echo -ne "\033]0;$BASH_COMMAND\007"' DEBUG
ไม่ทำงานbash: echo -ne "\033]0;$BASH_COMMAND\007": command not found
จะนำไปสู่ข้อผิดพลาด