shell數(shù)組
定義
arr_number=(1 2 3 4 5);
arr_string=("abc" "edf" "sss"); 或者 arr_string=('abc' 'edf' 'sss');
#定義索引-值
arry_var[0]="hello"
arry_var[1]="world"
數(shù)組的操作
我們使用數(shù)值類型數(shù)組arr_number=(1 2 3 4 5)做為源數(shù)組進(jìn)行相關(guān)的講解:獲取數(shù)組長度,讀取某個下標(biāo)的值吝秕,對某個下標(biāo)賦值,刪除、分配和替換以及遍歷袜刷。提一個知識點质况,我們在shell里面想獲取某個變量的值愕宋,使用$符開頭,如:$a或者${a}即可结榄。
獲取數(shù)組長度
arr_length=${#arr_number[*]}或${#arr_number[@]}均可中贝,即形式:${#數(shù)組名[@/*]} 可得到數(shù)組的長度。
讀取某個下標(biāo)的值
arr_index2=${arr_number[2]}臼朗,即形式:${數(shù)組名[下標(biāo)]}
對某個下標(biāo)賦值
這里需要提出兩個問題:
第一個問題是如果該下標(biāo)元素已經(jīng)存在邻寿,會怎么樣蝎土?
答:會修改該下標(biāo)的值為新的指定值。
例如:arr_number[2]=100绣否,數(shù)組被修改為(1 2 100 4 5)
第二個問題是如果指定的下標(biāo)已經(jīng)超過當(dāng)前數(shù)組的大小誊涯,如上述的arr_number的大小為5,指定下標(biāo)為10或者11或者大于5的任意值會如何蒜撮?
答:新賦的值被追加到數(shù)組的尾部暴构。
例如:arr_number[13]=13,數(shù)組被修改為(1 2 100 4 5 13)
刪除操作
清除某個元素:unset arr_number[1]淀弹,這里清除下標(biāo)為1的數(shù)組丹壕;
清空整個數(shù)組:unset arr_number;
分片訪問
分片訪問形式為:${數(shù)組名[@或*]:開始下標(biāo):結(jié)束下標(biāo)},注意薇溃,不包括結(jié)束下標(biāo)元素的值菌赖。
例如:${arr_number[@]:1:4},這里分片訪問從下標(biāo)為1開始沐序,元素個數(shù)為4琉用。
模式替換
形式為:${數(shù)組名[@或*]/模式/新值}
例如:${arr_number[@]/2/98}
數(shù)組的遍歷
數(shù)組遍歷我們使用for語句來演示:
for v in ${arr_number[@]}; do
echo $v;
done
大部分內(nèi)容出自:https://www.cnblogs.com/Joke-Shi/p/5705856.html