在nginx.conf
我有:
server {
listen 81;
...snip...
}
我希望文件看起来像这样:
server {
listen 81;
if (-f $document_root/system/maintenance.html) {
return 503;
}
...snip...
}
因此,仅当文本(if..
)尚不存在时才应插入。
这可以在命令行使用一些内置程序吗?
类似的东西:
listen 81;
)并在插入几行文字后的下一行答案 0 :(得分:1)
这是sed
的作业,包含在shell脚本中。完全未经测试;调用“./script /path/to/nginx.conf”;请注意,它不会查找您想要添加的完整文本,只能从第一行获得足够长的令牌。
#! /bin/sh
if grep -q "document_root/system/maintenance" "$1"
then :
else
set -e
sed < "$1" > "$1.tmp" \
'/listen 81;/a\
if (-f $document_root/system/maintenance.html) {\
return 503;\
}
'
mv -f "$1.tmp" "$1"
fi