相关疑难解决方法(0)

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

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

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

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

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

linux shell ubuntu apt debconf

13
推荐指数
1
解决办法
1万
查看次数

使用 Ansible 使用 debconf-set-selections 自动 *just* exim4 配置

我正在尝试在 Ansible 中对 Debian 上的 exim4 配置进行自动化——到目前为止我们一直在手动配置——但我被困在我正常运行的阶段dpkg-reconfigure exim4-config

我可以很容易地自动化这些步骤:

  • 更新conf文件在 /etc/exim4/exim4-config.conf.conf
  • dpkg-reconfigure --frontend noninteractive exim4-config

它们在剧本中运行良好,但问题是并非我在交互式提示中看到的所有选项都在此 conf 文件中。例如,第二个设置System mail name没有在 conf 文件中的任何地方指定。也不是最后一个设置,Root and postmaster mail recipient在第一次配置后也不再显示在交互式提示中(为什么?)

然后我看到有些人建议使用debconf-set-selectionshere),我尝试调查 - 我安装了debconf-utils软件包然后运行debconf-get-selections- 然后我看到了那里的所有选项,但现在我想知道是否有一种方法可以debconf-set-selections不用不必使用文件组所有的一次性设置,因为我只是想改变的话用exim4关联的值。如果我需要再次运行剧本,我试图避免覆盖可能设置的任何其他值(与 exim4 无关)。

除了将 的输出写入debconf-get-selections文件然后使用 Ansible 的lineinfile/template模块替换我想要更改的值之外,是否有更简单的方法来解决这个问题?我宁愿避免这种方法。

debian exim4 configuration-files ansible

5
推荐指数
1
解决办法
1748
查看次数

标签 统计

ansible ×1

apt ×1

configuration-files ×1

debconf ×1

debian ×1

exim4 ×1

linux ×1

shell ×1

ubuntu ×1