utte

echo 文字列や変数の値を表示する

echo [オプション] [文字列...]

試してみる

主なオプション

-n末尾に改行を付けない
-eバックスラッシュのエスケープ(\n、\t など)を解釈する
-Eエスケープを解釈しない(既定)

解説

基本

echo は、引数をスペース1つで区切って表示し、最後に改行を付けます。変数の値の確認、スクリプトのメッセージ表示、ファイルへの書き込みなどに使います。

引用符の違い

二重引用符 "..." の中では、$HOME のような変数が展開されます。単一引用符 '...' の中では、何も展開されません。変数を表示したいか、文字としての $ を表示したいかで使い分けます。

エスケープシーケンス

bash の組み込みの echo は、既定ではバックスラッシュを解釈しません。-e を付けると、\n(改行)、\t(タブ)、\\(バックスラッシュ)などが使えます。

組み込みと外部コマンド

echo は、bash の組み込みコマンドとしても、/bin/echo というファイルとしても存在します。シェルで実行すると、組み込みの方が使われます。細かい挙動がシェルによって違うので、移植性が必要なスクリプトでは、改行などの扱いが確実な printf を使う人もいます。

終了コード

echo は、通常は終了コード 0 を返します。直前のコマンドの終了コードを確認するには、echo $? と書きます。

このコマンドを使う問題

  1. umaskで新規ファイルの既定の権限を変える
  2. シングルクォートで変数を展開せずに書き込む
  3. manで調べたオプションを答えファイルに書く
  4. 環境変数を.bashrcに書いて子プロセスにも引き継ぐ
  5. bashの履歴の保存件数を設定する
  6. 追記のリダイレクトで既存の内容を残して書き足す
  7. ログイン時にEDITOR環境変数をviに設定する
  8. /etc/fstabにファイルシステムのマウント設定を書く

関連するコマンド

LinuC 101の出題範囲