我有一个命令行程序,我正在尝试使用Expect自动与该程序进行交互。该程序通过在构建文件上运行命令“ant runconsole”启动。
我还在一个bash脚本中嵌入了Expect脚本。目前我的代码如下:
#!/bin/bash
cd $HOME/myProj/build
/usr/bin/expect - << EndMark
spawn ant runconsole
EndMark
exit 0
构建它只是将spawn ant runconsole打印到终端。将“ant runconsole”放在引号中会返回“无法执行”ant runconsole“:执行”spawn“时没有这样的文件或目录ant runconsole”“
这是我第一次使用Expect,所以我确定这是一个非常无聊的问题,但我无法在线找到解决方案。我真的很感激任何帮助。
答案 0 :(得分:1)
正在发生的事情是您正在使用Ant创建Expect会话,但不与它进行交互,因此终止。
您可以稍微修改您的脚本:
/usr/bin/expect - << EndMark
spawn ant -v runconsole
expect
EndMark
运行它,你会看到Ant的一些输出返回。有关如何设置Expect脚本以及与Ant的交互的信息,请参阅spawn wiki page或Expect man page。