domain="www.google.com"
echo -e "\e[1;34m"$domain"\e[0m"
我希望这会以绿色字母输出www.google.com
。
相反,我得到了
-e \e[1;34mwww.google.com\e[0m
答案 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行中的解释器。