我有一个shell脚本,我想在其中检查它是否由root运行。如果不是,那么我将变量SUDO='sudo'
设置为在后续命令之前。这样,用户会从外壳程序中收到一个很好的权限被拒绝的错误消息,并且如果他们使用sudo运行,它将正确地执行其业务。但是,对于以下代码,我得到了:
myscript.sh: [: -ne: unexpected operator
代码是:
#!/bin/sh
SUDO=""
if [ $EUID -ne 0 ]; then
SUDO='sudo'
fi
我以如下方式运行它:sh myscript.sh
作为这不是bash脚本。这不是sh vs bash afaik的问题。 shebang说/bin/sh
,而我正在sh
上运行它。