Definindo e incrementando uma variável no bash

2

Eu tenho algo assim:

declare -r constant1=0
declare -r constant2=0

for xx in 1 2 3 4 5 6 7 8 9 10
do  
    constant1=$((constant1 + 1))
    for yy in 8 7 3 9 3 9 2 8 4 4
    do
        constant2=$((constant2 + 1))
        if [ $constant1 == $constant2 ]; then
            something here bla bla
        fi
    done
done

Mas isso está me dando um erro, a saber:

line 6: constant1: readonly variable

Como faço para corrigir isso?

Basicamente, eu quero que o "faça algo aqui bla bla" seja executado sempre que constante1 = constante2. isto é, [xx, yy] = [1,8], [2,7], etc

    
por iamatrain 08.03.2015 / 22:18

1 resposta

1

Se você quiser modificar constant1 e constant2 , não deverá declará-los como somente leitura (é o que o declare -r faz). E se você quiser operar de pares de variáveis, você deve considerar o uso de matrizes:

array1=(1 2 3 4 5 6 7 8 9 10)
array2=(8 7 3 9 3 9 2 8 4 4)

for i in ${!array1[@]}
do
    echo "${array1[i]}" "${array2[i]}"
done
    
por muru 08.03.2015 / 22:37