$USER != "root"인 경우 실행 중인 스크립트를 중지/종료합니다.

$USER != "root"인 경우 실행 중인 스크립트를 중지/종료합니다.

저는 루트로 실행해야 하는 스크립트를 작업 중입니다. 그렇지 않으면 모든 것이 중지됩니다.

#!/bin/bash
validationRoot() {
    if [ $USER != 'root' ]
        then
            echo "You're not root! You can't use this script."

    fi
}
validationRoot;
echo "You're root!"

echo "You're not root! You can't use this script."실행을 중지하려면 add 뒤에 무엇을 추가해야 할지 모르겠습니다 .

답변1

나는 이렇게 했을 것이다:

#!/bin/bash
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

id=0은 슈퍼유저(또는 루트)를 식별하기 위해 커널 내부에서 사용되는 것입니다.


편집: STDERR로 리디렉션하는 것이 더 좋습니다.


여기에 한 줄의 내용이 있습니다 :)

(( EUID )) && echo ‘You need to be root.’ && exit 1

관련 정보