在http.conf文件中有一个块,如:
<IfModule mime_module>
...
</IfModule>
Run Code Online (Sandbox Code Playgroud)
假设使用bash,我该如何检查以下行
AddHandler application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)
已经添加到上一个块中,
如果没有,我怎样才能在其底部添加它
<IfModule mime_module>
...
AddHandler application/x-httpd-php .php
</IfModule>
Run Code Online (Sandbox Code Playgroud)
此块位于文件的中间:
文件内容不以此块开头或结尾.
编辑:
为了使这更难,我意识到我还需要进一步检查:很遗憾在我的问题中错过了它.如果上述行已作为注释行存在于所述块中
# AddHandler application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)
(char#可能是该行的第一个char,或者之前可能有一些间隔,因为它可能在AddHandler的char A之前有或没有一些空格),我只需要取消注释它,否则我继续添加如上所述.
awk '
/mime_module/{
flag=1
}
flag && /x-httpd-php/{
has=1
}
flag && /<\/IfModule>/{
flag = 0
if(!has)
print "AddHandler application/x-httpd-php .php"
}
1' input.conf
Run Code Online (Sandbox Code Playgroud)