我有这个要求,我需要执行一个unix命令列表,然后对每个命令我应该存储它的结果。 例如。 命令 - cd dir1,pwd,ls
我的输出应包含 -
cd dir1- PWD-DIR1 ls-a,b,c,d(假设它们出现在dir1目录下)
我尝试使用JSch库并尝试使用shell和exec通道类型。
但这不允许我发送命令并读取输出,然后发送另一个并读取输出。
我现在所做的是 使用exec在每个命令后发送所有命令和echo命令,然后读取该命令输出的回显。
使用shell我发送命令,但它等待退出命令,否则它会进入无限等待。
另外,我们如何才能获得单个命令的错误
请建议是否有任何方法可以实现这一目标。
答案 0 :(得分:0)
如果命令是独立的,请为每个命令打开一个新的“exec”通道。
如果后面的命令依赖于以前的命令,则没有很好的解决方案。
你实际上已经找到了最好的方法:
我现在所做的是使用exec在每个命令之后发送所有命令和echo命令,然后读取该命令输出的回显。
另见JSch Shell channel execute commands one by one testing result before proceeding。