2022/07/03

echoとprintf

bashのechoとprintfの違いについて

echo

文字列や変数の表示をする
オプション

option

説明

-n

改行しない

-e

バックスラッシュエスケープの許可

-E

バックスラッシュエスケープの無視

' 'でくくるとそのまま文字列として出力
" "で変数の展開、エスケープを解釈する出力

printf

指定された書式を使用して文字列の表示
オプションは-vのみ

bashにおけるエスケープ等について

  • バックスラッシュは1文字のエスケープ

  • シングルクオートはまとめて何でもエスケープ

  • ダブルクオートは$とバッククオートとバックスラッシュ以外をエスケープ

  • バッククオートはコマンドとして実行

実際に使ってみて

echo 'echoは改行が入るがprintfは入らない'
printf 'echoは改行が入るがprintfは入らない'
echo 'echo,printfともに" "は変数展開あり、`\`\``は変数展開なし\n`

まとめ

echoとprintfの違いをまとめた

参考