Bash for循环中-e未输出问题求助(Bash 5.1.4)
为什么
echo没有输出-e? 你遇到的问题是因为Bash内置的echo命令会把以-开头的参数识别为命令选项,而-e正是echo的标准选项之一——它的作用是启用反斜杠转义字符的解析。当你执行echo -e时,echo会将-e当作功能开关,而不是需要打印的字符串,所以不会输出-e。
验证这个行为
直接在终端执行以下命令,你会发现同样没有输出:
echo -e
解决办法
有两种简单的方式可以让-e被正常输出:
- 使用
echo的--选项,它表示所有后续参数都不再被当作命令选项:for x in -c -d -e -f ; do echo -- $x ; done - 使用
printf替代echo,printf不会将以-开头的参数解析为选项,行为更稳定:for x in -c -d -e -f ; do printf '%s\n' "$x" ; done
内容的提问来源于stack exchange,提问作者cyc
相关产品推荐
相关产品推荐

