[英]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.