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