我使用相同的命令得到了不同的行为echo -ne "hello\n"
与 bash 和破折号。见下文 :
$ bash -c 'echo -ne "hello\n"'
hello
$ dash -c 'echo -ne "hello\n"'
-ne hello
这是为什么 ?我完全不明白……
我的系统:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.5 LTS
Release: 12.04
Codename: precise
POSIX 规范echo
不支持任何论点。看见here http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html.
虽然规范提到-n
它这样做是为了表明它是not一个选项,要么是实现定义的情况,要么被视为字符串。
So dash
正是这样做的。
bash
另一方面,在许多方面都有不合格行为。
这就是为什么使用echo
通常不鼓励使用printf
它具有更好的规格和更好的便携性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)