我在
echo
上偶然发现了一个奇怪的问题GNU bash, version 5.1.12(1)-release (x86_64-pc-solaris2.11)
:
bash-5.1$ builtin echo -e 'a\tb'
a b
bash-5.1$ builtin echo 'a\tb'
a b
bash-5.1$ builtin echo +e 'a\tb'
+e a b
虽然它不会影响我的脚本,因为我倾向于使用
printf
,你怎么关闭echo -e
?
not a dup(我认为):问题不在于
echo
在任意 shell 中的行为,而是具体在 bash
中的行为。
您启用了
xpg_echo
shell 选项。
通过运行列出选项
shopt
用
shopt -u xpg_echo
禁用它
要解决这个问题,请阅读
man builtins
的回显部分(假设它为您提供了 bash 内置命令,否则请查看 https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins。 html)
相关部分是
xpg_echo shell 选项可用于动态确定是否 or not echo 默认扩展这些转义字符。