为什么不$echo '-n'
写-n
在终端虽然-n
写在单引号内?
问问题
28450 次
6 回答
13
因为引号由 shell 处理,并且echo
命令接收 plain -n
。如果你想回显-n
,你可以例如printf '%s\n' -n
于 2010-04-15T12:36:14.057 回答
4
我发现以下内容仅适用于 bash:
echo -n PRINT_THIS
所以,你应该把 -n 放在第一位。
于 2013-01-23T10:14:53.217 回答
2
你应该尽量使用更便携printf
的。
于 2010-04-15T14:05:17.270 回答
2
你可以试试
echo -e '\055n'
于 2010-04-15T14:13:33.090 回答
0
引号没有帮助,因为......呃,很难解释。在评估“echo”命令本身之前,shell 会去掉引号,所以到那时它们已经无关紧要了。
试试这个:
echo - -n
这没有记录为工作(我正在运行 Ubuntu Linux),但echo
几乎可以肯定它是您使用的任何 shell 的内置程序,因此手册页无论如何都是有问题的。它对我有用。(我正在跑步zsh
,因为我真的很温文尔雅和老练)。
编辑:好吧,似乎bash
内置的edit
行为不是这样。我不知道该建议什么;这:
echo '' -n
会给你“-n”前面有一个空格,这(取决于你在做什么)可能没问题。
于 2010-04-15T12:34:40.377 回答
0
不完全在那里:
echo -e 'a-n\b\b\b '
-n
令人惊讶的是,这有效:
echo -e '-n\b'
-n
这是我可以解释的解决方案:
echo "foobar" | sed 's/.*/-n/'
-n
于 2010-04-16T04:21:32.897 回答