在Bash(或者其他任何shell)中,如果我有一个我想要回显的任意字符串,我怎么能这样做,这样如果字符串是-n
,回声就不会变空,-e
或-E
?我希望像echo -- -e
这样的东西可以起作用(阻止回声来解释任何其他选项),但它没有。
即使明确指定一个标志也不会停止它:echo -E -en
仍然没有输出。
使用echo时是否可以安全,或者我只需将所有回音调用切换到printf '%s\n'
?
答案 0 :(得分:4)
我会用:
printf "%s\n" "-n"
这些日子,它简单,安全,可靠,并且可用于大多数地方。
答案 1 :(得分:2)
有点难看,但这似乎有效:
echo -e "-\0e"
编辑:正如评论中glglgl所建议的那样,更好的解决方案是
echo -e '-\0145'
或echo -e '-\x65'