我知道这是一些特殊字符的问题,但我不知道该如何解决。
我在控制台中输入
echo "-n"
但是没有任何打印输出 :(
我也尝试了以下代码
echo -e "-n"
要执行特殊字符(从序列中转义的字符),但仍然没有发生任何事情。
我如何打印“-n”?
尝试
printf "%s\n" -n
或者printf "%s\n" '-n'
printf
比 echo
更强大且更一致。 - Keith Thompson以下是具体步骤:
aix@aix:~$ echo -e '\x2dn'
-n
它将 -
转义为 \x2d
。
更详细的方法是分别打印这两个字符:
aix@aix:~$ echo -n -; echo n
-n
这里,-n
指示第一个echo
不要打印换行符;它与打印的-n
无关。 :)
echo -e
没有在输出中打印-e
的实现都违反了标准,其中-n
是唯一允许的选项[虽然允许,但没有明确定义:echo -n
只是使输出变得未定义,因此不再需要符合任何特定的规范]。 - Charles Duffyshopt -s xpg_echo
使其 echo
命令符合标准,当同时启用 set -o posix
时,这意味着这里给出的 echo -e
hack 将不再起作用。 - Charles Duffy