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

これは、最初のパラメータが文字列であるprintfためです。FORMAT

printf FORMAT [ARGUMENT]...

また、見ることができますman printf

おすすめ記事