| エコー | |
|---|---|
| 原著作者 | ダグラス・マキロイ(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コマンド(Ninth Edition Unix で導入) が推奨されています。
このコマンドは、以下のシェル、またはリストに記載されているオペレーティングシステムの少なくとも1つのシェルで使用できます。
echoMultics内で始まりました。Doug McIlroyが「指の練習」としてC 言語でプログラミングし、有用であることが証明された後、 Unix バージョン 2の一部となりました。バージョン 7では、( のように動作しますが、出力を行区切り文字で終了しません)を置き換えました。 [ 17 ]echo -npromptecho
PWB/UNIXおよび後のUnix System IIIでは、C エスケープシーケンスのecho展開が開始され、C ではの代わりにとして表現されるという顕著な違いがありました。[ 18 ]\n\0ooo\ooo
第 8 版 Unix では、echoオプションが渡された場合にのみエスケープ展開が行われ-e、[ 19 ] 、その動作はBashやzshechoの組み込みコマンドや GNUなど、他のいくつかの実装にもコピーされました。echo
C:\> echo Hello world Hello worldANSIエスケープコード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 } "