当我运行以下脚本
时#!/bin/sh
[ `whoami` == root ] || echo "must be run as root"
我收到以下错误
./test.sh: 2: [: root: unexpected operator
如何避免该错误?
答案 0 :(得分:5)
虽然看起来问题似乎没有引用单词root
,但是即使没有引用它,您的脚本也会在我的计算机上运行而不会出错。所以看起来你的错误取决于shell的实现。
问题是sh
是由不同环境中的不同shell实现的。 posix sh
命令不支持==
(仅=
),我认为这是您遇到的错误。参见例如this answer
尝试将第一行更改为#!/bin/bash
以查看您的计算机上是否属于这种情况。