我有多个Bash变量用于ANSI终端颜色。一个是
ANSI_NOCOLOR
定义如下:
ANSI_NOCOLOR="\e[0m"
\
\\
在Bash字符串中,我得到了一个意外的输出。
echo -e "command --with --many --options \\$ANSI_NOCOLOR"
echo -e "--more --options"
这将导致:
command --with --many --options \e[0m
--more --options
这个例子可以简化为:
$ echo -e "\\\e[0m"
\e[0m
预期的/C类行为:
转义序列是左关联的。因此,
-
前两个
打印为
\
-
剩下的
\
e
ESC
解决方法:
在用反斜杠刨了几下后,我发现,那是5!!需要反斜杠。我仍然想读一个解释,为什么它的行为,因为它是。
$ echo -e "\\\\\e[33mfoo\e[0m"
\foo