我正在编写一个Linux Shell脚本来自动完成我在Ubuntu 11.04上做的一些事情。
基本上,我正在编写一个shell脚本来安装NGINX,MySQL和PHP,然后配置所有内容。我知道如何通过命令行完成所有事情。
但是,我不知道我将如何处理进程要求用户输入的部分。例如,我使用apt-get安装的某些内容会要求您进行确认,即(Y)es或(N)o。
我究竟如何处理shell脚本中的自动确认,即在被问到时自动确认是或否?
答案 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它可能就是您要找的东西。