繁体   English   中英

BASH用于循环多个数组

[英]BASH for loop multiple arrays

我试图从多个数组中提取信息,然后将其回显。 不幸的是,我遇到了一些麻烦,我几乎可以肯定,我的for循环结构出了点问题。

假设:

array1= 1, 2, 3
array2= toronto, new york, paris

我目前拥有的代码:

for element in "${array1[@]}" "${array2[@]}"
do
echo ""$element" "element""
done

输出看起来像这样:

1 1
2 2
3 3
toronto toronto
new york new york
paris paris

现在,这显然不起作用,因为它在每个数组中两次输出相同的东西。 因此,我尝试在for循环内使用for循环,但随后有多个。

我将如何设置for循环,以便我的输出如下所示:

1 toronto
2 new york
3 paris
array1= 1, 2, 3
array2= toronto, new york, paris

应该改写为:

array1=( 1 2 3 )
array2=( toronto 'new york' paris )

最后:

for ((i=0; i<${#array1[@]}; i++)); do echo "${array1[$i]} ${array2[$i]}"; done

您可能想要这样:

array1=(1 2 3)
array2=(toronto "new york" paris)
paste <(printf "%s\n" "${array1[@]}") <(printf "%s\n" "${array2[@]}")
1   toronto
2   new york
3   paris
#!/bin/bash
declare -a arr2=("1" "2" "3")
declare -a arr=("element" "element" "element")
x=0
while [ $x -le 2 ]
do
echo " "${arr2[x]}" ${arr[x]}"
 x=$(( $x + 1 ))
done

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM