虽然$echo '-n'
是用单引号写的,但为什么-n
没有在终端上写-n
?
答案 0 :(得分:9)
因为引号由shell处理,echo
命令接收普通-n
。如果你想回复-n
,你可以例如printf '%s\n' -n
答案 1 :(得分:2)
您应该尝试尽可能使用更便携的printf
。
答案 2 :(得分:2)
你可以尝试
echo -e '\055n'
答案 3 :(得分:2)
我发现以下内容只适用于bash:
echo -n PRINT_THIS
所以,你应该把-n放在第一位。
答案 4 :(得分:0)
引用没有用,因为......呃,很难解释。在评估“echo”命令本身之前,shell会删除引号,所以到那时它们并不重要。
试试这个:
echo - -n
没有记录为工作(我正在运行Ubuntu Linux),但echo
几乎肯定是你正在使用的shell的内置函数,所以无论如何手册都是有问题的。它对我有用。 (我正在运行zsh
,因为我真的很温文尔雅。)
编辑:似乎bash
内置edit
的行为不正常。我不知道该建议什么;这样:
echo '' -n
会给你“-n”前面有一个空格,这取决于你正在做什么,可能没问题。
答案 5 :(得分:0)
不完全存在:
echo -e 'a-n\b\b\b '
-n
令人惊讶的是,这有效:
echo -e '-n\b'
-n
这是我可以解释的解决方案:
echo "foobar" | sed 's/.*/-n/'
-n