JSch中的“ shell”通道和“ exec”通道有什么区别

我希望能够将Java应用程序中以字符串表示的许多连续命令发送到SSH服务器以执行。我应该使用:

Channel channel = session.openChannel("shell");

-要么-

Channel channel = session.openChannel("exec");

回答:

使用shell通道启动外壳(在Unix上为sh或bash或类似的东西,在Windows上通常为cmd.exe)并创建控制台(如果在本地运行它们,则在屏幕上看到的内容)。您有一个提示,您可以将其解析或用于检测命令是否完成。

使用命令通道,将为每个命令启动一个shell实例(实际上为每个命令打开一个通道),然后将一个命令作为shell的参数传递(在Windows上看起来像“

cmd.exe / c”)。

使用命令通道更容易,因为您不需要处理命令提示符。

以上是 JSch中的“ shell”通道和“ exec”通道有什么区别 的全部内容, 来源链接: utcz.com/qa/422143.html

回到顶部