2013-07-03 140 views
0

我確信有一個更簡單的方法來做到這一點,但我還沒有弄清楚接下來要做什麼。我們正在運行一些jboss應用程序,我希望能夠通過輸入參數重新啓動它們。因爲我希望一次重啓多個應用程序,所以我認爲一個列表會很好。這是逗號分隔。這是我到目前爲止得到的。通過腳本運行帶參數的變量腳本

IFS=','; 
while read mLine 
do 
for i in $mLine 
do 
sh jboss-{$mLine} restart 
done; 
done < /tmp/apps 

一般來說,如果我只是寫 「SH的jboss-ABCDEF重啓」,但它的工作原理,只要不是我寫的 「JBoss的 - $ {} MLINE重啓」。後者將返回腳本的響應(這是根據輸入值的正確腳本),詢問參數,正如您可以看到的那樣,該參數位於此腳本的sh命令中。前者像後者一樣啓動正確的腳本,但與後者不同,第一個實際上會重新啓動服務器。

有人可能會爭辯說,我也爲每個applcation放一個,但由於並非所有的應用程序需要重新啓動,每次都會讓我很多if如此,如果是要找出哪些行將不得不運行,從而打敗整潔簡單的目的...

任何想法,將不勝感激,因爲我願意嘗試最找到解決方案。

回答

0

如果你這樣做:

#!/bin/sh 
for app in "[email protected]"; do 
    sh "jboss-$app" restart 
done 

然後,你可以通過應用程序名稱的空格分隔的列表的腳本

./restart-apps app1 app2 app3 ... 
+0

感謝,偉大的工作:)得到了一些新的問題,但ATLEAST這是更近了一步。 – SkyRaider