名前 | 形式 | 機能説明 | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項
echo ユーティリティは、 空白文字で区切られ、 復帰改行 ( NEWLINE ) で終わる引数を標準出力に出力します。 引数が指定されていない場合は、 NEWLINE 文字のみを書き出します。
echo は、コマンドファイル内で診断メッセージを生成したり、 既知のデータをパイプに送ったり、 環境変数の内容を表示したりする際に便利です。
C シェル 、 Korn シェル 、 Bourne シェル には、 echo 組み込みコマンドがあります。 デフォルトでは echo 組み込みコマンドは、 ユーザーがフルパス名なしで echo を呼び出した場合に 実行されます。 shell_builtins(1) を参照してください。 sh の echo 、 ksh の echo 、 /usr/bin/echo はバックスラッシュのついたエスケープ文字を認識し、 sh の echo を除いては、 警告文字として \ a を認識しません。 さらに、 ksh の echo には -n オプションは付きません。 sh の echo と /usr/bin/echo は、 SYSV3 環境変数が設定されている場合 ( 「環境」を参照 ) 、 -n オプションだけが付きます。 その場合、前述のバックスラッシュのついたエスケープ文字は 認識しません。 一方、 csh の echo と /usr/ucb/echo には -n オプションが付きますが、 バックスラッシュのついたエスケープ文字は認識しません。
移植性の必要なアプリケーションには、 -n ( 第 1 の引数として ) またはエスケープシーケンスを 使用しないでください。
printf(1) ユーティリティは、 以下のように echo ユーティリティの従来の動作を すべてエミュレートするために 使用できます。
/usr/ucb/echo は以下と同機能です。
if [ "X$1" = "X-n" ] then shift printf "%s" "$*" else printf "%s\n" "$*" fi
新しいアプリケーションでは echo の代わりに printf を使用することをお薦めします。
echo を使用して、 現在のディレクトリが ルートディレクトリ (/) から見ていくつ目のサブディレクトリになるかを、 次のようにして判定することができます。
現在の作業中のディレクトリのフルパス名を表示する
パスに組み込まれたスラッシュ文字を、 空白文字に変換するために tr を通して出力をパイプする
ユーザーのパスの名前をカウントするために wc–w を通して出力をパイプする
example% /usr/bin/echo $PWD | tr '/' ' ' | wc -w |
それぞれの機能については、 tr(1) と wc(1) を参照してください。
以下に、復帰改行 ( NEWLINE ) なしで文字列を表示するための別の方法を示します。
example% /usr/bin/echo "$USER's current directory is $PWD\c" |
example$ echo "$USER's current directory is $PWD\c" |
example% echo -n "$USER's current directory is $PWD" |
example% /usr/ucb/echo -n "$USER's current directory is $PWD" |
この環境変数は INTERACIVE UNIX システムと SCO UNIX のインストールスクリプトとの 互換性を提供するために使用します。 互換性だけを目的とした環境変数で、 新しいスクリプトでは使用しないでください。
echo の実行に影響を与える環境変数 LC_CTYPE、LC_MESSAGES、NLSPATH についての詳細は、environ(5) を参照してください。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
使用条件 | SUNWcsu |
CSI | 対応済み |
エスケープ規則 \ 0n を使用して 8 ビット文字を表す際、 n の前に 必ずゼロ (0) を付けなければなりません。
たとえば、 echo 'WARNING:\ 07' と入力した場合、 WARNING: が出力され、 端末の “ ベル ” が鳴ります。 “07” の前に “ \” を付けるときには、 これを保護する単一 ( または二重 ) 引用符 ( または 2 つのバックスラッシュ ) を使用する必要があります。
\0 の後には、 8 進の出力文字を形成する最大 3 桁の文字が使用されます。 \0n の後に、 この 8 進表記に含まれない数値をさらに表示したい場合は、 n には全 3 桁を使用しなければなりません。 たとえば、 “ESC 7” と表示したい場合は、 \ 0 の後に、 2 桁の “33” だけでなく、 3 桁の “033” を使用しなければなりません。
2 桁 | 誤: | echo"0337 | od -xc | |
結果: | df0a | (16 進) | |
| 337 | (ascii) | |
3 桁 | 正: | echo "00337" | od -xc | |
結果: | lb37 0a00 | (16 進) | |
| 033 7 | (ascii) |
各文字の 8 進表記については、 ascii(5) を参照してください。
名前 | 形式 | 機能説明 | オペランド | 使用法 | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目 | 注意事項