2013-04-10 70 views
0
public class Test200 { 
    public static void main (String args []) { 
     System.out.println("David"); 
     System.out.println("Peter"); 
} 

}java的返回特定的值到shell腳本

output=$(java Test200) 
echo $output 

我得到的這兩個值是大衛·彼得。假設我只想在shell腳本中返回「David」?任何線索?謝謝。

回答

4

您不返回"David""Peter",您將它們打印到STDOUT。所以如果你只想打印其中的一個,只需刪除其他println電話。

您只能將整數值返回給shell。這由System.exit(status)完成。

+0

但是現在我希望從java返回一個sql錯誤代碼到shell,所以我只需要代碼:System.exit(sql error code)? – crchin 2013-04-10 07:13:06

0

嘗試使用grep命令,使其將獨自返回預期值的多個值使用egrep

output=$(java Test200) 

改用

output=$(java Test200 | grep 'David') 

但我沒有測試此代碼,它應該管用。

或試試這個

java Test200 >> outfile 

所有的SYSOUT將重定向到outfile在該基地,你可以做TE運行外部腳本。

+0

這只是一個例子,每次輸出值都會有所不同。 – crchin 2013-04-10 09:38:18

+0

試試這個java Test200 >> outfile,檢查編輯後的文章。 – 2013-04-10 10:35:11

+0

當然你的想法不會奏效。假設整個程序有超過20個system.out.print?所有將被打印到文件?它已經很亂了。 – crchin 2013-04-10 10:44:11