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』を使います。出力をファイルに書き込むには『リダイレクト(>)』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。