{{1}}
最后一个是正确的。 这是为什么?以及如何解决它?
答案 0 :(得分:12)
根据POSIX,echo
不支持任何选项。
因此,当echo -n
与sh
一起运行时,它会输出文字 -n
,而不是将-n
解释为无尾随线选项:
$ sh -c 'echo -n "apple"'
-n apple # !! Note the -n at the beginning.
注意:所有 sh
实现都不是这样的;一些,例如在Ubuntu上(dash
充当sh
),做支持-n
选项,但关键是你不能依赖,如果您的代码必须在多个平台上运行。
便携式 POSIX兼容打印到stdout的方法是使用printf
utility:
printf %s "apple" | shasum -a 256