我的脚本中有一个 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 标准。