Mac OS X 2.6.0 版中的 command
实用程序似乎不支持为 echo
命令传入的参数。
如果这是一个合法的错误 - 您能否将我指向此实用程序的项目页面。谢谢!
预期
$ command echo -e "activate\ndeactivate"
activate
deactivate
实际
$ command echo -e "activate\ndeactivate"
-e activate\ndeactivate
其他信息
$ command ls -al
total 3
drwxr-xr-x 13 siva staff 442 Sep 28 10:52 .
drwxr-xr-x 7 siva staff 238 Sep 19 14:21 ..
drwxr-xr-x 13 siva staff 442 Sep 28 10:52 .git
$ command ls -a1
.
..
.git
$ echo -e "activate\ndeactivate"
activate
deactivate
最佳答案
echo -e
是一个非标准的 bash 扩展。它不仅不是标准要求的,甚至也不是标准允许的,它明确指出“实现不应支持任何选项”>.
bash 通过将 -e
作为选项来打破标准(除非同时设置了 posix
和 xpg_echo
选项,在这种情况下行为与外部 echo
命令相同)。
因此,当您运行操作系统供应商提供的外部 echo
命令时,它是符合 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html 的实现。 ,并且它通过打印字符串来响应 -e
。
作为 echo -e "$foo"
的 POSIX 兼容替代方案,请使用 printf '%b\n' "$foo"
。
关于macos - `command echo` 没有 't seem to respect the ` echo` 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46475580/