bash - bash 如果字符串不包含多个条目
问题描述
在 bash 中,我需要检查字符串是否不包含值列表。如果没有,则将其添加到数组中
if [[ $x != *"Tom"* ]] || [[ $x != *"Dick"* ]] || [[ $x != *"Harry"* ]] || [[ $x != *"Bob"* ]]; then
echo $x
files_to_transfer+=( $x )
fi
如果它不包含 Tom、Dick、Harry 或 Bob,我需要将变量添加到数组中。
当我运行它时,每个文件都会添加到我的数组中,即使是文件名中包含 Tom、Dick、Harry 或 Bob 的文件。
解决方案
你需要
[[ $x != *Tom* && $x != *Dick* && $x != *Harry* && $x != *Bob* ]]
即,当它不包含它们时,您需要添加它,而不是如果它不包含它们之一。
此外,您可以在内部使用布尔运算符[[ ... ]]
;并且不需要双引号,因为它们没有特殊含义。
推荐阅读
- spotfire - Spotfire - 需要根据成本中心和期间获取最新的覆盖率代码
- javascript - 在nodeJS中构建我的数据模型的最佳方法是什么
- ios - 在显示之前加载 ViewController 的 WebView
- javascript - 将 iframe 语言更改为其父语言解决方法
- unity3d - Unity 自定义语音识别
- html - HTML 导航栏颜色
- c# - 枚举的重载运算符
- php - 来自管理文件夹索引的 htaccess 设置请求以从基本文件夹子目录加载
- php - 列出所有类别并计算(WordPress)中的帖子数
- cocoapods - Pod install 从错误的规范存储库安装 pod