3

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

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

我的脚本很简单hello_world.sh

#!/bin/bash
echo 'Hello World';
4

1 回答 1

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
于 2013-11-04T17:29:51.443 回答