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

在Linux shell脚本中处理输入确认,linux,shell,ubuntu,apt,debconf,Linux,Shell,Ubuntu,Apt,Debconf,我正在编写一个Linuxshell脚本来自动化我在Ubuntu11.04上所做的一些事情 基本上,我正在编写一个shell脚本来安装NGINX、MySQL和PHP,然后配置所有内容。我知道如何通过命令行做所有事情 但是,我不知道如何处理流程要求用户输入的部分。例如,我使用apt get安装的某些东西要求您确认,即(Y)es或(N)o 我如何在shell脚本中处理自动确认,即在被询问时自动确认是或否?对于Apt,正确的答案是使用正确的参数“呈现”您的debconf数据库。如果Debconf从其数据

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

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

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


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

对于Apt,正确的答案是使用正确的参数“呈现”您的
debconf
数据库。如果Debconf从其数据库中找到答案,它将不会询问。另请参见

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

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


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

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

 echo N
 echo Y
 echo Y

试试看,这可能就是你想要的

复制品?(希望有帮助!)@heltonbiker:我不是想从shell脚本的用户那里获取输入,我只是想在脚本通常会提示我提供“是”或“否”响应的地方强制/输入。你是对的,我读错了,抱歉。谢谢。这正是我想要的。谢谢你的选择。我不确定我将如何构造脚本来实现这一点,但是,你有代码示例吗?如果你不想总是回答“是”,我真的不明白你的问题,因为它完全取决于大小写。如果您想对脚本回答“是-是-否”,只需:
printf“y\ny\nn\n”|/您的脚本
或编写一个简单的脚本,用单独的行打印每个答案,然后:
/answer|/脚本
非常感谢。我想我现在有多种选择,以防我想对不同的提示做出不同的回答。这似乎是我想做的最优雅的方式,因为我只需要用脚本调用它一次。如果提示要求您输入非字符按键,例如“按enter键继续”,您会响应什么?非常感谢,它看起来非常有趣。我是否必须确切地知道提示将是什么,即,如果我在shell脚本中运行的命令将执行类似“输入您的出生日期:”的操作,我是否必须编写Expect“输入您的出生日期:”以完全符合提示的要求?!