代码之家  ›  专栏  ›  技术社区  ›  3kstc

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

  •  0
  • 3kstc  · 技术社区  · 10 年前

    是否有一种方法可以检查数组中的所有元素,以及 if 数组中的所有元素都不包含字符串 mystring 返回真值?例如,如果具有2个元素的数组中的任何元素保持不变 神秘的,神秘的 我想让它返回为假,其他任何都是真的:

    [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 元素,如果该数组中的元素都不包含任何其他值,则 神秘的,神秘的 它应该是真的吗?

    我的尝试是:

        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 回复  |  直到 10 年前
        1
  •  1
  •   Greg Tarsa    10 年前

    这应该是你想要的:

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

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