echo コマンド

目的

標準出力に文字列を書き出します。

構文

エコー [ ストリング ... ]

説明

エコー コマンドは、文字ストリングを標準出力に書き込みます。 ストリングはスペースで区切られ、最後に指定された ストリング パラメーターの後に改行文字が続きます。 String パラメーターを指定しないと、ブランク行 (改行文字) が表示されます。

通常、ハイフンで始まる文字列とフラグは、-- (二重ハイフン) を使用することで区別できます。 echo コマンドではフラグはサポートされていないので、-- (二重ハイフン) はリテラルとして処理されます。

echo コマンドは次のエスケープ規則を認識します。

項目 説明
\a 警告文字を表示します。
\b バックスペース文字を表示します。
\c 出力の中の最後の引数の後に続く改行文字を抑止します。 ¥c シーケンスの後に続く文字はすべて無視されます。
¥ f 用紙送り文字を表示します。
¥ n 改行文字を表示します。
\r 復帰文字を表示します。
\t タブ文字を表示します。
\v 垂直タブ文字を表示します。
\\ 円記号を表示します。
¥ 0Number ASCII 値が 0 か、1 桁、2 桁、3 桁の 8 進数である 8 ビットの文字を表示します。
注: BSH KSH、および CSH の各コマンドには、組み込みの エコー サブコマンドが含まれています。 echo コマンドと bsh および kshecho サブコマンドは、同様に機能します。 csh echo サブコマンドは、echo コマンドと同様に機能しません。

¥ (円記号) はシェル内の引用文字です。 これは、¥ がエスケープ文字で使用されていないか、引用符で囲まれていないことを意味します。以下に例を示します。"\"または'\'コマンドが展開されると、シェルは円記号を除去します。

シェルの展開後に、echo コマンドは入力内のエスケープ・シーケンスに基づいて出力を書き出します。 次の「円記号の削除」の表では、最初にシェルにより、続いて、echo コマンドにより、コマンド内の円記号がどのように削除されるかを示しています。

バックスラッシュの削除
入力されるコマンド シェルによる展開後 echo コマンドによる処理後
echo hi¥¥¥¥there echo hi¥¥there hi¥there
echo 'hi¥¥¥¥there' echo 'hi¥¥¥¥there' hi¥¥there
echo "hi¥¥¥¥there' echo "hi¥¥there" hi¥there

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 正常終了。
>0 エラーが発生しました。

  1. メッセージを標準出力に書き込むには、次のように入力します。
    echo Please insert diskette . . .
  2. 特殊文字を含むメッセージを表示するには、次のように入力します。
    echo "\n\n\nI'm at lunch.\nI'll be back at 1:00."
    これによって、3 行スキップされて、次のメッセージが表示されます。
    I'm at lunch.
    I'll be back at 1:00.

    注: メッセージにエスケープ・シーケンスが含まれている場合は、 そのメッセージを引用符で囲まなければなりません。 引用符で囲まないと、 シェルは ¥ (円記号) をメタキャラクターと見なして別の処理を行います。

  3. パターン・マッチング文字を指定して エコー コマンドを使用するには、次のように入力します。
    echo The back-up files are: *.bak
    この使用法は次のメッセージを表示します。The back-up files are:この後に、現行ディレクトリー内のファイル名が続きます。.bak.
  4. ファイルに単一行のテキストを追加するには、次のように入力します。
    echo Remember to set the shell search path to $PATH. >>notes
    このように入力すると、PATH シェル変数の値をシェルが置換した後、ファイル注釈の終わりにメッセージが追加されます。
  5. メッセージを標準エラー出力に書き込むには、次のように入力します。
    echo Error: file already exists. >&2
    このコマンドは、エラー・メッセージを標準エラーにリダイレクトします。 >&2 を省略すると、メッセージは標準出力に書き出されます。

ファイル

項目 説明
/usr/bin/echo echo コマンドが入っています。