heredocsがファイル記述子に「依存」するのはなぜですか?

heredocsがファイル記述子に「依存」するのはなぜですか?

私は、特定のheredoc構文がファイル記述子を処理する理由を新しいユーザーに明確にするために、この質問と回答を投稿しました。最初は理解するのに苦労しました。

例をご覧ください。

bash << EOF0 

    command1
    << E0F1
        Proudly_Printed_With_Heredoc
    EOF1

E0F0

なぜこれを行うべきですか:

bash /dev/fd/5 5<< 'EOF0'
    command1
    cat << EOF1 >> /etc/apache2/apache2.conf
        Proudly_Printed_With_Heredoc
    EOF1
EOF0

ベストアンサー1

最初の例がないため、cat ファイル記述子は不要です。

bash << EOF0 

command1
cat << E0F1
        Proudly_Printed_With_Heredoc
EOF1

E0F0

ただし、heredocから入力を受け取るのではなく、特定のコマンドと対話するにはファイル記述子が必要です。

おすすめ記事