我开始学习Bash脚本编程。我有一个概念上的疑问,如何确定脚本是以root用户身份还是普通用户身份运行。
我知道如果用户的UID为0,则表示该用户是root用户,但我不知道如何实现它。有人能向我解释一下如何使它工作吗?如果脚本以普通用户身份运行,是否可以打印一个消息“Not a root user”?
我的脚本是一个简单的hello_world.sh:
#!/bin/bash
echo 'Hello World';
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
$EUID = $UID
成立。然而,其他像dash这样的shell没有实现这一点。 - user2719058