2013-04-15 56 views
0

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

回答

0

当你说“参数”,你的意思是用户将在互动会议已输入的输入提示脚本所呈现的东西吗?

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

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

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

+0

是的,参数意味着用户在交互式shell中输入的内容。由于脚本期望会话是交互式的,我将尝试探索使用JSch的伪TTY选项。谢谢。 :) 将很快发布结果。 – Peeyushpd