我正在使用GNU bash,版本3.00.15(1)-release(x86_64-redhat-linux-gnu).这个命令:
echo "-e"
不打印任何东西.我想这是因为"-e"是echo命令的有效选项之一,因为echo"-n"和echo"-E"(其他两个选项)也产生空字符串.
问题是如何为echo获取自然输出("-e")的序列"-e".
打印任意字符串的唯一方法:
printf "%s" "$vars"
这是困难的一个 ;)
通常你会使用双破折号告诉命令它应该停止解释选项,但echo只输出那些:
$ echo -- -e -- -e
您可以使用-e本身来解决问题:
$ echo -e '\055e' -e
另外,正如其他人所指出的,如果你不坚持使用bash内置echo
,你的/bin/echo
二进制文件可能是该工具的GNU版本(查看手册页),从而理解POSIXLY_CORRECT
环境变量:
$ POSIXLY_CORRECT=1 /bin/echo -e -e
可能有更好的方法,但这有效:
printf -- "-e\n"