printf
はecho
より優れていると聞きました。 printf
がRHEL 5.8の一部のプログラムにテキストをフィードするために機能しなかったため、echo
は機能したため、私は自分の経験からprintf
を使用する必要があった1つのインスタンスのみを思い出すことができます。しかし、明らかに、他にも違いがあり、私はそれらが何であるか、そして一方を他方に対して使用する場合に特定のケースがあるかどうかを尋ねたいと思います。
書式設定オプションにprintf
を使用することをお勧めします。 echo
は、変数または(単純な)行の値を出力する場合に役立ちますが、それだけです。 printf
は基本的に、Cバージョンの機能と同じことができます。
使用例と機能:
Echo
:echo "*** Backup Shell script ***"
echo
echo "Runtime: $(date) @ $(hostname)"
echo
printf
:vech="bike"
printf "%s\n" "$vech"
出典:
組み込みのシェルprintf
の方がはるかに高速であるため、echo
の欠点の1つはパフォーマンスです。これは、新しいコマンドの各インスタンスがWindowsのオーバーヘッドを大きくするCygwinで特に影響します。エコーの多いプログラムを/bin/echo
からシェルのエコーに変更すると、パフォーマンスがほぼ2倍になりました。移植性とパフォーマンスの間のトレードオフです。常にprintf
を使用するのはスラムダンクではありません。