數組-在Shell腳本中的基本使用介紹

 

Shell腳本在運維工做中是極其重要的,而數組在shell腳本里的運用不管是在循環或運算方面都是很是實用的一個環節。
下面是對shell腳本中數組方面一些操做在此進行記錄,但願能幫助到有興趣的朋友~
1.數組定義
[root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8)
[root@bastion-IDC ~]# echo $a
1
一對括號表示是數組,數組元素用「空格」符號分割開。
shell

2.數組讀取與賦值
1)獲得長度
[root@bastion-IDC ~]# echo ${#a[@]}
8
[root@bastion-IDC ~]# echo ${#a[*]}
8數組

用${#數組名[@或*]} 能夠獲得數組長度運維

2)讀取:
[root@bastion-IDC ~]# echo ${a[4]}
5
[root@bastion-IDC ~]# echo ${a[*]}
1 2 3 4 5 6 7 8spa

用${數組名[下標]} 下標是從0開始 下標是:*或者@ 獲得整個數組內容字符串

3)賦值:
[root@bastion-IDC ~]# a[1]=100
[root@bastion-IDC ~]# echo ${a[*]}
1 100 3 4 5 6 7 8
[root@bastion-IDC ~]# a[5]=140
[root@bastion-IDC ~]# echo ${a[*]}
1 100 3 4 5 140 7 8io

直接經過 數組名[下標] 就能夠對其進行引用賦值,若是下標不存在,自動添加新一個數組元素ast

4)刪除:
[root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8)
[root@bastion-IDC ~]# unset a
[root@bastion-IDC ~]# echo ${a[*]}循環

[root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8)
[root@bastion-IDC ~]# unset a[1]
[root@bastion-IDC ~]# echo ${a[*]}
1 3 4 5 6 7 8
[root@bastion-IDC ~]# echo ${#a[*]}
7引用

直接經過:unset 數組[下標] 能夠清除相應的元素,不帶下標,清除整個數據。方法

3.特殊使用
1)分片:
[root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8)
[root@bastion-IDC ~]# echo ${a[@]:0:3}
1 2 3
[root@bastion-IDC ~]# echo ${a[@]:1:4}
2 3 4 5
[root@bastion-IDC ~]# c=(${a[@]:1:4})
[root@bastion-IDC ~]# echo ${#c[@]}
4
[root@bastion-IDC ~]# echo ${c[*]}
2 3 4 5

直接經過 ${數組名[@或*]:起始位置:長度} 切片原先數組,返回是字符串,中間用「空格」分開,所以若是加上」()」,將獲得切片數組,上面例子:c 就是一個新數據。

2)替換:
[root@bastion-IDC ~]# a=(1 2 3 4 5 6 7 8)
[root@bastion-IDC ~]# echo ${a[@]/3/100}
1 2 100 4 5 6 7 8
[root@bastion-IDC ~]# echo ${a[@]}
1 2 3 4 5 6 7 8
[root@bastion-IDC ~]# a=(${a[@]/3/100})
[root@bastion-IDC ~]# echo ${a[@]}
1 2 100 4 5 6 7 8

調用方法是:${數組名[@或*]/查找字符/替換字符} 該操做不會改變原先數組內容,若是須要修改,能夠看上面例子,從新定義數據。

相關文章
相關標籤/搜索