从JSCH流中提取userInfo

时间:2013-04-08 11:50:18

标签: jsch

我正在尝试使用jsch作为后端实现在线终端UI。 我需要在UI中显示userinfo即[username @ Machine~] $信息。 由于输出流只是发送字节,因此很难将userinfo与实际命令输出区分开来。有没有办法区分相同的?

1 个答案:

答案 0 :(得分:1)

一般来说,没有。

如果你有一个shell通道,你看到的只是用户远程shell的输出,包括提示和实际的命令输出。你可以尝试解析它。在简单的情况下,这将起作用,但通常不可能,因为每个命令都可以输出类似提示的字符串。

您应该知道用户名(它应该与您用于登录的用户名相同),服务器名称有点棘手。

值得探索的一个想法可能是设置一个由“正常”命令输出中不太可能出现的字符序列分隔的特殊提示 - 在shell中设置PROMPT变量。

您可以通过不使用实际的shell频道来绕过该问题,但是每个命令都使用单独的exec频道 - 但是您必须自己解释cd之类的命令。跟踪当前目录,并在每个exec通道中的实际命令之前添加cd命令。您可能希望并行打开sftp通道以跟踪目录(以及列表文件等)。