要检查bash脚本是以root用户身份还是以普通用户身份运行?

poo*_*ank 3 bash scripting

我已经开始学习bash脚本了.我有一个概念上的疑问,如何确定脚本是以root身份还是以普通用户身份运行.

如果用户为0,我知道UID,但我不明白如何实现它.任何人都可以解释我如何使它工作.是否可以"Not a root user"像以普通用户一样运行脚本时打印消息?

我的脚本很简单hello_world.sh:

#!/bin/bash
echo 'Hello World';
Run Code Online (Sandbox Code Playgroud)

rem*_*ram 5

POSIX shell具有内置变量$UID$EUID.您也可以查看退货id -u.在每种情况下,id 0表示root.

#!/bin/sh
if [ $EUID -ne 0 ]; then
    echo "This script should be run as root." > /dev/stderr
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)