答案1
由 生成的换行符
echo
,是否在几乎所有系统上都始终存在而不使用任何选项?
我不知道它是否真的一直存在全部系统,但它应该存在于所有 POSIX 派生系统上。根据规格
描述
该echo
实用程序将其参数写入标准输出,后跟 <newline>。如果没有参数,则仅写入 <newline>。
然后
实现不应支持任何选项。
虽然某些实现确实支持很少的选项,但在没有给定选项的情况下,它们应该回退到 POSIX。所以是的,他们应该产生一个换行符。
从理论上讲,如果你害怕echo
不遵守,你也可能害怕printf
不遵守。在实践中,我宁愿printf
在尝试编写健壮的代码时相信无论如何,因为它通常是正确的工具,并且在某些边缘情况下没有必要放弃它(请参阅“超越简单情况”这个答案明白我的意思)。