
私はターミナルについてよく知りませんが、私が知って読んだいくつかのことは、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
。