簡體   English   中英

巴什對兩個數組循環

[英]Bash for loop on two arrays

我有兩個需要迭代的數組,但是我不知道如何獲取兩個數組的組合...

declare -a things=(
"apple"
"cider"
"OJ"
)
declare -a numbers=(
"1"
"2"
"3"
"4"
"5
"6"
)


for i in "${things[@]}"; do
  echo $i $numbers
done

Expecting:
apple 1
apple 2
apple 3
apple 4
apple 5
apple 6
cider 1
cider 2
cider 3
... etc
declare -a things=(
"apple"
"cider"
"OJ"
)
declare -a numbers=(
"1"
"2"
"3"
"4"
"5"
"6"
)


for i in "${things[@]}"; do
  for number in "${numbers[@]}"; do
    echo "$i" "$number"
  done
done

要獲得該輸出,您只需要循環第一個數組並使用printf

declare -a things=("apple" "cider" "OJ")
declare -a numbers=("1" "2" "3" "4" "5" "6")

# loop thru 1st array and use printf to print all values from 2nd
for i in "${things[@]}"; do printf "$i %s\n" "${numbers[@]}"; done

apple 1
apple 2
apple 3
apple 4
apple 5
apple 6
cider 1
cider 2
cider 3
cider 4
cider 5
cider 6
OJ 1
OJ 2
OJ 3
OJ 4
OJ 5
OJ 6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM