Bash 你怎么能呼应文字'-n';或'-e';?

Bash 你怎么能呼应文字'-n';或'-e';?,bash,echo,command-line-arguments,Bash,Echo,Command Line Arguments,在Bash(或者任何其他shell)中,如果我有一个任意的字符串要回显,那么如果字符串是-n,-e,或者-e,我如何才能使回显不为空?我希望像echo--e这样的东西能起作用(阻止echo解释任何进一步的选项),但事实并非如此 即使显式地指定一个标志也不能阻止它:echo-E-en仍然没有输出 使用echo时是否安全,或者我是否只需将所有echo调用切换到printf“%s\n”?我会使用: printf "%s\n" "-n" 如今,它简单、安全、可靠,在大多数地方都可用。我会使用: pri

在Bash(或者任何其他shell)中,如果我有一个任意的字符串要回显,那么如果字符串是
-n
-e
,或者
-e
,我如何才能使回显不为空?我希望像
echo--e
这样的东西能起作用(阻止echo解释任何进一步的选项),但事实并非如此

即使显式地指定一个标志也不能阻止它:
echo-E-en
仍然没有输出

使用echo时是否安全,或者我是否只需将所有echo调用切换到
printf“%s\n”

我会使用:

printf "%s\n" "-n"
如今,它简单、安全、可靠,在大多数地方都可用。

我会使用:

printf "%s\n" "-n"

如今,它简单、安全、可靠,在大多数地方都可用。

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

echo -e "-\0e"
编辑:正如GLGL在评论中所建议的,更好的解决方案是


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

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

echo -e "-\0e"
编辑:正如GLGL在评论中所建议的,更好的解决方案是


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

它看起来好像可以<代码>echo-e“-\0e”| hextump-C为我提供
000000002d00650a
。此处不需要
00
。但是
echo-e'-\0145'
应该这样做,
0145
e
的八进制表示。我会更新答案的,只是看起来可以<代码>echo-e“-\0e”| hextump-C为我提供
000000002d00650a
。此处不需要
00
。但是
echo-e'-\0145'
应该这样做,
0145
e
的八进制表示。我会更新答案。