1

我必须运行一个脚本,它需要 app. 初始化 1 分钟,然后询问用户的输入。

如果我喜欢

bash-3.2$ java -d64 -jar myJarFile.jar < input_file

它立即接受输入,当 myJarFile.jar 实际需要输入时,它什么也得不到。

那么,我该如何解决呢?

4

2 回答 2

2

使用期望脚本。

例子:

#!/usr/bin/expect
set timeout -1
spawn ./run.sh
expect "\[Next]> " {send "Next\r"}
interact

在此示例中,它运行 run.sh 并在终端“[Next]>”上异步等待此字符串。每当它在终端上收到此消息时,它都会将 Next 作为输入发送到脚本。

于 2013-10-04T12:05:15.460 回答
1

根据您的提示,您正在使用BASH,因此您应该能够使用包含sleep. 例子:

$ seq 1 20 >numbers
$ cat < <(sleep 5; cat numbers)
# 5 second pause and then the contents of the 'numbers' file is output

因此,使用您的命令,您将运行:

java -d64 -jar myJarFile.jar < <(sleep 120; cat input_file)
于 2013-10-04T17:28:41.550 回答