Bash
在終端標題中顯示目前 TTY/PTY
我試圖通過自定義我的文件來弄清楚如何使目前的 TTY 會話出現在目前的終端視窗標題欄中
.bashrc
,但我似乎在讓它工作時遇到了一些麻煩。我試著這樣做;
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a | $(tty | cut -d/ -f3,4)\]$PS1"
但是當我這樣做時,這並沒有給出預期的結果。相反,它就像;
| pts/0user@hostname ~$
在打開的終端螢幕中,而不是像這樣的標題欄;
user@host ~ | pty/0
在我的
.bashrc
文件中它看起來像這樣case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w\a | $(tty | cut -d/ -f3,4)\]$PS1" ;; *) ;; esac
修復了這個。
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h \w | $(tty | cut -d/ -f3,4)\a\]$PS1"
感謝@Gilles 在他們的文章中指出了這一點,這使得需要做什麼變得更加清楚。
要設置視窗標題,請發出轉義序列 ,其中和分別是轉義字元和響鈴字元。由於您是在 bash 提示符內執行此操作,因此必須使用轉義序列來告訴 bash 這不會在終端內產生任何輸出。
\e]2;*TITLE*\a``\e``\a``\[…\]
您可以使用參數擴展來截斷
/dev/
前綴,並tty
一勞永逸地呼叫,因為它不會改變。TTY=$(tty) PS1="\\[\\e[2;${TTY#/dev/}\\a\\]$PS1"