私はBashファイルでこのステートメントが何をしているのかを調べようとしています。私はそれを結合して指すファイルに出力し、stdout
複数行の文字列を追加すると思います。これは正しいですか?stderr
$log
cat << EOF >> $log 2>&1
the quick brown
fox jumps
EOF
答え1
まず、cat
小文字でなければなりません。文では、次の概念を使用します。ここにファイル。
最初の部分 cat << EOF
stdin
コマンド(標準入力)が後に表示されることを意味します。これらはすべて、その単語がEOF
コマンドの標準入力になるまで最初の行の後に表示されますcat
。またはドキュメントから:
このタイプのリダイレクトは、行に次の項目のみが含まれるまで、現在のソースから入力を読み取るようにシェルに指示します。区切り記号(あなたの場合末梢血)(末尾の空白なし)が表示されます.この時点までに読み込まれたすべての行は、コマンドの標準入力として使用されます。
第二部コマンドの出力は、>> $log 2>&1
変数に名前が付いたファイルを意味し、追加する必要があります。stdout
stderr
$log
結論として:これで、次のファイルが作成されます。
the quick brown
fox jumps