如何在Bash脚本中回答“是”

时间:2013-05-17 18:59:16

标签: linux bash

快速提问,

想象我有这段代码:

mkdir -p $INSTALLDIR
sudo apt-get install -y git clojure leiningen
git clone git://github.com/maltoe/storm-install.git
./storm-install/storm_install.sh all `hostname` $INSTALLDIR

这个脚本会问,你想安装其他软件包,我想说yes, 如何自动完成?

或者可能有一种方法可以默认回答任何问题?

7 个答案:

答案 0 :(得分:8)

我不确定,但我建议尝试:

echo yes | ./storm-install/storm_install.sh all `hostname` $INSTALLDIR

答案 1 :(得分:7)

命令名称为yes

答案 2 :(得分:6)

如果您正在运行脚本,请尝试以下操作:

yes "yes" | bash script.sh 

答案 3 :(得分:5)

假设风暴提出问题 - 使用此处的文档 - 例如:

mkdir -p $INSTALLDIR
sudo apt-get install -y git clojure leiningen
git clone git://github.com/maltoe/storm-install.git
./storm-install/storm_install.sh all `hostname` $INSTALLDIR  <<-EOF
yes
EOF

EOF可以是shell不会解释的任何无意义的字符。

答案 4 :(得分:3)

apt还有--force-yes选项,可能会有所帮助:

   --force-yes
       Force yes; This is a dangerous option that will cause apt to
       continue without prompting if it is doing something potentially
       harmful. It should not be used except in very special situations.
       Using force-yes can potentially destroy your system! Configuration
       Item: APT::Get::force-yes.

答案 5 :(得分:2)

我有一个脚本需要通过&#34;是&#34;几次,最后我们需要传递&#34;版本号&#34;为了部署到nexus。 有什么建议?

答案 6 :(得分:0)

( echo yes ; echo no; echo yes ) | script.sh