1

我有一个命令行程序,我正在尝试使用 Expect 自动与该程序交互。该程序是通过在构建文件上运行命令“ant runco​​nsole”来启动的。

我还在 bash 脚本中嵌入了 Expect 脚本。目前我的代码如下所示:

#!/bin/bash

cd $HOME/myProj/build

/usr/bin/expect - << EndMark

spawn ant runconsole

EndMark

exit 0

构建这个只是将 spawn ant runco​​nsole 打印到终端。并将“ant runco​​nsole”放在引号中返回“无法执行”ant runco​​nsole:执行“spawn”ant runco​​nsole时没有这样的文件或目录“

这是我第一次使用 Expect,所以我确定这是一个非常愚蠢的问题,但我在网上找不到解决方案。我真的很感激任何帮助。

4

1 回答 1

1

那里发生的情况是您正在使用 Ant 创建一个 Expect 会话,但没有与之交互,因此它终止了。

您可以稍微修改您的脚本:

/usr/bin/expect - << EndMark
spawn ant -v runconsole
expect
EndMark

运行它,您应该会看到来自 Ant 的一些输出返回。有关如何设置 Expect 脚本以及与 Ant 交互的信息,请参阅spawn wiki 页面Expect 手册页

于 2012-08-21T22:58:06.583 回答