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

オプションはプロンプトに自動的に「はい」と答えます-y。これにより、非対話型実行apt-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

または、スクリプトがルートによって実行されると仮定する場合(これにより、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-onlyANDの論理反対と見なすことができます。--assume-yes

詳しくは、apt-get該当するマニュアル(man apt-get)を参照してください。

関連情報