Como faço para verificar se os dados existem no loop for

1

Eu tenho uma matriz contém uma série de números:

10213
20223
30843
50981
60934

O que posso fazer para verificar se o array tem um elemento que começa com o número 4?

for element in array; do
    if # $element starts with 4
    then
        echo "The data exists"
    else
        echo "No data"
    fi
done
    
por Elijah Emvee De Vera 20.02.2017 / 09:25

1 resposta

2

Se os números já estiverem em uma matriz bash, você pode fazer:

msg="There are no numbers starting with '4' in the array."
for num in "${array[@]}"; do
        if [[ $num =~ ^4 ]]; then
                msg="The array contains an element starting with 4"
                break
        fi
done
echo "$msg"

Ou, se você gosta de soluções mais curtas e enigmáticas:

printf '%s\n' "${array[@]}" | grep -q ^4 && echo "Yes" || echo "No"
    
por terdon 21.02.2017 / 01:37