Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

echo / printf

『echo』は文字列を標準出力に表示するコマンドです。『printf』はC言語の同名関数に似た書式指定付き出力ができ、改行の制御や数値の整形が可能です。

構文
echo [オプション] [文字列...]
printf 書式 [引数...]
オプション・書式一覧
コマンド / 書式概要
echo 文字列文字列を表示して末尾に改行を出力します。
echo -n 文字列末尾の改行を出力しません。
echo -e 文字列バックスラッシュエスケープを解釈します(\n・\t・\033[など)。
echo $変数変数の値を展開して表示します。
printf "%s\n" 文字列書式指定で文字列を出力します。
printf "%d\n" 数値整数として出力します。
printf "%05d\n" 数値5桁ゼロ埋めで出力します。
printf "%.2f\n" 数値小数点2桁で出力します。
printf "%10s\n" 文字列10文字幅で右詰め出力します。
printf "%-10s\n" 文字列10文字幅で左詰め出力します。
サンプルコード

『echo』で文字列を表示します。

echo "Hello, World!"
Hello, World!

変数の値を展開して表示します。

NAME="Alice"
echo "Hello, $NAME!"
Hello, Alice!

『-n』オプションで末尾の改行を出力しません。プロンプト表示などに使います。

echo -n "Processing..."
echo " done!"
Processing... done!

『-e』オプションでエスケープシーケンスを解釈します。色付き出力ができます。

echo -e "\033[32mSuccess!\033[0m"
echo -e "\033[31mError!\033[0m"
Success!
Error!

『printf』で書式指定付きの出力ができます。整数やゼロ埋めが可能です。

printf "%d\n" 42
42

ゼロ埋めで連番を出力します。ファイル名の生成などに便利です。

for i in 1 2 3; do
    printf "file_%03d.txt\n" $i
done
file_001.txt
file_002.txt
file_003.txt

『printf』でテーブル形式の整形出力をします。『%-10s』は左詰め10文字幅、『%5d』は右詰め5文字幅です。

printf "%-10s %5s\n" "Name" "Score"
printf "%-10s %5d\n" "Alice" 95
printf "%-10s %5d\n" "Bob" 87
Name       Score
Alice         95
Bob           87
概要

移植性を重視するスクリプトでは『echo -e』よりも『printf』を使うことが推奨されます。『echo -e』の動作はシェルや実装によって異なる場合がありますが、『printf』はPOSIX標準で動作が保証されています。

標準入力から行を読み取るには『read』を使います。出力をファイルに書き込むには『リダイレクト(>)』を参照してください。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。