**如下:
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
do16
echo
$var
17done
1819
遍歷(帶陣列下標):
20for i in"$
"; 21do
22 printf "
%s\t%s\n""
$i""$
"23done
2425
遍歷(while迴圈法):
26 i=0
27while [ $i -lt $ ]
28do
29echo
$30 let i++
31done
3233
向函式傳遞陣列:
34由於shell對陣列的支援並不號,所以這是乙個比較麻煩的問題。
35翻看了很多stackoverflow的帖子,除了全域性變數外,無完美解法。
36這裡提供乙個變通的思路,我們可以在呼叫函式前,將陣列轉化為字串。
37在函式中,讀取字串,並且分為陣列,達到目的。
3839
fun()
42for((i=0;i<$_n_arr;i++));
43do
44 elem=$
45echo
"$i : $elem"46
done
; 47}48
49 array=(a b c)
50 fun "
$(echo $)
"
純文本版:
陣列定義法1:
arr=(1 2 3 4 5) # 注意是用空格分開,不是逗號!!
陣列定義法2:
array
array[0]="a"
array[1]="b"
array[2]="c"
獲取陣列的length(陣列中有幾個元素):
$遍歷(for迴圈法):
for var in $;
doecho $var
done
遍歷(帶陣列下標):
for i in "$";
do printf "%s\t%s\n" "$i" "$"
done
遍歷(while迴圈法):
i=0while [ $i -lt $ ]
doecho $
let i++
done
向函式傳遞陣列:
由於shell對陣列的支援並不號,所以這是乙個比較麻煩的問題。
翻看了很多stackoverflow的帖子,除了全域性變數外,無完美解法。
這裡提供乙個變通的思路,我們可以在呼叫函式前,將陣列轉化為字串。
在函式中,讀取字串,並且分為陣列,達到目的。
fun()
for((i=0;i<$_n_arr;i++));
do elem=$
echo "$i : $elem"
done;
}array=(a b c)
fun "$(echo $)"
Linux shell程式設計中的判斷條件
b file 若檔案存在且是乙個塊特殊檔案,則為真 c file 若檔案存在且是乙個字元特殊檔案,則為真 d file 若檔案存在且是乙個目錄,則為真 e file 若檔案存在,則為真 f file 若檔案存在且是乙個規則檔案,則為真 g file 若檔案存在且設定了sgid位的值,則為真 h fi...
Linux Shell程式設計中的特殊變數
大家都知道普通的bash命令後邊可以跟任意的引數 例如在啟動hbase的客戶端的時候,我們在hbase的bin目錄下使用.hbase shell進入到hbase的客戶端 那我們自己編寫的指令碼是否也支援傳遞引數呢?答案當然是肯定的,但是怎麼編寫這樣的shell程式呢?這就需要使用到位置引數。位置引數...
linux shell 程式設計
bin bash comments your commands go here 首行中的符號 告訴系統其後路徑所指定的程式bash即是解釋此指令碼檔案的shell程式。除第一行外,以 開頭的行就是注釋行,直到此行的結束。如果一行未完成,可以在行尾加上 這個符號表明下一行與此行會合併為同一行。有環境變...