一次循环遍历两个数组值

New*_*ser 5 bash shell

如何一次遍历两个数组值?我尝试使用for循环,但我只能弄清楚如何一次回显一个。

#!/bin/bash

array=(value1 value2 value3 value4 value5 value6 value7 value8 value9 value10)

for i in ${array[@]}
do
        echo $i
done
Run Code Online (Sandbox Code Playgroud)

有没有办法更改 for 循环,使其一次回显两个值,如下所示?

value1 value2
value3 value4
value5 value6
value7 value8
value9 value10
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 7

循环索引比循环元素更容易。您可以通过索引拉出两个元素:

for ((i = 0; i < ${#array[@]}; i += 2)); do
    echo "${array[i+0]} ${array[i+1]}"
done
Run Code Online (Sandbox Code Playgroud)

或者您可以使用以下语法提取数组切片${variable[@]:offset:length}

for ((i = 0; i < ${#array[@]}; i += 2)); do
    echo "${array[@]:i:2}"
done
Run Code Online (Sandbox Code Playgroud)

如果您一次想要两个以上的元素,这将特别有用。