2013-02-07 65 views
0

我有一個像這樣的shell腳本。從shell腳本獲取值到java

#!/bin/sh 

s=$1 
pro=`ps -ef | grep $s | grep -v grep | grep -v test3.sh` 
pro1=`ps -ef | grep $s | grep -v grep | grep -v test3.sh | wc -l` 

echo $pro 
echo $pro1 

if [ $pro1 -eq 0 ] 
    then 
      echo "Service $s is DOWN..." 
      echo "Service $s is DOWN..." >> processlogs.txt 
      echo "Starting Service $s..." 
      echo "Starting Service $s..." >> processlogs.txt 
      java -jar clientApplication.jar "$s" & 
      exit 0 

    else 
      echo "Service $s is Running..." 
      echo "Service $s is Running..." >> processlogs.txt 

    fi 

現在我想要$ s的值到java程序。我應該爲此做些什麼。謝謝。

+0

我只是想從java應用程序中插入日誌數據庫。 – Suniel

+0

也許你可以提供一些更多的解釋。你只是試圖用Java編寫這個程序的等價物嗎?還是你想專門運行這個腳本並捕獲Java中的輸出?請提供更多信息。 – xagyg

回答

3

這...

Process p = Runtime.exec("myExeOrShellScript"); 
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream())); 
String line; 
while ((line = r.readLine())!=null) { 
    // got the output in 'line' do something with it 
} 
r.close(); 

不管你泵出在你的shell腳本echo將在Java程序結束。

1

檢查ARGS:

+0

不需要修改shell腳本??? – Suniel