如果 $USER != "root" 則停止/終止正在執行的腳本

如果 $USER != "root" 則停止/終止正在執行的腳本

我正在編寫一個需要以 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."才能停止執行。

答案1

我會這樣做:

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

請注意,核心內部使用 id=0 來識別超級使用者(或 root)。


編輯:重定向到 STDERR 會更好。


這是一句單行話:)

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

相關內容