如何用expect执行一个jar然后连续回车?

How to use expect to execute a jar and continuously hit enter?

从头开始,我使用 ansible 在 linux 环境中打开一个 Jar 文件。

基本上我这样做:java -jar someJarFile.jar,它在命令行中打开。 现在,它会提示我几个问题,可以通过多次点击 Return 来通过。 最后,jar 将生成一个 WAR 文件...

这就是我需要你帮助的地方。 我想用ansible调用一个expect脚本,让它自动执行jar,不断回车,直到jar成功completed/installed。

尝试

yes "" | java -jar someJarFile.jar

如果您知道需要按 <Enter> 的次数,则可以使用 echo -e '\n'。例如,如果您知道需要三个 <Enter>s:

echo -e '\n\n\n' | java -jar someJarFile.jar

当您需要输入 yes 不允许的特定且不同的值时,这也很有用。例如,回答如下提示:

Enter value [default]: <enter>
Enter number: 30<enter>
Ok?: y<enter>
Do the dangerous: n<enter>

可以通过

模拟
echo -e '\n30\ny\nn\n' | java -jar someJarFile.jar