我正在尝试使用Apache SSHD library将命令发送到SSH shell。我读过JavaDoc;但它太稀疏了,我无法理解如何使用该库。
对不起,我无法链接到JavaDoc,但它似乎无法在网上获得。我能够使用System.in,System.out和System.err流设置发送命令和读取结果的测试。该项目的最终目标是将shell发送到shell,处理结果,发送另一个字符串,处理结果等,同时保持在同一个shell中。我知道我可以打开多个ChannelExecs;但这会产生多个渠道。
基本上,我希望我的程序能够与shell进行交互。
答案 0 :(得分:0)
如果你想要一个完全自定义和受控制的shell,那么你可以编写自己的org.apache.sshd.server.Command类和run()方法的实现,调用java.lang.Process来执行你自己的shell / DOS脚本并通过Command类的输入和输出流将结果返回给调用程序。
如果调用程序可以执行正常的shell命令,如dir / mkdir / touch等,那么可以使用org.apache.sshd.server.shell.InvertedShell类。 Apache SSHD包中有一个测试类InvertedShellWrapperTest.java,可以为您提供一个良好的开端。
答案 1 :(得分:0)
https://mina.apache.org/sshd-project/tips.html
我必须稍微修改他们的代码片段,这对我有用:
import re
if re.compile('xyz').search(given_text):
print 'found'