让我们说我正在全新安装Debian,Jessie(或Wheezy)。作为普通用户,我已在/etc/bash.bashrc
文件中定义了提示,最终会被我/home/foobar/.bashrc
中的提示覆盖
好的,很酷,所以我有类似的东西:foobar@myserver:~$
现在,我试图理解下面的代码:
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
正如你所看到的,PS1变量(=提示)似乎再次被覆盖(因为我在xterm
中)。但我无法理解为什么我们在行尾有另一个$PS1
!
为了实现这一点,我在这一行中添加了3个字母a
b
c
:
PS1="a\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]b$PS1 c"
现在,我有一个奇怪的提示:
abfoobar@myserver:~$ c
所以似乎几乎整条生产线都没有用,所有这些都是在这些生产线之间。
PuTTY
运行此xterm;在ubuntu中,这条线路完全不同
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
答案 0 :(得分:2)
\[
\]
之间的部分似乎是一个转义序列,由终端ESC ]
处理,在以下链接OSC
中为操作系统命令命名OSC Ps ; Pt ST
Set Text Parameters. For colors and font, if Pt is a "?", the
control sequence elicits a response which consists of the con-
trol sequence which would set the corresponding value. The
dtterm control sequences allow you to determine the icon name
and window title.
Ps = 0 -> Change Icon Name and Window Title to Pt.
3}}
<Router>
<Scene key='root'>
<Scene hideNavBar key='home' component={ReactNativeTabViewContainer}
tabs ={true} initial={true} />
</Scene>
</Router>
更改xterm窗口标题。
由于窗口标题包含当前工作目录设置,因此提示允许在cd命令后更改目录时更新标题。