2013-04-10 75 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