首页 > 解决方案 > Shell 脚本:-ne 的意外运算符

问题描述

我有一个 shell 脚本,我想检查它是否由 root 运行。如果不是,那么我将变量设置SUDO='sudo'为附加到后续命令。这样,用户会从 shell 获得一个很好的权限被拒绝错误消息,如果他们使用 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

标签: bashsh

解决方案


推荐阅读