如何使用echo命令输出颜色的转义序列

时间:2017-05-23 23:03:01

标签: bash

domain="www.google.com"
echo -e "\e[1;34m"$domain"\e[0m"

我希望这会以绿色字母输出www.google.com

相反,我得到了

-e \e[1;34mwww.google.com\e[0m

2 个答案:

答案 0 :(得分:4)

根据所使用的环境或shell可能会产生影响,您可以做的一件事是使用ANSI-C引用:

echo $'\e[1;34m'${domain}$'\e[0m'
  

$' string'形式的单词特别对待。这个词扩展到了   字符串,替换为反斜杠转义字符   ANSI C标准。

https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html

答案 1 :(得分:3)

如果您使用sh script.sh运行脚本,则明确使用sh作为shell而不是shebang行中的那个。如果sh不是指向bash的链接,那就是个坏消息。普通sh shell可能不支持echo -e

键入./script.sh以使用shebang行中的解释器。