bash - echo 命令颜色不起作用

标签 bash macos colors echo

我有这样的代码:

#!/bin/bash

COLOR_REST='\e[0m'
COLOR_GREEN='\e[0;32m'
echo -e "${COLOR_GREEN}OK${COLOR_REST}"

当我将代码复制并粘贴到我的 iTerm 中时,它以绿色显示 OK

enter image description here

但是,当我将代码存储在名为testColor.sh 的文件中并执行./testColor.sh 时。它在我的屏幕上显示 \e[0;32mOK\e[0m

为什么不显示绿色的OK

我还尝试了 bash testColor.shsh testColor.sh。两者都无法以绿色显示文本。

另外我觉得奇怪的是,在man echo中没有看到BSD General Commands Manual中的-e选项。

我使用 macOS High Sierra 作为我的操作系统。

最佳答案

使用

#!/bin/bash

COLOR_REST="$(tput sgr0)"
COLOR_GREEN="$(tput setaf 2)"
printf '%s%s%s\n' $COLOR_GREEN 'OK' $COLOR_REST

它使用 printf 来避免 echo 选项和 tput 以跨不同终端移植。

关于bash - echo 命令颜色不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503805/

相关文章:

linux - 为什么零数字不保存为 csv 格式

python 3.3.5 和 pyodbc 2.1.7

xcode - 将/usr 中的库添加到 xcode

java - 将青色的整数颜色转换为 RGB 时遇到问题

html - css - 更改事件导航丸颜色 Bootstrap

bash - 设置脚本的工作目录

arrays - Bash中具有前置或 append 值的Readarray

java - 循环遍历文本文件并查找字符串以附加到分层相关文本文件中的子字符串

php - “pdo_mysql” 已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

text - libreoffice 大量文本颜色更改