ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11 Information Library (日本語) |
- 引数の出力
/usr/bin/echo [string]...
echo ユーティリティは、 空白文字で区切られ、 復帰改行 ( NEWLINE ) で終わる引数を標準出力に出力します。引数が指定されていない場合は、NEWLINE 文字のみを書き出します。
echo は、コマンドファイル内で診断メッセージを生成したり、 既知のデータをパイプに送ったり、 環境変数の内容を表示したりする際に便利です。
C シェル、Korn シェル、Bourne シェル には、echo 組み込みコマンドがあります。 デフォルトでは echo 組み込みコマンドは、ユーザーがフルパス名なしで echo を呼び出した場合に実行されます。shell_builtins(1) を参照してください。sh の echo、ksh88 の echo、ksh の echo、および /usr/bin/echo はバックスラッシュの付いたエスケープ文字を認識します。ただし、sh の echo は、警告文字として \a を認識しません。さらに、ksh88 および ksh の echo には -n オプションは付きません。一方、csh の echo と /usr/ucb/echo には -n オプションが付きますが、バックスラッシュのついたエスケープ文字は認識しません。sh と ksh88 は、/usr/ucb/echo が最初に PATH で見つかるかどうかを判別し、見つかった場合は、組み込み echo の動作を /usr/ucb/echo に合わせます。
次のオペランドがサポートされています。
標準出力に書き込まれる文字列。 任意のオペランドが “-n” である場合、オプションではなく文字列として扱います。以下の文字の並びは、引数の中で特別に解釈されます。
警告文字
バックスペース
復帰改行なしで行を出力します。引数内で \c に続く文字はすべて無視されます。
用紙送り (form-feed)
復帰改行
キャリッジリターン
タブ
垂直タブ
バックスラッシュ
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。
次のエラー値が返されます。
正常終了。
エラーが発生しました。
属性についての詳細は、attributes(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) を参照してください。