2016-03-02 40 views
0

我必须通过bash脚本运行一个.jar文件。如何在bash脚本中回答控制台输出问题

/usr/java/jdk1.6.0_24/bin/java罐子reindexer.jar “网址参数”

使脚本如下

while read line 

do 

/usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar $line 

done < parameter.txt 

然而JAR文件的编码,它问的问题,而执行如下

你要继续吗?(是/否)

所以,我怎么能回答只通过bash脚本这个问题。

+0

'echo y | java -jar reindexer.jar $ line'或'yes | java ...'。如果你需要更复杂的交互,你可能需要一个'expect'脚本,但是这会让你脱离bash的唯一需求。 – mpez0

回答

2

只要你想给同样的答案对所有问题你可以使用yes程序:

# This answers all questions with 'yes' 
yes | /usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar "$line" 

# This answers all questions with 'no' 
yes no | /usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar "$line" 

如果您对混合yesno回答,您可以使用此文件通过管道输送到stdin,像这样:

/usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar "$line" <<EOF 
yes 
yes 
no 
yes 
EOF