【问题标题】:How to answer console output questions in bash script如何在 bash 脚本中回答控制台输出问题
【发布时间】:2016-03-02 23:17:52
【问题描述】:

我必须通过 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

但是 jar 文件有编码,它在执行时提出问题,如下所示

您要继续吗?(是/否)

那么我怎样才能仅通过 bash 脚本回答这个问题。

【问题讨论】:

  • echo y | java -jar reindexer.jar $line,或yes | java ...。如果您需要更复杂的交互,您可能需要一个 expect 脚本,但这会让您摆脱对 bash 的唯一要求。

标签: linux bash


【解决方案1】:

只要您想对所有问题给出相同的答案,您就可以使用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 答案,可以使用通过管道传输到标准输入的此处文档,如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 1970-01-01
    相关资源
    最近更新 更多