在bash中循环访问2个变量

时间:2012-02-03 19:14:11

标签: bash

peterc@peterc-ml video $ VAR1="foo maltese mountain"
peterc@peterc-ml video $ VAR2="bar falcon goat"
peterc@peterc-ml video $ for X in 1 2 3
> do
> echo ??????
> done

所需的输出是:

 foo bar
 maltese falcon
 mountain goat

VAR1和VAR2都将具有相同数量的元素。

3 个答案:

答案 0 :(得分:2)

制作每个阵列。

ARR1=( $VAR1 )
ARR2=( $VAR2 )
for (( i = 0; i < ${#ARR1[@]}; i++)); do 
    echo ${ARR1[i]} ${ARR2[i]}
done

e.g。

$ VAR1="a b c"
$ VAR2="1 2 3"
$ ARR1=( $VAR1 )
$ ARR2=( $VAR2 )
$ for (( i = 0; i < ${#ARR1[@]}; i++)); do 
>     echo ${ARR1[i]} ${ARR2[i]}
> done
a 1
b 2
c 3

答案 1 :(得分:1)

您可以使用cut(1)

echo ${VAR1} | cut -d " " -f ${X}

答案 2 :(得分:0)

paste -d ' ' <(tr ' ' '\n' <<< "$VAR1") <(tr ' ' '\n' <<< "$VAR2")