2013-05-30 206 views
-1

我有一个url数组。我有一个脚本来打开它们,如果它们没有任何错误打开,显示状态为运行,否则不运行。现在我想用这种状态替换HTML中的url({ABC_Service_Status})的相应状态。我在哪里把我的sed语句,以及如何从URL中切只是ABCServiceShell替换文件中的字符串

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

可以在sed命令结合变量和字符串:

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

你会被解析每个服务的整个文件,虽然。

相关问题