Pergunta inicial sobre o bash “for loop”

2

Quando eu faço,

for ((i=0; i<"${ARRAY}"; i+=2))
do
    echo $i
    echo ${ARRAY[$i]}
done

echo $i funciona como esperado, também echo ${ARRAY[0]} funciona, mas com $i como iterador i veja apenas linhas em branco. Como escrever o loop for corretamente?

    
por Guest 26.03.2014 / 23:37

1 resposta

3

Experimente o script abaixo. Deve funcionar.

declare -a array=('1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11')
for ((i=0; i<=${#array[@]}; i+=2 )) ;
  do
     echo "Current Iterator i value:" $i
     echo "Array element at this position:" ${array[$i]}
 done

Saída do script

Current Iterator i value: 0
Array element at this position: 1
Current Iterator i value: 2
Array element at this position: 3
Current Iterator i value: 4
Array element at this position: 5
Current Iterator i value: 6
Array element at this position: 7
Current Iterator i value: 8
Array element at this position: 9
Current Iterator i value: 10
Array element at this position: 11

Explicação

Eu declarei inicialmente um array com 11 elementos.

A partir da sua pergunta, acredito que você está tentando interagir com todos os elementos disponíveis na matriz.

${#array[@]} - Isso é usado para determinar o comprimento da matriz.

${array[$i]} - Isso é usado para imprimir um elemento em um determinado índice.

    
por 26.03.2014 / 23:52