私は、特定の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から入力を受け取るのではなく、特定のコマンドと対話するにはファイル記述子が必要です。