Определение и постепенное увеличение переменной в ударе

У меня есть что-то вроде этого:

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

Но это дает мне ошибку, а именно:

line 6: constant1: readonly variable

Как я иду о фиксации этого?

В основном я хочу, "делают что-то здесь bla bla" для выполнения каждый раз, когда constant1 = constant2. то есть, [xx, yy] = [1,8], [2,7], и т.д.

2
задан 9 March 2015 в 00:33

1 ответ

Если Вы хотите изменить constant1 и constant2, Вы не должны объявлять их как только для чтения (это - то, что declare -r делает). И если Вы хотите действовать пар переменных, необходимо рассмотреть использование массивов:

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
1
ответ дан 2 December 2019 в 05:08

Другие вопросы по тегам:

Похожие вопросы: