Sky*_*ine 0 linux bash shell solaris colors
我有2个不同的服务器,我使用相同的网络用户登录并运行相同的脚本.一个是Solaris,另一个是Linux.
脚本中的样本回显行在这些服务器上的工作方式不同:
echo "\033[1;32mauto update\033[m"
Run Code Online (Sandbox Code Playgroud)
在Solaris中 - >它以绿色正确显示文本"自动更新"
在Linux - >它显示错误的文本,没有颜色编码:"\ 033 [1; 32mauto update\033 [m"
.bashrc配置文件具有PS1的以下行:
export PS1='${USER}@${HOST%%.*} ${PWD}> '
Run Code Online (Sandbox Code Playgroud)
感谢你能帮助我在Linux中使用颜色.谢谢
这很好地说明了为什么echo不被认为是便携式的.
在dash和Solaris上sh:
echo "\033[1;32mauto update\033[m" # Works
echo -e "\033[1;32mauto update\033[m" # Fails (prints -e)
Run Code Online (Sandbox Code Playgroud)
在bash,ash和ksh:
echo "\033[1;32mauto update\033[m" # Fails (doesn't interpret escapes)
echo -e "\033[1;32mauto update\033[m" # Works
Run Code Online (Sandbox Code Playgroud)
你可以改用printf:
printf '\033[1;32mauto update\033[m\n' # Works on all platforms
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |