bash - 如何识别字符串是否不在列表中,或者是否有等效于'!=〜'?
问题描述
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
...但!=~
不是有效的运算符。
有没有等价物!=~
?还有什么我想念的吗?
解决方案
推荐阅读
- jquery - 在网格中选择文本间隔而不中断
- c++ - 渲染场景图的变换顺序
- android - 图像键盘:选择丰富的内容(Gif、贴纸)重新打开活动
- git - 如何更改本地存储库的远程目标?
- spring-boot - 禁用分布式跟踪以进行开发
- node.js - 如何在终端上的 Visual Studio Code 上“打印”我的函数?
- elasticsearch - 简单的弹性搜索输入 - 拒绝映射更新最终映射将有超过 1 种类型:[_doc, doc]
- flutter - 添加测试包失败 pub upgrade failed (1)
- multithreading - C++98 中有哪些内存屏障?
- python - 如何避免全局变量(并使用类)?