bash“for循环”

bash“for循环”

当我做,

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

echo $i正如我所期望的那样,也echo ${ARRAY[0]}可以工作,但是作为$i迭代器i只能看到空行。如何正确编写for循环?

答案1

尝试下面的脚本。它应该有效。

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

脚本的输出

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

解释

我最初声明了一个包含 11 个元素的数组。

从您的问题来看,我相信您正在尝试迭代数组中的所有可用元素。

${#array[@]}- 这用于确定数组的长度。

${array[$i]}- 这用于打印特定索引处的元素。

相关内容