shell數組
數組介紹:
數組就是相同數據類型的元素按一定順序排列的集合。(類似python列表)
作用:縮短喝簡化程序開發
小知識:(echo打印變量的個數和變量)
a=123456
echo ${#a}
6
echo ${a} || echo $a
123456
數組的定義和讀取:
方法:
1.取數組的長度
array=(value1 value2 value3 value4)
array=(1 2 3 4 5 6)
echo ${#array[@]}
6
echo ${#array[*]}
6
第二種方法定義數組(key-value鍵值對)
array=([1]=one [2]=two [3]=three)
echo ${array[@]}
one two three
(非0開始打印)
[[email protected] 2017_08_31.sh]# echo ${array[1]}
one
[[email protected] 2017_08_31.sh]# echo ${array[3]}
three
[[email protected] 2017_08_31.sh]# echo ${array[2]}
two
第三種定義數組的方法
array[0]=a array[1]=b array[2]=c array[3]=d
echo ${array[@]}
a b c d
第四種定義數組的方法(最常用):將命令的執行結果賦值給數組
array=($(ls))
2.打印數組元素(shell元數是從第0個開始打印的)
echo ${array[0]}
1
[[email protected] 2017_08_31.sh]# echo ${array[1]}
2
[[email protected] 2017_08_31.sh]# echo ${array[2]}
3
類推......
echo ${array[6]} (沒有打印空行)
將數組全部打印
echo ${array[@]}
1 2 3 4 5 6
echo ${array[*]}
1 2 3 4 5 6
3.數組賦值
數組的增加
echo ${#array[@]}
6
array[6]=7
echo ${array[@]}
1 2 3 4 5 6 7
echo ${#array[@]}
7
array[7]=7
echo ${array[@]}
1 2 3 4 5 6 7 7
數組替換
array[7]=8
echo ${array[@]}
1 2 3 4 5 6 7 8
array[0]=xiaochao
echo ${array[@]}
xiaochao 2 3 4 5 6 7 8
4.刪除單個的元數:
unset array[0]
echo ${array[@]}
2 3 4 5 6 7 8
5.整個數組的刪除
unset array
echo ${array[@]}
6.數組的字符串的截取和替換(支持變量的子串替換)
1)截取1號到3號數組元素,包括1和3
array=(1 2 3 4 5)
echo ${array[@]:1:3}
2 3 4
2)從3號元素開始截取2位
echo ${array[@]:3:2}
4 5
替換
3)將數組中的元素5替換為xyz(源數組未被修改)
echo ${array[@]/5/xyz}
4)改動數組將數組中的元素5修改為xyz並賦值給新數組
array1=(${array[@]/5/xyz})
echo ${array1[@]}
1 2 3 4 xyz
5)替換
從最左邊替換
echo ${array[@]#1}
2 3 4 5
從最右邊替換
echo ${array[@]%5}
1 2 3 4
shell數組