0

我遇到了这个问题,我在一个函数中有一个 here doc,但是 bash 没有将它视为一个函数,因为 here doc 很长

例如:

第 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 命令,但是如果我删除了 here doc 中的一半内容,它似乎只会在 here doc 很长时发出错误,在 sublime 文本中单击函数内部没有下划线显示{} 匹配。

什么是最好的解决方法?

4

1 回答 1

1

看来函数的名称暗示)您正在尝试编写几行来/usr/local/php/etc/php-fpm.conf使用heredoc. 你的命令:

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 回答