我目前正在编写一个bash测试框架,该框架要求尽可能便携。
所以,有一次,我不得不打印一个前导换行符,然后是一些包含几个扩展变量的文本。这是我用过的解决方案。
echo -e "\n$number_of_specs ${units}, $number_of_specs_failed failed"
这似乎没问题,但我不确定与使用例如打印线进行打印相比是多么便携printf
?
我可以找到一些参考文献的任何想法或提示吗?
答案 0 :(得分:21)
printf
更便携。它应始终优先于echo -e
。如果专门定位bash / zsh / ksh,echo $'...'
也可以。如果专门定位zsh或ksh,print
就可以了。
POSIX(最后一个链接)还讨论了echo -n
问题,这也应该避免。基本上,永远不要使用echo
的选项,并且为了便携性,请使用printf。)
答案 1 :(得分:1)
对于领先的新行,最便携的(对于没有printf的古代系统的可移植性)显然是
echo
echo "$number_of_specs ${units}, $number_of_specs_failed failed"