Shell程式設計中的陣列定義 遍歷

2021-07-24 05:04:21 字數 1318 閱讀 4503

陣列定義:

1

arr=(1

2345

)# 注意是用空格分開,不是逗號!!

陣列定義法2:

12

3

4

array

array[0

]="a"

array[1

]="b"

array[2

]="c"

獲取陣列的length(陣列中有幾個元素):

1

$

遍歷(for迴圈法):

12

3

4

forvarin$;

doecho

$var

done

遍歷(帶陣列下標):

1

2

3

fori

in"$";do

printf

"%s\t%s\n"

"$i"

"$" done

遍歷(while迴圈法):

12

3

4

5

6 i

=0while[$

i-lt$

] do

echo$

leti++

done

向函式傳遞陣列:

由於shell對陣列的支援並不號,所以這是乙個比較麻煩的問題。

翻看了很多stackoverflow的帖子,除了全域性變數外,無完美解法。

這裡提供乙個變通的思路,我們可以在呼叫函式前,將陣列轉化為字串。

在函式中,讀取字串,並且分為陣列,達到目的。

12

3

4

5

6

7

8

9

10

11

12

fun()

for((i

=0;i

<

$_n_arr;i

++));

do elem=$

echo

"$i : $elem"

done;

}array=(

abc)

fun"$(echo $)"

Shell程式設計中的陣列定義 遍歷

陣列定義法1 arr 1 2 3 4 5 注意是用空格分開,不是逗號!陣列定義法2 array array 0 a array 1 b array 2 c 獲取陣列的length 陣列中有幾個元素 遍歷 for迴圈法 for var in do echo var done 遍歷 帶陣列下標 for ...

linux shell程式設計中的陣列定義 遍歷

如下 1 陣列定義法1 2 arr 123 45 注意是用空格分開,不是逗號!34 陣列定義法2 5array 6 array 0 a 7 array 1 b 8 array 2 c 910獲取陣列的length 陣列中有幾個元素 11 1213 遍歷 for迴圈法 14for var in 15 ...

Shell陣列 shell陣列的定義 陣列長度

shell在程式設計方面比windows批處理強大很多,無論是在迴圈 運算。bash支援一維陣列 不支援多維陣列 並且沒有限定陣列的大小。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。在shell中,用括號來表示陣列,陣列元素用...