Unix大师!
我有一个Java程序,它将一些参数传递给一个Servlet. Servlet将信息输入到一个数据库中,并返回创建的行ID到调用它的java程序. Java程序在Unix shell脚本中运行,后来再调用另一个Java程序Java Program_2(比如说).
我的问题是这样 – 我需要将Java程序中的ID作为参数传递给同一shell脚本中的Java Program_2.有没有最好的做法呢?
事情我到目前为止工作 –
1)使java程序返回与System.exit()的退出代码.这两个问题 – 我如何捕获壳中的变量中的退出代码?这是正确的做法吗?退出代码实际上是为了返回程序的成功参数…
2)将输出写入java Java_Program> opt.txt文件中.如果我这样做,那么如何再次在shell变量中读取opt.txt的内容?
非常感谢!
编辑:我实际上应该提到这些程序在不同的机器.我使用脚本进入另一台机器,然后运行java程序2.因此,我不能管这两个.
解决方法
由于你所说的原因,我不建议使用退出状态来携带数据.捕获退出状态取决于您使用的是什么shell,但在Bash中,特殊的$?变量包含执行的最后一个进程的退出状态.
将数据写入stdout是比较惯用的.在Bash中,您可以如下捕获它:
output=$(java Java_Program)
要么:
output=`java Java_Program`
(你会经常听到第一个语法是首选的参数.)
然后,您可以通过以下方式将其提供给您的下一个进程的标准:
echo $output > java Java_Program_2
更简单地说,您可以简单地将流程一起管理:
java Java_Program | java Java_Program_2