我有以下shell脚本。
if [ "$group" == "First*" ]]
then
OWNER_EMAIL=first-logs@ginger.com
elif [ "$group" == "Second*" ]]
then
OWNER_EMAIL=second-team@ginger.com
fi
它不会抛出任何错误,但如果$ group包含First或Second内部,则不会正确执行if语句。谁能告诉我哪里出错了。
答案 0 :(得分:1)
删除引号""
并完成
if [ "$group" == First* ]
then
OWNER_EMAIL=first-logs@ginger.com
elif [ "$group" == Second* ]
then
OWNER_EMAIL=second-team@ginger.com
fi
答案 1 :(得分:1)
当我们使用双引号时,不会保留通配符...检查条件正在寻找准确的" First *"和"第二个"匹配。
以下列方式更改您的代码
if [[ "$group" == First* ]]
then
OWNER_EMAIL=first-logs@ginger.com
elif [[ "$group" == Second* ]]
then
OWNER_EMAIL=second-team@ginger.com
fi
答案 2 :(得分:1)
您还可以考虑case
效率声明:
case "$group" in
First*)
OWNER_EMAIL=first-logs@ginger.com
;;
Second*)
OWNER_EMAIL=second-team@ginger.com
;;
esac
您也可以添加*) ... ;;
以进行默认操作。