「echo」と「echo -e」の違い[非公開]


25

違いは何であるechoとはecho -e?echoコマンドではどの引用符( ""または '')を使用する必要がありますか?すなわち:echo "Print statement"またはecho 'Print statement'?また、一緒に使用できる利用可能なオプションは何echoですか?


3
何のシェル?echo -ePOSIXでは定義されておらず、おそらくシェルによって異なります。
ヨルダン

これはあなたの質問に答えますか?unix.stackexchange.com/questions/65803/...
dhag

2
man echoのマニュアルを読むために使用しますecho
ナニー

エコーは、コマンド、それだけで...エコーそれらとその引数を実行しません
Anthonの

回答:


33

echo単独でテキスト行を表示します。"..."文字通り、次の2つの引用符内のすべてのものを取り、そのまま印刷します。ただし、バックスラッシュエスケープの解釈を有効にするためにecho -e作成していますecho。これを念頭に置いて、ここにいくつかの例があります

INPUT: echo "abc\n def \nghi" 
OUTPUT:abc\n def \nghi

INPUT: echo -e "abc\n def \nghi"
OUTPUT:abc
 def 
ghi

注:\nは改行、つまり復帰です。端末にecho -e入力することで、他のどのシーケンスが認識されるかを知りたい場合man echo


2
echoほとんどのシェルに組み込まれています。代わりにスタンドアロンコマンドをman echo文書化するのが好きechoです。
ステファンシャゼル

Unix準拠モードでない場合のGNU echoまたはGNUシェルの動作を説明していechoます。他の場所では、通常、動作が異なります。
ステファンシャゼラス

3

ほとんどのシェルでは、エスケープシーケンス()echoを使用できません\n \techo -eできる限り

echo -e " This is \n an \t example"

一重引用符と二重引用符は、主に補間の問題を処理するためのものです。ここで詳細を見つけることができます、 なぜechoは私の引用文字を無視するのですか?


それは逆です。ほとんどのシェル(ksh88、ksh93、pdksh、mksh、Bourne、zsh、dash、bash、およびすべてのUnix準拠システムのshでは、一部の環境でのみksh93またはbashのようなシェル)echoはエスケープシーケンスを拡張します。echo受け付け実装は-ePOSIX準拠ではありません。
ステファンシャゼラス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.