그룹에 사용자를 추가할 때 자동 실패

그룹에 사용자를 추가할 때 자동 실패

환경 설정 스크립트의 일부로 Docker를 설치하기 위한 다음 코드 조각이 있습니다.

if [ ! "$(docker -v)" ]; then
    infoMessage "Setting up Docker..."

    echo "Updating system packages.."
    sudo apt-get update

    echo "Installing dependencies..."
    sudo apt -y install apt-transport-https ca-certificates curl software-properties-common

    echo "Adding GPG key..."
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

    echo "Adding docker repository..."
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

    apt-cache policy docker-ce
    echo "Installing docker engine..."
    sudo apt-get -y install docker.ce

    sudo usermod -aG docker ${USER}
    newgrp docker
fi

그러나 두 명의 개발자의 경우 어떤 이유로 docker를 설치한 후와 설치하기 전에 스크립트가 자동으로 종료되었습니다 fi( 's 로 발견됨 ). 아니면 주문하세요 . 종료 코드는 0이며 개인 구성 및 변경 사항을 제외하고 기능적으로 다른 컴퓨터와 동일해야 하는 컴퓨터에서만 이런 일이 발생하는 이유가 완전히 혼란스럽습니다. 명령을 단독으로 실행하면 전혀 문제가 없으며 스크립트를 다시 실행하여 설정을 완료할 수 있습니다.echousermodnewgrp

중단 문자를 확인했는데 스크립트의 다른 부분과 동일한 LF(\n)입니다. 그들은 Ubuntu 18.04를 실행하고 있습니다.

답변1

그 이유는 newgrp본질적으로 새로운 bash 인스턴스를 생성하기 때문에 종료될 때까지 스크립트를 계속 실행할 수 없기 때문입니다. 본질적으로 su - $(id -u -n);스크립트와 동일합니다.

관련 정보