簡體   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