У меня есть что-то вроде этого:
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], и т.д.
Если Вы хотите изменить 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