この「猫」の声明は何をしますか。

この「猫」の声明は何をしますか。

私はBashファイルでこのステートメントが何をしているのかを調べようとしています。私はそれを結合して指すファイルに出力し、stdout複数行の文字列を追加すると思います。これは正しいですか?stderr$log

cat << EOF >> $log 2>&1   
the quick brown  
fox jumps  
EOF 

答え1

まず、cat小文字でなければなりません。文では、次の概念を使用します。ここにファイル

最初の部分 cat << EOFstdinコマンド(標準入力)が後に表示されることを意味します。これらはすべて、その単語がEOFコマンドの標準入力になるまで最初の行の後に表示されますcat。またはドキュメントから:

このタイプのリダイレクトは、行に次の項目のみが含まれるまで、現在のソースから入力を読み取るようにシェルに指示します。区切り記号(あなたの場合末梢血)(末尾の空白なし)が表示されます.この時点までに読み込まれたすべての行は、コマンドの標準入力として使用されます。

第二部コマンドの出力は、>> $log 2>&1変数に名前が付いたファイルを意味し、追加する必要があります。stdoutstderr$log

結論として:これで、次のファイルが作成されます。

the quick brown
fox jumps

関連情報