让脚本对 apt-get 的提示回答“Y”

让脚本对 apt-get 的提示回答“Y”

我使用bash脚本来初始设置和更新虚拟机。尝试让此bash脚本配置虚拟机而无需手动执行此操作。

#! /bin/bash
  
echo "Updating and Installing binaries"
echo yes | sudo apt-get update && sudo apt-get upgrade

我不知道如何自动回复Ysudo apt-get update && sudo apt-get upgrade你想继续吗?”迅速的。我该如何修复我的脚本来做到这一点?

我正在使用Ubuntu。

答案1

选项-yapt-get自动对提示回答“是”。这也会导致apt-get非交互式运行。如果要更改保留的软件包,将安装未经身份验证的软件包,或者卸载重要的软件包,然后apt-get将中止其操作。

--yes选项--assume-yes是 的别名-y

这意味着您可以像这样编写脚本:

#!/bin/sh
  
echo 'Updating and Installing binaries'
sudo apt-get -y update && sudo apt-get -y upgrade

或者,如果您假设脚本由 root 执行(这可以避免sudo在脚本运行时以交互方式要求输入密码):

#!/bin/sh

if [ "$(id -u)" != "0" ]; then
    echo 'Need to be root' >&2
    exit 1
fi

apt-get -y update && apt-get -y upgrade

--trivial-only选项可以被视为与 的逻辑相反--assume-yes,因为它会对任何提示回答“否”。

有关详细信息,apt-get请参阅其手册 ( man apt-get)。

相关内容