在Linuxshell脚本中处理输入确认

Handling input confirmations in Linux shell scripting

我正在编写一个Linuxshell脚本来自动化我在Ubuntu11.04上所做的一些事情。

基本上,我正在编写一个shell脚本来安装nginx、mysql和php,然后配置所有内容。我知道如何通过命令行完成所有事情。

但是,我不知道如何处理流程要求用户输入的部分。例如,我用apt-get安装的某些东西要求您确认,即(y)es或(n)o。

我将如何在shell脚本中处理自动确认,即在被询问时自动确认是或否?


yes | ./script将回答y的所有问题。

否则,编写一个脚本来打印您想要的答案,例如:

1
2
3
 echo N
 echo Y
 echo Y


通常,您可以调用此类交互式程序,并选择自动回答所有问题的"是"。例如,您可以使用-y调用apt-get。从手册页:

-y, --yes, --assume-yes
Automatic yes to prompts; assume"yes" as answer to all prompts and run
non-interactively.


对于APT,正确的答案是"预设"具有正确参数的debconf数据库。如果Debconf从数据库中找到答案,它不会问。另请参见http://www.debian-administration.org/articles/394


试着期待它可能是你想要的。