bashの「cat << EOF | grep」はどのように機能しますか?

bashの「cat << EOF | grep」はどのように機能しますか?

存在するこの回答到着bashで「cat << EOF」はどのように機能しますか?Stack Overflowで最初の2点を獲得しました。しかし、3番目のポイントは理解できません。Bashのパイプに複数行の文字列を渡す

  1. Bashのパイプに複数行の文字列を渡す

     $ cat <<EOF | grep 'b' | tee b.txt
     foo
     bar
     baz
     EOF
    

3つの単語、2つのパイプ文字があるからです。それでは、どのように説明するのかわかりません。

ベストアンサー1

あなたの意見で判断すると、次のようになります。

最初のパイプ文字("|")が何をしているのかわかりません。

最初の|文字は、の出力をcatの入力に接続しますgrep<<リダイレクト入力する;これと同様に、cat完全に別々のリダイレクトです。<cat <some_file | grep …

好むかもしれない<<EOF cat | grep 'b' | tee b.txt(比較この回答)左から右に読み込むと、データフロー方式と厳密に一致するためです。ここのドキュメント→→→ 。cat​​greptee

これらの操作はすべて、次のことなく実行できますcat

<<EOF grep 'b' | tee b.txt
foo
bar
baz
EOF

(またはgrep 'b' <<EOF | …)。

おすすめ記事