知道了也没什么用的小知识:终端标题与转义序列
起因
事情的起因是这样的,我在 archlinux (以下简称 arch) 下的端模拟器(以下简称终端)使用 set -x
来调试,发现每次按回车都会一条类似下面这样的输出:
++ printf '\033]0;%s@%s:%s\007' nanpuyue arch '~'
然后我手动执行了这条命令也看不到任何输出和变化,着实令人费解。
OSC 转义序列
一番查找过后在 /etc/bash.bashrc
中找到了源头:
case ${TERM} in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
screen*)
PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"'
;;
esac