我有一个这样的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-相等