我的 echo 命令不接受开关(echo -n 或 echo -e)

我的 echo 命令不接受开关(echo -n 或 echo -e)

我的脚本中有一个 echo 语句,如下所示:

echo -ne "Check Script";

我期待它打印出来

Check Script

但我得到以下输出

-ne Check Script

但是当我在其他机器上运行相同的脚本时,我得到了预期的输出。可能是机器特定的变量或属性导致脚本表现不同。

答案1

这就是 POSIX 和 UNIX 一致的行为echo。对于 UNIX 一致性echo,你可以这样写:

echo 'Check Script\c'

最好的是不是使用 echo 但使用 printf 代替,这样可移植性问题较少。

printf %s 'Check Script'

请注意,POSIX 允许-n作为扩展(但具有未指定的行为)。echo -e意味着输出-e\n,因此在这方面,bash并且zsh不符合 POSIX 标准。

相关内容