2017-09-20 8 views
1

のための内部の配列を繰り返す:バッシュ:forループのネストされた内部配列を繰り返すしようとすると、ループ

#!/bin/bash 

aaa=("nine" "ten" "eleven" "twelve") 
bbb=("one" "two" "three" "four" "five" "six" "seven" "eight") 
ccc=("thirteen" "fourteen") 


for b in "${bbb[@]}" ; do 
    for i in "${!aaa[@]}" ; do 
     echo "$b" "${aaa[i]}" "${ccc[i]}" 
    done 
done 

を、私はこれを取得し、11と12行がccc要素届かない場所:

one nine thirteen 
one ten fourteen 
one eleven 
one twelve 
two nine thirteen 
two ten fourteen 
two eleven 
two twelve 
three nine thirteen 
three ten fourteen 
three eleven 
three twelve 
four nine thirteen 
four ten fourteen 
four eleven 
four twelve 
five nine thirteen 
five ten fourteen 
five eleven 
five twelve 
six nine thirteen 
six ten fourteen 
six eleven 
six twelve 
seven nine thirteen 
seven ten fourteen 
seven eleven 
seven twelve 
eight nine thirteen 
eight ten fourteen 
eight eleven 
eight twelve 

出力希望:あなたは剰余を必要と予想される出力から

one nine thirteen 
one ten fourteen 
one eleven thirteen 
one twelve fourteen 
two nine thirteen 
two ten fourteen 
two eleven thirteen 
two twelve fourteen 
three nine thirteen 
three ten fourteen 
three eleven thirteen 
three twelve fourteen 
four nine thirteen 
four ten fourteen 
four eleven thirteen 
four twelve fourteen 
five nine thirteen 
five ten fourteen 
five eleven thirteen 
five twelve fourteen 
six nine thirteen 
six ten fourteen 
six eleven thirteen 
six twelve fourteen 
seven nine thirteen 
seven ten fourteen 
seven eleven thirteen 
seven twelve fourteen 
eight nine thirteen 
eight ten fourteen 
eight eleven thirteen 
eight twelve fourteen 
+0

はあなたが –

+0

@NahuelFouilleul所望の出力が明確にデカルトはない '$ {CCC [I%の@]} $ {#のCCC []}'または直積をしたいですか試してみてください製品。 @ NahuelFouilleul。 –

+0

。それは私の間違いでした。私の急いでは "忘れて"忘れてしまった。 –

答えて

5

"${ccc[i%${#ccc[@]}]}"代わりに"${ccc[i]}"

0

のこの

aaa=("nine" "ten" "eleven" "twelve") 
bbb=("one" "two" "three" "four" "five" "six" "seven" "eight") 
ccc=("thirteen" "fourteen") 
echo ${!aaa[@]} 
count=0; 
for b in "${bbb[@]}" ; do 
    for i in "${!aaa[@]}" ; do 
     ((count = count==1 ? 0 : 1)) 
     echo "$b" "${aaa[i]}" "${ccc[count]}" 
    done 
done 
関連する問題