0

我知道如何在配置文件中查找和替换一个部分,如下所示:

sudo sed -i "s/upload_max_filesize = 2M/upload_max_filesize = 3M/" /etc/php5/cgi/php.ini

但是如何在 bash 脚本中的配置文件末尾添加一个全新的部分?

server {
    listen      xx.xx.xx.xx:80;                # your server's public IP address
    server_name  myapp.com;                   # your domain name
    root         /usr/share/nginx/www/myapp/;  # absolute path to your WordPress installation    
}

我在终端内试过这个,echo "server { ... }" >> nginx.conf但我得到了

-bash: nginx.conf: Permission denied

不确定这在 bash 脚本中是否可以,或者我会再次获得权限被拒绝...

4

2 回答 2

0

您正在使用正确的语法。

echo "....." >> ngix.conf

只需确保您对“ngix.conf”具有正确的写入权限。

-bash:nginx.conf:权限被拒绝

这表明您没有写权限。

您还可以将该部分写入单个文件中,例如“new_section.txt”,并在后期添加:

cat new_section.txt >> ngix.conf

但是我不建议以这种方式向 ngix 添加配置。您可以使用“包含”语句。

include you_conf_path/my_new_config.conf;

这样,您可以对配置进行分组,并拥有一些小的配置文件,而不是一个大文件。然后,您还可以以帮助您找到正确文件的方式命名您的文件。

于 2012-10-23T13:14:29.480 回答
0

试试这个:

config="server {\n    listen      xx.xx.xx.xx:80;\n     server_name  myapp.com;               \n    root         /usr/share/nginx/www/myapp/;  =installation    \n }\n"
 in1="text_before_required_input"
 out1=`echo -e $config`;
              in=$in1 out=$out1 perl -pi.nk -e 's/\Q$ENV{"in"}/$ENV{"out"}/g'  file

如果不在上面,请查看 GNU ed http://wiki.bash-hackers.org/howto/edit-ed

于 2012-10-23T15:23:11.773 回答