我有一个网址数组。我有一个打开它们的脚本,如果它们打开没有任何错误,请将状态显示为正在运行,否则不运行。现在我想用这个状态替换html中url({ABC_Service_Status})的相应状态。我在哪里放置我的sed语句以及如何从URL中删除ABCService
urlArray=('http://server:port/ABCservice/services/ABCservice?wsdl' 'http://server:port/DEFservice/services/DEFservice?wsdl')
for url in "${urlArray[@]}"
do
result=`curl $url | head -1`
if (echo $result | grep '<?xml' >/dev/null 2>&1); then
echo Running
else
echo Not Running
fi
done
当前输出:
Running
Not Running
我有一个包含以下内容的html文件(version.html)
<tr><td>ABCService</td><td>12.11.0</td><td>{ABCService_Status}</td>/tr>
<tr><td>DEFService</td><td>12.11.0</td><td>{DEFService_Status}</td>/tr>
更换后所需的输出:
<tr><td>ABCService</td><td>12.11.0</td><td>Running</td>/tr>
<tr><td>DEFService</td><td>12.11.0</td><td>Not Running</td>/tr>
答案 0 :(得分:0)
您可以在sed命令中组合变量和字符串文字:
for service in ABCService DEFService
do sed --in-place s/\{${service}_Status\}/REPLACEMENT/ version.html
done
但是,您将解析每个服务的整个文件。