unix shell脚本意外错误

时间:2017-09-01 13:01:41

标签: shell unix

当我运行以下脚本

#!/bin/sh
[ `whoami` == root ] || echo "must be run as root" 

我收到以下错误

./test.sh: 2: [: root: unexpected operator

如何避免该错误?

1 个答案:

答案 0 :(得分:5)

虽然看起来问题似乎没有引用单词root,但是即使没有引用它,您的脚本也会在我的计算机上运行而不会出错。所以看起来你的错误取决于shell的实现。

问题是sh是由不同环境中的不同shell实现的。 posix sh命令不支持==(仅=),我认为这是您遇到的错误。参见例如this answer

尝试将第一行更改为#!/bin/bash以查看您的计算机上是否属于这种情况。