首页 > 解决方案 > 如何识别字符串是否不在列表中,或者是否有等效于'!=〜'?

问题描述

我知道该=~运算符可用于识别字符串是否在列表中...

if [[ "$var" =~ ^(str1|str2|str3)$ ]]
     then
          echo "$var is in the list"
     else
          echo "$var is not in the list"
fi

...但是如果我只对以下内容感兴趣,则此语法效率不高else

if [[ "$var" =~ ^(str1|str2|str3)$ ]]
     then
          echo "foo" >/dev/null        #bogus anything to avoid empty "then" clause
     else
          my_awesome_function_here
fi

我知道如果我只是检查单个字符串,则!=可以使用运算符...

if [[ "$var" != "str1" ]]; then
     my_awesome_function
fi

...但!=~不是有效的运算符。

有没有等价物!=~?还有什么我想念的吗?

标签: bashsyntax

解决方案


推荐阅读