echo 应该是 printf 的别名吗?

echo 应该是 printf 的别名吗?

我不太熟悉终端,但我所知道和阅读的几件事让我相信 printf 比 echo 更强大和更舒适,但可以用于类似(如果不是相同)的目的。所以我问自己,将 echo 别名为 printf 是否明智,这样我就可以忘记 echo 的任何问题?或者有什么我看不到的东西,比如可移植性或者其他?

如果需要,系统是在 Windows 10 上运行 WSL2 的 Ubuntu 20.04。

答案1

,这样做是不明智的。

printf工作方式与 非常不同echo,您应该改变习惯并printf在可能的情况下使用(总是如此,但对于更复杂且需要更多思考的简单任务)和/或有益的/必要的(当涉及变量、重复、特殊字符、数字格式等时)。


仅举一个简单的例子:

$ echo "100%"
100%

$ printf "100%"
bash: printf: `%': missing format character

另一个例子:

$ echo "Hello" "World"
Hello World

$ printf "Hello" "World"
Hello

另请注意,对于printf,后面Hello没有换行符。

这是因为第一个参数printfFORMAT字符串:

printf FORMAT [ARGUMENT]...

也可以看看man printf

相关内容