Colorizing echo在Solaris中有效,但在Linux中不起作用

时间:2018-02-05 18:29:34

标签: linux bash shell colors solaris

我有2个不同的服务器,我使用相同的网络用户登录并运行相同的脚本。 一个是Solaris,另一个是Linux。

脚本中的示例回显行在这些服务器上的工作方式不同:

echo  "\033[1;32mauto update\033[m"

在Solaris中 - >它以绿色

正确显示文本“自动更新”

在Linux中 - >它显示错误的文字,没有颜色编码:“\ 033 [1; 32mauto update \ 033 [m”

.bashrc配置文件具有PS1的以下行:

export PS1='${USER}@${HOST%%.*} ${PWD}> '

感谢你能帮助我在Linux中使用颜色。 感谢

1 个答案:

答案 0 :(得分:5)

这很好地说明了为什么echo不被视为可移植的。

dash和Solaris sh上:

echo    "\033[1;32mauto update\033[m"   # Works
echo -e "\033[1;32mauto update\033[m"   # Fails (prints -e)

bashashksh

echo    "\033[1;32mauto update\033[m"   # Fails (doesn't interpret escapes)
echo -e "\033[1;32mauto update\033[m"   # Works

您可以使用printf

printf '\033[1;32mauto update\033[m\n'  # Works on all platforms