【发布时间】:2013-02-21 10:44:27
【问题描述】:
我的代码允许我通过 ssh 连接、运行命令并获得响应。它可以正常工作,但仅适用于非交互式命令(例如:ls、df,它们在运行后立即返回结果)。问题是当我尝试运行一些交互式命令时,例如 top 或 passwd 代码一直在等待响应(当然也没有响应)。
如何应对交互式命令?我真的不在乎输出,我只想运行它。
public String runCommand(String command) throws Exception {
// SSH Channel
ChannelExec channelssh = (ChannelExec) session.openChannel("exec");
// Execute command
channelssh.setCommand(command);
channelssh.connect();
InputStream inputStream = channelssh.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null)
{
stringBuilder.append(line);
stringBuilder.append('\n');
}
channelssh.disconnect();
return stringBuilder.toString();
}
【问题讨论】:
标签: java android bash ssh jsch