处理Linux shell脚本中的输入确认

时间:2011-09-14 02:55:09

标签: linux shell ubuntu apt debconf

我正在编写一个Linux Shell脚本来自动完成我在Ubuntu 11.04上做的一些事情。

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

但是,我不知道我将如何处理进程要求用户输入的部分。例如,我使用apt-get安装的某些内容会要求您进行确认,即(Y)es或(N)o。

我究竟如何处理shell脚本中的自动确认,即在被问到时自动确认是或否?

4 个答案:

答案 0 :(得分:15)

yes | ./script会回复y

否则,编写一个打印所需答案的脚本,例如:

 echo N
 echo Y
 echo Y

答案 1 :(得分:4)

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

  

-y, - 是, - 是 - 是的              自动提示是;假设“是”作为所有提示的答案并运行              非交互。

答案 2 :(得分:2)

对于Apt,正确的答案是使用正确的参数“预置”您的debconf数据库。如果Debconf从其数据库中找到答案,它将不会询问。另请参阅http://www.debian-administration.org/articles/394

答案 3 :(得分:1)

尝试Expect它可能就是您要找的东西。