Linux 如何在bash脚本中回答控制台输出问题
我必须通过bash脚本运行一个.jar文件 /usr/java/jdk1.6.0_24/bin/java-jar reindexer.jar“url作为参数” 所以脚本如下Linux 如何在bash脚本中回答控制台输出问题,linux,bash,Linux,Bash,我必须通过bash脚本运行一个.jar文件 /usr/java/jdk1.6.0_24/bin/java-jar reindexer.jar“url作为参数” 所以脚本如下 while read line do /usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar $line done < parameter.txt 读取行时 做 /usr/java/jdk1.6.0_24/bin/java-jar reindexer.jar$line
while read line
do
/usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar $line
done < parameter.txt
读取行时
做
/usr/java/jdk1.6.0_24/bin/java-jar reindexer.jar$line
done
然而,jar文件有代码,它在执行时会问问题,如下所示
while read line
do
/usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar $line
done < parameter.txt
是否要继续?(是/否)
因此,我如何仅通过bash脚本回答此问题。只要您想对所有问题给出相同的答案,就可以使用
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"
如果您准备混合回答yes
和no
的问题,您可以使用输送到stdin的here文档,如下所示:
/usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar "$line" <<EOF
yes
yes
no
yes
EOF
/usr/java/jdk1.6.0_24/bin/java-jar reindexer.jar“$line”只要您想对所有问题给出相同的答案,就可以使用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"
如果您准备混合回答yes
和no
的问题,您可以使用输送到stdin的here文档,如下所示:
/usr/java/jdk1.6.0_24/bin/java -jar reindexer.jar "$line" <<EOF
yes
yes
no
yes
EOF
/usr/java/jdk1.6.0_24/bin/java-jar reindexer.jar“$line”echo y | java-jar reindexer.jar$line
,或yes | java…
。如果您需要更复杂的交互,您可能需要一个expect
脚本,但这将使您不再需要bash-only要求。echo y | java-jar reindexer.jar$line
,或者yes | java…
。如果您需要更复杂的交互,您可能需要一个expect
脚本,但这将使您不再需要bash-only需求。