shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] [ Repeticao ] - While + Array


From: Fabiano Soares Honorato
Subject: Re: [shell-script] [ Repeticao ] - While + Array
Date: Thu, 6 Nov 2014 09:59:32 -0200

Já  explicaram, mas só pra fixar o conhecimento e ajudar você  em referências futuras:

O while vai executar tudo que existe entre o do e o done enquanto a condição for verdadeira (nesse caso, enquanto a variável contador for menor que o número total de espaços no array).

Assim, na primeira repetição o if que está dentro do loop retorna false (Pois o valor da posição do array não é B) e o valor "A" é imprimido logo abaixo, quando a segunda repetição acontece o if retorna true e o comando break é executado (Já que agora o valor é igual a B), fazendo com que o loop seja quebrado, ignorando o terceiro loop.

No seu caso, ao invés de usar um while, eu usaria um for como já foi sugerido.

Em 06/11/2014 00:29, "Gustavo Filgueiras address@hidden [shell-script]" <address@hidden> escreveu:
 

Caros,

   Estou fazendo uma repetição com os dados do Array, mas não estou conseguindo tratar uma exceção durante a repetição. No exemplo abaixo, eu gostaria de imprimir o nome se for diferente de B. Mas com o código abaixo, ele imprime somente o A, quando o desejado seria o A C.

   Somente destacando que estou usando o bash 3.2.25(1)-release (i386-redhat-linux-gnu)

contador=0
servidoresNomes=(
        "A"
        "B"
        "C"
)
while [ $contador -lt ${#servidoresNomes[@]} ]; do
        if [ "${servidoresNomes[$contador]}" = "B" ]; then
                break
        fi
        echo "${servidoresNomes[$contador]}"

        #
        # -- Incremento o contador.
        let "contador = contador + 1"
done


reply via email to

[Prev in Thread] Current Thread [Next in Thread]