文字列を表示したい(echo

1$ echo hello world
2hello world

引数を表示するコマンドです。 シェルで設定されている変数を確認したり、スクリプトのデバッグに使ったりします。 リダイレクトと組み合わせて、ファイルにテキストを書き込むこともできます。

注釈

bashzshfishechoコマンドはオプションの動作が異なります。 特に -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 コマンドの使用が推奨されます。