【问题标题】:How to check if any array element is not holding a specific string如何检查任何数组元素是否不包含特定字符串
【发布时间】:2016-05-17 16:38:47
【问题描述】:

有没有办法检查数组中的所有元素,并且if数组中的所有元素都没有持有字符串mystring来返回true?例如,如果具有 2 个元素的数组的任何元素持有 mystring 我希望它使其返回为 false,则其他任何内容都是 true:

[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 以外的任何其他值,它应该返回 true?

我的尝试是:

    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    

【问题讨论】:

    标签: arrays bash element


    【解决方案1】:

    这应该做你想做的:

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-23
      • 1970-01-01
      • 2019-10-22
      • 2019-06-15
      • 2013-01-12
      • 2013-09-27
      • 2010-11-16
      • 2016-09-22
      • 2021-05-02
      相关资源
      最近更新 更多