首页 > 解决方案 > 检查整数是否是数组中的元素

问题描述

我需要检查值 c 是否存在于整数数组中,我知道如何使用 for 循环和 if 语句来解决这个问题:

    for c in {1..100};do
        sequence=(2 4 6 8 10 12 14 16)    
        for value in "${sequence[@]}";do
           if [[ $value -eq $c ]];then  #If c exists in sequence
              flag=1
              break
           fi
    done

完毕

但我不想要这个,我尝试了类似的东西:

[[ ${sequence[*]} =~ $c ]]

但它并没有给我想要的结果,我认为它只适用于字符串数组,而不适用于整数。

我怎么能接近这个?

标签: bashcomparison

解决方案


将我的评论转换为答案,以便将来的访问者轻松找到该解决方案。

您可以使用此grep + printf解决方案:

grep -qFx "$c" <(printf '%s\n' "${sequence[@]}") && echo "found" || echo "nope"

推荐阅读