你怎么能回应文字' -n'或者' -e&#39 ;?

时间:2014-08-07 06:54:07

标签: bash echo command-line-arguments

在Bash(或者其他任何shell)中,如果我有一个我想要回显的任意字符串,我怎么能这样做,这样如果字符串是-n,回声就不会变空,-e-E?我希望像echo -- -e这样的东西可以起作用(阻止回声来解释任何其他选项),但它没有。

即使明确指定一个标志也不会停止它:echo -E -en仍然没有输出。

使用echo时是否可以安全,或者我只需将所有回音调用切换到printf '%s\n'

2 个答案:

答案 0 :(得分:4)

我会用:

printf "%s\n" "-n"

这些日子,它简单,安全,可靠,并且可用于大多数地方。

答案 1 :(得分:2)

有点难看,但这似乎有效:

echo -e "-\0e"

编辑:正如评论中glglgl所建议的那样,更好的解决方案是

echo -e '-\0145'echo -e '-\x65'