如何识别字符串是否不在列表中,或者是否等同于'!=〜'?

时间:2018-08-01 22:36:50

标签: bash syntax

我知道=~ operator可用于识别a string is in a list ...

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

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

有与!=~等效的内容吗?还有其他我想念的东西吗?

0 个答案:

没有答案