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

Y" sudo apt-get update && sudo apt-get upgrade계속하시겠습니까?"라는 응답을 빠르게 자동화하는 방법을 모르겠습니다 . 이를 위해 스크립트를 어떻게 수정합니까?

저는 우분투를 사용하고 있습니다.

답변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) 를 참조하십시오.

관련 정보