什么更便携?echo -e还是使用printf?

hel*_*hod 14 bash compatibility

我目前正在编写一个bash测试框架,它需要尽可能的便携.

所以,在某一点上,我必须打印一个前导换行符,然后是一些包含几个扩展变量的文本.这是我用过的解决方案.

echo -e "\n$number_of_specs ${units}, $number_of_specs_failed failed"
Run Code Online (Sandbox Code Playgroud)

这看起来没问题但是我不确定与使用例如打印出来的线相比是多么便携printf

有什么想法或提示,我可以找到一些参考?

orm*_*aaj 21

printf更便携.应始终优先考虑echo -e.如果具体针对bash/zsh/ksh,echo $'...'也可以.如果具体针对zsh或ksh,print则可以.

POSIX(最后一个链接)也讨论了echo -n应该避免的问题.基本上,永远不要使用选项echo和便携性,使用printf.)