15

有一个快速的问题,

想象一下我有这个代码:

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,如何自动安装?

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

4

6 回答 6

11

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

echo yes | ./storm-install/storm_install.sh all `hostname` $INSTALLDIR
于 2015-07-01T08:52:49.047 回答
9

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

yes "yes" | bash script.sh 
于 2016-05-13T09:12:48.283 回答
8

使用适当命名的命令yes

于 2013-05-17T19:02:24.627 回答
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 不会解释的任何无意义的字符。

于 2013-05-17T19:03:07.560 回答
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.
于 2013-05-17T19:12:58.573 回答
1
( echo yes ; echo no; echo yes ) | script.sh
于 2017-07-14T06:37:35.123 回答