Bel*_*dez 6 bash prompt terminal-emulator escape-characters
在 RHEL6 和 CentOS 6 上,在此处/etc/bashrc设置PROMPT_COMMAND:
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
Run Code Online (Sandbox Code Playgroud)
据我所知,所有这些选项都是隐形打印的。这有什么用?
我知道这PROMPT_COMMAND是在显示提示之前执行的(PS1通常)。我不明白为什么回声不可见的东西有任何用处。
\033是Esc(Escape) 字符的八进制代码,这是一个很好的提示,表明您的回显字符串PROMPT_COMMAND是终端控制序列。您示例中的两个序列看起来都将终端标题设置为user@host:pwd.
第一种情况,xterm*设置窗口名称和图标标题。详细解释请查看xterm 控制序列列表,向下滚动直到找到OSC P s;点; ST在操作系统控制下(OSC 是ESC ],ST 是ESC \)。
第二种情况是针对screen终端模拟器,在屏幕控制序列列表中,它解释了ESC _ 设置屏幕的hardstatus(简单地说,就是屏幕窗口的标题)。
| 归档时间: |
|
| 查看次数: |
5687 次 |
| 最近记录: |