printf颜色无法从.bash\u注销

printf颜色无法从.bash\u注销,bash,ssh,Bash,Ssh,我试图在从一个我用ssh登录的Ubuntu框注销时使用。如果我手动调用它,颜色是正确的。但是,无论何时从.bash_注销运行,每一行都是白色的,并以颜色代码作为前缀: \x1B[38;5;160;01m .d8888b. 8888888888 8888888888 Y88b d88P .d88888b. 888 888 \x1B[38;5;196;01m d88P Y88b 888 888 Y88b d88P d88P

我试图在从一个我用ssh登录的Ubuntu框注销时使用。如果我手动调用它,颜色是正确的。但是,无论何时从.bash_注销运行,每一行都是白色的,并以颜色代码作为前缀:

\x1B[38;5;160;01m  .d8888b.  8888888888 8888888888      Y88b   d88P  .d88888b.  888     888  
\x1B[38;5;196;01m d88P  Y88b 888        888              Y88b d88P  d88P" "Y88b 888     888  
\x1B[38;5;202;01m  "Y888b.   8888888    8888888            Y888P    888     888 888     888  
\x1B[38;5;208;01m     "Y88b. 888        888                 888     888     888 888     888  
\x1B[38;5;214;01m       "888 888        888                 888     888     888 888     888  
\x1B[38;5;220;01m Y88b  d88P 888        888                 888     Y88b. .d88P Y88b. .d88P  
\x1B[38;5;226;01m  "Y8888P"  8888888888 8888888888          888      "Y88888P"   "Y88888P"  

在虚拟机和我的主机(OS X 10.11)中,术语都设置为xterm-256color。我尝试使用
echo-e
,但它所做的只是在彩色字符串前面加上一个
-e
。将脚本内容直接添加到.bash_注销中是可行的,尽管这看起来很混乱。想法?

在POSIX shell中,您不能在
printf
命令中使用
\xXX
转义;您只能使用八进制表示法。使用
source
通过当前
bash
进程执行脚本,而不是使用POSIX shell
bash-seeyou
也可以

与POSIX兼容的脚本版本会将第一行更改为:

ESC_SEQ="\033[38;5;"

当然,没有特别的理由使代码只从
执行。bash\u logout
POSIX兼容,因为文件本身特定于
bash

Ok,将.bash\u logout中的行从
sh seeyu…
更改为
。见你…
源代码见你…
修复了它。我不知道。你可以加上这个作为答案,并为其他人做标记。