文字列を表示したい(echo)
1$ echo hello world
2hello world
引数を表示するコマンドです。 シェルで設定されている変数を確認したり、スクリプトのデバッグに使ったりします。 リダイレクトと組み合わせて、ファイルにテキストを書き込むこともできます。
注釈
bash、zsh、fishのechoコマンドはオプションの動作が異なります。
特に -e オプション(エスケープシーケンス解釈)の対応状況が異なるため、ポータブルなシェルスクリプトを書く場合は注意が必要です。
このページは主に bash/zsh での動作を想定しています。
改行を出力しない(-n)
1$ echo -n hello world
2hello world
デフォルトでは echo は最後に改行文字を付加しますが、-n オプションを使うと改行を出力しません。
パイプ処理で改行を避けたい場合に使われます。
複数の引数を空白で区切らずに表示したい
1$ echo hello world
2hello world
3$ echo "hello world"
4hello world
複数の引数を与えた場合、echoはデフォルトで各引数を空白で区切って表示します。
上の例では両方とも同じ出力になります。
echoに空白を入れたくない場合は、クォートで囲むか、別の方法を使う必要があります:
1$ echo -n hello; echo world
2helloworld
エスケープしたい(-e)
1$ echo -e "line1\nline2"
2line1
3line2
-e オプションを使うと、バックスラッシュのエスケープシーケンスが解釈されます。
よく使われるエスケープシーケンス
\n- 改行\t- タブ\r- キャリッジリターン\\- バックスラッシュ
警告
-e オプションは POSIX 標準では推奨されていません。
ポータブルなシェルスクリプトでは printf コマンドの使用が推奨されます。