OSWikiHK: 请协力 GPLv3 的中文翻译工作。
改變終端機模擬器的標題
OSWikiHK,自由中文開源知識庫
在一般 xterm (X Terminal) 相容的終端機上,輸出「ESC]0;」(ESC 的 ASCII 八進位為 033),著住輸出直到「BELL」(ASCII 八進位為 007)為止的文字都會變成終端機的標題:
echo -ne "\033]0;Hello, world\!\007"; read
留意因為 PROMPT_COMMAND 的設定,當您執行完以上命令回到顯示提示符時會回復系統預設,所以在命令後面加上「; read」讓您看到效果後再按Enter 鍵才回到提示符。
要想終端機標題顯示當前目錄路徑,並每次改變當前目錄時,終端機標題都自動更新,就要借助環境變數 PROMPT_COMMAND。PROMPT_COMMAND 的值為一個命令,每次 shell 顯示提示符時就會執行 PROMPT_COMMAND 所指的命令一次。Fedora 就用在 /etc/bashrc 的以下幾行讓終端機標題跟著當前目錄自動更新:
# are we an interactive shell?
if [ "$PS1" ]; then
case $TERM in
xterm*)
if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
else
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
fi
;;
screen)
if [ -e /etc/sysconfig/bash-prompt-screen ]; then
PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"'
fi
;;
*)
[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
;;
esac
# Turn on checkwinsize
shopt -s checkwinsize
[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
fi

