java调用linux语句,第一个脚本的返回结果是第二个脚本的入参,怎样调用

问题一:
执行多个linux控制台脚本,比如第一个脚本的返回结果是第二个脚本的入参。
比如说我想要先查看进程,然后杀死他,杀死他的时候需要进程号,这个怎样操作?
下面这样?


                    Session session=con.openSession();
            session.execCommand("ps -ef | grep /home/aa/aaa.jar");
            Session sess = con.openSession();
            sess.execCommand("kill -9 正常情况下这是PID");

问题二:
我知道查看进程再杀死他可以用一条语句完成,但是我之后想要在重启进程,然后查看是否重启成功。
这样就要再次查看重启的进程是否有进程号,就要调用之前的查看进程语句。
因此我没办法把他们写成一条语句。
那么问题来了,怎样调用之前的查看进程语句?

问题三:
上述查看进程号的语句ps -ef | grep /home/aa/aaa.jar中文件夹名字:aa和问价aaa.jar
都是写springboot作为参数传递进来的,那么就不能在程序中体现出来,这样在
session.execCommand("ps -ef | grep /home/aa/aaa.jar");
怎样改动?正常情况下网址可以相加“+”,但是在这个语句中我不知道该怎样修改。

session.excCommand每次只能执行一条语句,如果想要执行两条语句,则有两种方法:
1、执行一条语句后,session。close();先关闭,再打开,不过此方法第二条打开执行的语句在根目录下,两条语句无法连贯。
2、用session.excCommand(“aaa;bbb”)

问题三的结局方式:
String One=“/home/”
String Two=aa;
aaa.jar是文件的原文件名,则:String origFileName = file.getOriginalFilename();
String cmd=One+Two+"/"+origFileName;
session.excCommand(cmd);

  1. InputStream stdOut = new StreamGobbler(session.getStdout());
    String outStr = processStream(stdOut, charset);

  2. 再调一遍不就行了吗?

  3. 字符串相加不行吗?没明白问题在哪?