1. 程式人生 > >shell數組

shell數組

程序開發 技術分享 元素 支持 數據 root png oot cnblogs

數組介紹:

數組就是相同數據類型的元素按一定順序排列的集合。(類似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數組