echo コマンド

目的

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

構文

echo [ String ... ]

説明

echo コマンドは、文字列を標準出力に書き出します。String はスペースで区切り、最後に指定する String パラメーターの後に改行文字を付けます。 String パラメーターを指定しないと、ブランク行 (改行文字) が表示されます。

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

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

項目 説明
¥a 警告文字を表示します。
¥b バックスペース文字を表示します。
¥c 出力の中の最後の引数の後に続く改行文字を抑止します。 ¥c シーケンスの後に続く文字はすべて無視されます。
¥f 用紙送り文字を表示します。
¥n 改行文字を表示します。
¥r 復帰文字を表示します。
¥t タブ文字を表示します。
¥v 垂直タブ文字を表示します。
¥¥ 円記号を表示します。
¥0Number ASCII 値が 0 か、1 桁、2 桁、3 桁の 8 進数である 8 ビットの文字を表示します。
注: bshksh、および csh の各コマンドには、 それぞれ組み込みの echo サブコマンドが含まれています。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 コマンドを使用するには、次のように入力します。
    echo The back-up files are: *.bak
    このように入力すると、「The back-up files are:」というメッセージが表示され、その後に現行ディレクトリー内の .bak で終わるファイル名が表示されます。
  4. 1 行のテキストをファイルに追加するには、次のように入力します。
    echo Remember to set the shell search path to $PATH. >>notes
    このように入力すると、PATH シェル変数の値をシェルが置換した後、ファイル注釈の終わりにメッセージが追加されます。
  5. メッセージを標準エラー出力に書き込むには、次のように入力します。
    echo Error: file already exists. >&2
    このコマンドは、エラー・メッセージを標準エラーにリダイレクトします。 &2 を省略すると、メッセージは標準出力に書き出されます。

ファイル

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