| エコー | |
|---|---|
| 原作者 | ダグラス・マキロイ(AT&Tベル研究所) |
| 開発者 | さまざまなオープンソースおよび商用開発者 |
| オペレーティング·システム | Multics , Unix , Unix-like , V , Plan 9 , Inferno , FLEX , TRIPOS , AmigaDOS , Z80-RIO , OS-9 , DOS , MSX-DOS , Panos , FlexOS , SISNE plus , OS/2 , Windows , ReactOS , MPE/iX , KolibriiOS , SymbOS |
| プラットフォーム | クロスプラットフォーム |
| タイプ | 指示 |
echoは、入力テキストを標準出力に書き出すシェルコマンドです。多くのオペレーティングシステムとシェルで利用可能です。シェルスクリプトでは、ステータスのログ出力、ユーザーへのフィードバックの提供、デバッグなどによく使用されます。対話型セッションの場合、出力はデフォルトで端末画面に表示されますが、ファイルにリダイレクトしたり、別のプロセスにパイプしたりすることもできます。[ 1 ]
多くのシェルは、他の多くのコマンドと同様に、外部アプリケーションではなく組み込みコマンドechoとして実装されます。
異なるシェルには、複数の互換性のない実装がecho存在します。 デフォルトでエスケープシーケンスを展開するものもあれば、展開しないものもあります。オプションを受け入れるものもあれば、受け入れないものもあります。POSIX仕様[ 2 ]では、最初の引数が である場合-n、またはいずれかの引数にバックスラッシュ文字が含まれている場合の動作は未規定ですが、Unix仕様 (POSIXのXSIオプション) では、一部のシーケンスの展開が必須で、オプション処理は許可されていません。 実際には、多くのecho実装はデフォルト環境では準拠していません。 これらのばらつきのため、echoは移植不可能なコマンドとみなされ[ 3 ]、代わりにprintfコマンド(第9版Unixで導入) が推奨されます。
このコマンドは、次のシェルまたはリストされているオペレーティング システムの少なくとも 1 つのシェルで使用できます。
echoはMulticsから始まりました。Doug McIlroyが「指の練習」としてC言語でプログラムし、有用であることが証明された後、Unixバージョン2の一部となりました。バージョン7では、 ( のように動作しますが、出力を行区切りで終了させません)が に置き換えられました。 [ 17 ]echo -npromptecho
PWB/UNIXおよびそれ以降のUnix System IIIでは、Cのエスケープシーケンスを次のようにecho拡張し始めましたが、注目すべき違いは、8進エスケープシーケンスがCではではなくとして表現されることです。 [ 18 ]\n\0ooo\ooo
第8版Unixでは、echoオプションが渡された場合にのみエスケープ展開が行われ-e、[ 19 ]その動作はBashやzshechoの組み込みコマンドやGNUなどの他の実装によって模倣されました。 echo
MS-DOSでは、このコマンドはバージョン2以降で使用できます。[ 20 ]
C:\> echoこんにちは世界 こんにちは世界ANSI エスケープ コードSGRシーケンスを使用すると、互換性のある端末で色付きのテキストを印刷できます。
UNIX System IIIスタイルの実装を使用する:
BGRED = ` echo "\033[41m" ` FGBLUE = ` echo "\033[35m" ` BGGREEN = ` echo "\033[42m" ` NORMAL = ` echo "\033[m" `または、Unix バージョン 8 スタイルの実装 (Unix 準拠モードではない場合の Bash など)。
BGRED = ` echo -e "\033[41m" ` FGBLUE = ` echo -e "\033[35m" ` BGGREEN = ` echo -e "\033[42m" ` NORMAL = ` echo -e "\033[m" `そしてその後:
echo " ${ FGBLUE }テキストは青色${ NORMAL } " echo "テキストは通常色" echo " ${ BGRED }背景は赤色" echo " ${ BGGREEN }背景は緑色で通常色に戻る${ NORMAL } "ポータブルprintf:
BGRED = ` printf '\33[41m' ` NORMAL = ` printf '\33[m' ` printf '%s\n' " ${ BGRED }赤い背景のテキスト${ NORMAL } "