0

我能够从 Windows 环境的 java 程序中使用的 JSch 库创建的非交互式 shell 在 linux 服务器上运行 TCL 脚本。问题是我有一些脚本需要在脚本执行期间根据脚本的中间输出传递某些参数,并且在输入参数后,脚本执行从那里继续。但由于它是非交互式外壳,我无法在执行期间传递此参数。有什么办法可以让它工作吗?我想到了一个选项,我将参数作为命令行参数传递,但想知道其他方式。

4

1 回答 1

0

当您说“参数”时,您是指用户在交互式会话中输入的任何内容作为脚本提供的提示的输入吗?

如果是的话,有两种可能:

  • 如果脚本不希望会话是交互式的,并且只是从其标准输入流中读取其输入(gets例如使用),那么只需将此输入提供给tclsh解释您的脚本的进程的标准输入。
  • 如果脚本确实希望会话是交互式的(并且拒绝只接受来自其输入流的数据),则您必须为目标进程分配一个伪 TTY。

    我不熟悉JSch,但这似乎是一个处理JSch分配 PTY 的问题(和答案)。

于 2013-04-15T11:20:33.367 回答