我正在尝试创建一个非常简单的shell脚本,以检测它是否以root的形式运行。由于某些原因,下面的代码在第6行生成一个Error: [: stackunderflow: 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这是作为./check.sh从Debian amd64桌面上运行的。
发布于 2016-03-31 15:31:02
首先,你把这个标记为bash,这是bourne。正如sigmalha所指出的,您使用的运算符是错误的。使用=代替==。
此外,您在成功时失败(退出1),失败时成功(退出0)。
https://stackoverflow.com/questions/36337341
复制相似问题