我不太熟悉终端,但我所知道和阅读的几件事让我相信 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
没有换行符。
这是因为第一个参数printf
是FORMAT
字符串:
printf FORMAT [ARGUMENT]...
也可以看看man printf
。