外壳脚本:在环境变量上使用if



我有一个这样的shell脚本,

#! /bin/sh
if [ -z "$ENVIRON" ]; then
echo "no env set"
elif  [ "$ENVIRON" == "test" ]; then
echo "test mode"
else
echo "production mode"
fi

当我运行这个时,我得到错误,

[:测试:意外的操作员

我也尝试更改为elif [ $ENVIRON == "test" ]; then,但得到了相同的错误。当我在mac上运行这个时,我得到了预期的结果:

tw tmp $ cat script.sh 
#! /bin/sh
if [ -z "$ENVIRON" ]; then
echo "no env set"
elif  [ "$ENVIRON" == "test" ]; then
echo "test mode"
else
echo "production mode"
fi
tw tmp $ ENVIRON=test sh script.sh 
test mode

但是在ubuntu 中运行完全相同的脚本时出错

我做错了什么?如何解决?

使用单个=:

elif  [ "$ENVIRON" = "test" ]; then

请参阅https://github.com/koalaman/shellcheck/wiki/SC2039#testing-相等

相关内容

  • 没有找到相关文章

最新更新