15

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

所以,在某一时刻,我不得不打印一个前导换行符,然后是一些包含几个扩展变量的文本。这是我使用的解决方案。

echo -e "\n$number_of_specs ${units}, $number_of_specs_failed failed"

这似乎没问题,但我不确定与使用 eg 打印行相比有多便携printf

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

4

2 回答 2

21

printf更便携。它应该总是优先于echo -e. 如果专门针对 bash/zsh/ksh,echo $'...'也可以。如果专门针对 zsh 或 ksh,print则可以。

POSIX(最后一个链接)也讨论了echo -n问题,这些问题也应该避免。基本上,永远不要使用选项echo,为了可移植性,请使用 printf。)

于 2012-07-17T20:22:14.737 回答
1

用于领先换行符的最便携(就可移植到没有 printf 的古老系统而言)的解决方案显然是

echo
echo "$number_of_specs ${units}, $number_of_specs_failed failed"
于 2013-03-22T10:02:57.633 回答