Shell脚本if语句[:意外的运算符

时间:2016-03-31 15:13:11

标签: linux shell debian sh

我正在尝试创建一个非常简单的shell脚本,用于检测它是否以root运行。出于某种原因,下面的代码在第6行产生Error: [: karlbateman: unexpected operator,我不明白为什么?我有一个bash脚本,但为了便携性和一些教育,我想用shell脚本做这个。

#!/bin/sh
##
# Check for root launch
#
set -e
USER="$(id -un 2>/dev/null || true)"
if [ "$USER" == 'root' ]; then
    echo "You must be a root user"
    exit 1
else
    echo 'Not root!'
    exit 0
fi

这是从Debian Jessie amd64桌面运行./check.sh

1 个答案:

答案 0 :(得分:4)

首先,你把它标记为bash,它就是bourne。正如sigmalha指出的那样,你使用的是错误的操作符。使用=而不是==。

此外,你失败了(退出1)成功,失败后成功(退出0)。