从 apt-get(从 bash 脚本)安装时,有没有办法对任何提示强制“是”?

Sta*_*tec 22 command-line apt bash

我正在尝试制作一个bash脚本来自动安装我在任何ubuntu机器上使用的几个包。我经常通过 Amazon AWS 或 Digital Ocean 创建虚拟机,并且只想运行一个脚本来安装我使用的所有软件包。

我想安装的一些包是 Emacs 和 Node.js

我安装这些的正常方法是运行apt-get install Emacs,在执行此操作时,我总是收到一条警告,提示我此应用程序将占用多少空间以及我是否确定要继续。

有没有办法从脚本中自动执行此过程,并且始终对这些提示说“是”?

ste*_*ver 42

OPTIONS部分man apt-get

-y, --yes, --assume-yes
    Automatic yes to prompts; assume "yes" as answer to all prompts and
    run non-interactively. If an undesirable situation, such as
    changing a held package, trying to install a unauthenticated
    package or removing an essential package occurs then apt-get will
    abort. Configuration Item: APT::Get::Assume-Yes.
Run Code Online (Sandbox Code Playgroud)

  • 我曾经遇到过一个不受`--yes`影响的包。APT 没有问任何问题,但我认为 preinst 或 postinst 脚本总是在等待一些琐碎的输入 (4认同)
  • `sudo DEBIAN_FRONTEND=非交互式 apt-get -y install foo` (2认同)
  • `DEBIAN_FRONTEND=noninteractive` 阻止 preinst 和 postinst 脚本提问。 (2认同)

小智 20

有一个 unix 命令叫做

是的

如果没有选项,它会重复输出字符串“y”直到被杀死。

要使用它,只需将结果通过管道传送到需要确认的命令:

yes | apt-get install ...
Run Code Online (Sandbox Code Playgroud)

Unix 手册页或 SO 帖子“是”命令中阅读更多内容