$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

関連情報