1

这是我的根检查代码。如果没有通过,请不要运行脚本,因为您需要 root。不确定这里出了什么问题:

if [ "whoami &2>/dev/null" != "root" ] && [ "id -un &2>/dev/null" != "root" ] ; then
    $BIN_ECHO " must be root to run this script "
    exit 1
else
    $BIN_ECHO -e " permission check passed "
fi

运行后我得到:

must be root to run this script
[root@localhost ~]# whoami
root
[root@localhost ~]# id -un
root
4

3 回答 3

8

“whoami”是一串字符。

`whoami` 是命令的输出。

于 2012-10-08T19:21:53.537 回答
3

您正在将包含命令的字符串与“root”进行比较。这不是你想要的。

if [ "$(whoami &2>/dev/null)" != "root" ] && ...
于 2012-10-08T19:16:38.970 回答
2

"whoami &2>/dev/null"并且"id -un &2>/dev/null"只是字符串,它们没有运行命令。使用:"$(whoami &2>/dev/null)""$(id -un &2>/dev/null)"代替。

于 2012-10-08T19:16:15.023 回答