一次循环遍历两个数组值
如何一次遍历两个数组值?我尝试使用for循环,但我只能弄清楚如何一次回显一个。
#!/bin/bash
array=(value1 value2 value3 value4 value5 value6 value7 value8 value9 value10)
for i in ${array[@]}
do
echo $i
done
有没有办法更改 for 循环,使其一次回显两个值,如下所示?
value1 value2
value3 value4
value5 value6
value7 value8
value9 value10
回答
循环索引比循环元素更容易。您可以通过索引拉出两个元素:
for ((i = 0; i < ${#array[@]}; i += 2)); do
echo "${array[i+0]} ${array[i+1]}"
done
或者您可以使用以下语法提取数组切片${variable[@]:offset:length}:
for ((i = 0; i < ${#array[@]}; i += 2)); do
echo "${array[@]:i:2}"
done
如果您一次想要两个以上的元素,这将特别有用。