macos - `command echo` 没有 't seem to respect the ` echo` 参数

标签 macos shell

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 作为选项来打破标准(除非同时设置了 posixxpg_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/

相关文章:

bash - 如何禁用 bash 中的特殊字符?

PHP 交互式 shell 和带回显的无换行符

java - nanoTime 和 currentTimeMillis 在 Mac OS 上有不同的速率

swift - 这是什么原因造成的? - "CoreAnimation: warning, deleted thread with uncommitted CATransaction"

python - 如何在脚本仍在运行时使 shell 输出重定向 (>) 写入?

string - 在 ZSH 中将段落拆分为行

linux - 从输入文件中读取单词并从另一个文件中查找包含单词的行

windows - Go - 如何检测 Windows 或 Mac 桌面屏幕是横向还是纵向模式?

macos - 如何在Mac OS X上列出POSIX信号量

windows - 什么是好的跨平台音频处理库?