如果 $USER != "root" 则停止/终止正在运行的脚本

Vla*_*lad 4 bash root scripts kill

我正在处理需要以 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!"
Run Code Online (Sandbox Code Playgroud)

我不知道在echo "You're not root! You can't use this script."停止执行之后添加什么。

Rin*_*ind 7

我会这样做:

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

请注意, id=0 是内核内部用来标识超级用户(或 root)的内容。


编辑:重定向到 STDERR 会更好。


这是一个单线:)

(( EUID )) && echo ‘You need to be root.’ && exit 1
Run Code Online (Sandbox Code Playgroud)