Bash / SH,Same命令输出不同?

时间:2016-12-16 03:03:15

标签: linux bash shell sh

{{1}}

最后一个是正确的。 这是为什么?以及如何解决它?

1 个答案:

答案 0 :(得分:12)

根据POSIX,echo不支持任何选项。

因此,当echo -nsh一起运行时,它会输出文字 -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