0

関数にヒアドキュメントがあるこの問題に遭遇しましたが、ヒアドキュメントが長いため、bashはそれを関数として認識しません

例えば:

25行目

function write_p_configs {

cat /usr/local/php/etc/php-fpm.conf <<EOL
    really long document up to 50 lines
EOL
}

70行目

write_p_configs

write_p_configsコマンドが見つからないというエラーが表示されますが、ヒアドキュメントの半分を削除すると、ヒアドキュメントが長い場合にのみエラーが発生するように見えます.関数内をクリックしても下線が表示されません. {} マッチ。

これに対する最良の修正は何でしょうか?

4

1 に答える 1

1

を使用して複数の行を書き込もうとしているようです (関数の名前が示唆しています)。あなたのコマンド:/usr/local/php/etc/php-fpm.confheredoc

cat /usr/local/php/etc/php-fpm.conf <<EOL
    really long document up to 50 lines
EOL

は本質的に次のように言うのと同じです:

cat <<EOL
    really long document up to 50 lines
EOL

の出力を目的のファイルにリダイレクトする必要があります。cat

cat >/usr/local/php/etc/php-fpm.conf <<EOL
    really long document up to 50 lines
EOL
于 2013-07-27T14:34:36.053 に答える