我正试图创建一个非常简单的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
这是在Debian Jessie amd64桌面上作为./check.sh
运行的。
USER
环境变量。因此,强烈建议不要使用大写变量名! - gniourf_gniourf