如何使用期望执行jar并连续按Enter键?

时间:2018-10-04 15:49:36

标签: jar ansible redhat expect autoexpect

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

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

这是我需要您帮助的地方。 我想使用ansible调用Expect脚本,以便它可以自动执行jar并连续按Enter键,直到jar成功完成/安装为止。

2 个答案:

答案 0 :(得分:0)

尝试

yes "" | java -jar someJarFile.jar

答案 1 :(得分:0)

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

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