2017-11-09 9 views
-2

私はここのbashのドキュメント機能を理解しようとしています。以下のコードは期待通りに動作し、端末に「abc」を返します。私がプログラムcatechoで置き換えた場合、出力が表示されません。なぜ私はここにエコーする文書を渡すことができないのですか?それはbashの組み込みだからですか?
cat <<EOF abc EOF「echo << EOF」が期待通りに動作しない理由

「abc」が期待通りに端末に出力されます。

cat <<EOF 
abc 
EOF 

はそうでない場合は、何をやっていることはただでabcを持つ一時ファイルに接続し、その標準入力とechoを実行している:

以下なしの出力は、あなたがしたいthough-

echo <<EOF 
abc 
EOF 
+2

'<< EOF'は、コンテンツをstdinに置きます。 'echo'はstdinから読み込みません。 –

+0

stdinと引数の違いについては、私の答え[here](https://superuser.com/questions/600253/why-is-xargs-necessary/600273#600273)を参照してください。 –

答えて

1

をcomamndそれ。 echoはstdinを読み込みませんので、そこから読み込みを待っているコンテンツがあるかどうかは決して見つかりません。

+0

知られている欺瞞からの反作用を避けるためにマークされたコミュニティwiki –

関連する問題