用于检查字符串是否包含某些内容的Shell脚本

时间:2014-08-03 07:03:33

标签: shell

我有以下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语句。谁能告诉我哪里出错了。

3 个答案:

答案 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

您也可以添加*) ... ;;以进行默认操作。