[英]Bash for loop on two arrays
I have two arrays that I need to iterate over but I can't figure out how to get the combination of both 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
To get that output, you need to loop only first array and use printf
: 要获得该输出,您只需要循环第一个数组并使用
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.