我目前正在编写一个 bash 测试框架,它需要尽可能便携。
所以,在某一时刻,我不得不打印一个前导换行符,然后是一些包含几个扩展变量的文本。这是我使用的解决方案。
echo -e "\n$number_of_specs ${units}, $number_of_specs_failed failed"
这似乎没问题,但我不确定与使用 eg 打印行相比有多便携printf
?
有什么想法或提示可以找到一些参考吗?
我目前正在编写一个 bash 测试框架,它需要尽可能便携。
所以,在某一时刻,我不得不打印一个前导换行符,然后是一些包含几个扩展变量的文本。这是我使用的解决方案。
echo -e "\n$number_of_specs ${units}, $number_of_specs_failed failed"
这似乎没问题,但我不确定与使用 eg 打印行相比有多便携printf
?
有什么想法或提示可以找到一些参考吗?
printf
更便携。它应该总是优先于echo -e
. 如果专门针对 bash/zsh/ksh,echo $'...'
也可以。如果专门针对 zsh 或 ksh,print
则可以。
POSIX(最后一个链接)也讨论了echo -n
问题,这些问题也应该避免。基本上,永远不要使用选项echo
,为了可移植性,请使用 printf。)
用于领先换行符的最便携(就可移植到没有 printf 的古老系统而言)的解决方案显然是
echo
echo "$number_of_specs ${units}, $number_of_specs_failed failed"