2013-05-30 174 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 

你會被解析每個服務的整個文件,雖然。

相關問題