繁体   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