Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

echo(1)

名前

echo - 引数の出力

形式

/usr/bin/echo [string]...

説明

echo ユーティリティーは、 空白文字で区切られ、 復帰改行 ( NEWLINE ) で終わる引数を標準出力に出力します。引数が指定されていない場合は、NEWLINE 文字のみを書き出します。

echo は、コマンドファイル内で診断メッセージを生成したり、 既知のデータをパイプに送ったり、 環境変数の内容を表示したりする際に便利です。

C シェル、Korn シェル、Bourne シェル には、echo 組み込みコマンドがあります。 デフォルトでは echo 組み込みコマンドは、ユーザーがフルパス名なしで echo を呼び出した場合に実行されます。shell_builtins(1) を参照してください。shechoksh88echokshecho、および /usr/bin/echo はバックスラッシュの付いたエスケープ文字を認識します。ただし、shecho は、警告文字として \a を認識しません。さらに、ksh88 および kshecho には –n オプションは付きません。一方、cshecho/usr/ucb/echo には –n オプションが付きますが、バックスラッシュのついたエスケープ文字は認識しません。shksh88 は、/usr/ucb/echo が最初に PATH で見つかるかどうかを判別し、見つかった場合は、組み込み echo の動作を /usr/ucb/echo に合わせます。

オペランド

次のオペランドを指定できます。

string

標準出力に書き込まれる文字列。 任意のオペランドが “-n” である場合、オプションではなく文字列として扱います。以下の文字の並びは、引数の中で特別に解釈されます。

\a

警告文字

\b

バックスペース

\c

復帰改行なしで行を出力します。引数内で \c に続く文字はすべて無視されます。

\f

用紙送り (form-feed)

\n

復帰改行

\r

キャリッジリターン

\t

タブ

\v

垂直タブ

\\

バックスラッシュ

\0n

n は、ASCII コードを 1、2、または 3 桁の 8 進数で表した 8 ビット文字です。

使用法

移植性の必要なアプリケーションには、 –n ( 第 1 の引数として ) またはエスケープシーケンスを 使用しないでください。

printf(1) ユーティリティーは、以下のように echo ユーティリティーの従来の動作をすべてエミュレートするために使用できます。

  • Solaris 2.6 オペレーティング環境またはその互換バージョンの /usr/bin/echo は次と同等です。

    printf "%b\n" "$*"
  • /usr/ucb/echo は次と同等です。

    if [ "X$1" = "X-n" ]
    
    then
    
            shift
    
            printf "%s" "$*"
    
    else
    
            printf "%s\n" "$*"
    
    fi

新しいアプリケーションでは echo の代わりに printf を使用することをお薦めします。

使用例 1 現在のディレクトリがルートからどれくらい離れているかを調べる

echo を使用して、 現在のディレクトリが ルートディレクトリ (/) から見ていくつ目のサブディレクトリになるかを、 次のようにして判定することができます。

  • 現在の作業中のディレクトリのフルパス名を表示する

  • パスに組み込まれたスラッシュ文字を、 スペース文字に変換するために tr を通して出力をパイプする

  • ユーザーのパスの名前をカウントするために wc –w を通して出力をパイプする

    example% /usr/bin/echo $PWD | tr '/' ' ' | wc -w

それぞれの機能については、 tr(1)wc(1) を参照してください。

以下に、復帰改行 ( NEWLINE ) なしで文字列を表示するための別の方法を示します。

使用例 2 /usr/bin/echo
example% /usr/bin/echo "$USER's current directory is $PWD\c"
使用例 3 sh/ksh88 シェル
example$ echo "$USER's current directory is $PWD\c"
使用例 4 csh シェル
example% echo -n "$USER's current directory is $PWD"
使用例 5 /usr/ucb/echo
example% /usr/ucb/echo -n "$USER's current directory is $PWD"

環境変数

uname の実行に影響を与える次の環境変数についての詳細は、environ(5) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。

終了ステータス

次のエラー値が返されます。

0

正常終了。

>0

エラーが発生した。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
CSI
有効
インタフェースの安定性
確実
標準
standards(5) を参照してください。

関連項目

ksh(1), printf(1), shell_builtins(1), tr(1), wc(1), echo(1B), ascii(5), attributes(5), environ(5), standards(5)

エスケープ規則 \ 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 digits         Incorrect:      echo "\0337" | od -xc
                 produces:       df0a                     (hex)
                                 337                      (ascii)
3 digits         Correct:        echo "\00337" | od -xc
                 produces:       lb37 0a00                (hex)
                                 033 7                    (ascii)

各文字の 8 進表記については、ascii(5) を参照してください。