首页 > 解决方案 > Bash 检查多个单词以匹配一个单词

问题描述

我有一个 BACKUP_STATUS由许多SUCCESS单词组成的变量

[ryt: i9]: echo $BACKUP_STATUS
SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS

问题:我想进行检查,以便如果变量中的这些单词之一更改为其他单词,那么它会给出错误我尝试这样

[[$BACKUP_STATUS = "SUCCESS"]] && echo true || echo false

但抛出错误

标签: bashdevops

解决方案


您可以使用带有测试命令的正则表达式来搜索是否找到“NO_SUCCESS”字符串

$ SUC="SUCCESS SUCCESS SUCCESS SUCCESS SUCCESS"
$ NSUC="SUCCESS SUCCESS SUCCESS SUCCESS NO_SUCCESS"
$ [[ $SUC =~ .*NO_SUCCESS.* ]] && echo "something wrong" || echo "everything is ok"
everything is ok
$ [[ $NSUC =~ .*NO_SUCCESS.* ]] && echo "something wrong" || echo "everything is ok"
something wrong

推荐阅读