我有类似这样的事情:
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
我该如何修复此问题?
基本上,我希望每当 constant1 = constant2 时运行“在这里做一些事情 bla bla”。也就是说,[xx,yy] = [1,8],[2,7] 等
答案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