-1

我有一个url数组。我有一个脚本可以打开它们,如果它们打开时没有任何错误,则显示状态为正在运行,否则未运行。现在我想用这个状态替换html中url({ABC_Service_Status})的相应状态。我在哪里放置我的 sed 语句以及如何ABCService从 url中删除

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>
4

1 回答 1

0

您可以在 sed 命令中组合变量和字符串文字:

for service in ABCService DEFService
    do sed --in-place s/\{${service}_Status\}/REPLACEMENT/ version.html
done

不过,您将为每个服务解析整个文件。

于 2013-05-30T19:33:22.000 回答