標籤:set unset 字串類型 刪除元素 shel 賦值 inux linu 弱類型
摘要
數組的特性就是一組資料類型相同的集合,雖然shell是弱類型,但是我們也可以將其數組分為資料類型的數組
和字串類型的數組
兩類
shell的數組元素之間用空格
分隔開
數組操作
假設有以下兩個數組
array1=(1 2 3 4 5 6)array2=("James" "Colin" "Harry")
- 資料變數名預設輸出
預設直接輸出變數的話,其輸出值預設為第一個元素的值,下標從0
開始
[email protected]/1 $ echo $array11[email protected]/1 $ echo $array2James
- 擷取數組元素
格式:${數組名[下標]}
,下標從0開始,下標為*
或@
代表整個數組內容
[email protected]/1 $ echo ${array1[2]}3[email protected]/1 $ echo ${array2[1]}Colin## 擷取全部元素[email protected]/1 $ echo ${array2[*]}James Colin Harry[email protected]/1 $ echo ${array2[@]}James Colin Harry
[email protected]/1 $ echo ${#array1[@]}6[email protected]/1 $ echo ${#array2[*]}3
格式:數組名[下標]=值
,如果下標不存在,則新增數組元素
; 下標已有,則覆蓋數組元素值
[email protected]/1 $ array1[2]=18[email protected]/1 $ echo ${array1[*]}1 2 18 4 5 6[email protected]/1 $ array2[4]="Betty"[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty
格式:${數組名[*或@]:起始位:長度}
,截取部分數組,返回字串,中間用空格分隔;將結果使用()
,則得到新的切片數組
[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array2[*]:1:3}Colin Harry Betty[email protected]/1 $ array3=(${array2[*]:1:2})ks-devops [~] 2018-01-25 20:30:16[email protected]/1 $ echo ${array3[@]}Colin Harry
格式:${數組名[*或@]/尋找字元/替換字元}
, 不會修改原數組;如需修改的數組,將結果使用“()”賦給新數組
[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array2[*]/Colin/Colin.Liu}James Colin.Liu Harry Betty[email protected]/1 $ array4=(${array2[*]/Colin/Colin.liu})[email protected]/1 $ echo ${array4[*]}James Colin.liu Harry Betty
格式:
unset 數組
,清除整個數組;
unset 數組[下標]
,清除單個元素
[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array4[*]}James Colin.liu Harry Betty[email protected]/1 $ unset array4[email protected]/1 $ unset ${array2[3]}[email protected]/1 $ echo ${array2[*]}James Colin Harry Betty[email protected]/1 $ echo ${array4[*]}[email protected]/1 $
Linux基礎 - shell數組