繁体   English   中英

Bash脚本:如何将部分添加到配置文件?

[英]Bash script: how to add a section to a config file?

我知道如何在这样的配置文件中查找和替换部分:

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脚本中是否可以这样做,否则我将再次拒绝权限...

您使用的语法正确。

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

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

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

这表明您没有写权限。

您也可以在“'new_section.txt'”之类的单个文件中写入该部分,并在以后添加:

cat new_section.txt >> ngix.conf

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

include you_conf_path/my_new_config.conf;

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

尝试这个:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM