Answers:
许多发行版在设置提示之前都会检查终端的类型。例如,Ubuntu在默认的.bashrc中包含这个小宝石:
#设置一个奇特的提示(非彩色,除非我们知道我们要“彩色”) 情况为“ $ TERM” xterm-color)color_prompt = yes ;; 埃萨克
由于screen使用了自己的TERM变量(“ screen”),因此bash认为它无法显示奇特的颜色提示,因此默认为简单的提示。屏幕当然具有与普通终端相同的复杂提示功能。
因此,要覆盖此行为,只需在~/.bashrc
文件末尾硬设置您首选的PS1选项。或者,如果您喜欢冒险,可以找到测试以检查TERM变量的值,并对其进行修改以接受除“ xterm-color”之外的“ screen”。
机器上有相同的问题(屏幕上没有更多自定义提示),
SHELL -$SHELL
而setenv PS1
在screenrc中没有,并且在bashrc中没有针对(哑)终端的特殊测试。
设置使用的$ TERM:
$ echo $TERM
urxvt-unicode-256color
在screenrc中的“屏幕”下,我的自定义提示返回:
- #term xterm-256color
+ term urxvt-unicode-256color
PS:另一个帐户不需要这样做,但是bashrc通过这种方式测试dircolors和现代终端1:
if [[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] ; then
PS1=<my fancy prompt>
我相信这也可以:
if [ "$TERM" != "dumb" ]; then
PS1=<my fancy prompt>