如何检查是否有任何数组元素没有包含特定的字符串

时间:2016-02-08 04:47:13

标签: arrays bash element

有没有办法检查数组中的所有元素,而if数组中的所有元素都没有保持字符串mystring以返回true?例如,如果包含2个元素的数组的任何元素持有mystring,我希望它返回为false,其他任何内容都为真:

[mystring][mystring] = false/don't do anything
[mystring][A] = false/don't do anything
[@#$2][mystring]=false/don't do anything
[asda][wrwe]=true

问:如何使用 n 元素检查数组,如果该数组中的所有元素都不包含mystring以外的任何其他值,则应返回真?

我的尝试是:

    for element_number in `seq 0 $going_through_the_elements_of_the_array`;
    do
          my_var=${the_array[$element_number]}


                if ! [[ $my_var == "$my_string" ]]
                then
                     echo " This should be printed"
                     exit
                fi
    done    

1 个答案:

答案 0 :(得分:1)

这应该做你想要的:

case ${the_array[@]}
in
  *my string*) echo "true" ;;
  *) echo "false" ;;
esac

它将数组扩展为单个字符串,然后使用case语句中的RE机制来搜索目标。发现它的情况打印为true,所有其他情况打印错误。