陣列 在Shell指令碼中的基本使用介紹

2021-09-09 02:03:14 字數 2109 閱讀 1644

shell指令碼在運維工作中是極其重要的,而陣列在shell指令碼裡的運用無論是在迴圈或運算方面都是非常實用的乙個環節。

下面是對shell指令碼中陣列方面一些操作在此進行記錄,希望能幫助到有興趣的朋友~

1.陣列定義

[root@bastion-idc ~]# a=(1 2 3 4 5 6 7 8)

[root@bastion-idc ~]# echo $a

1一對括號表示是陣列,陣列元素用「空格」符號分割開。

2.陣列讀取與賦值

1)得到長度

[root@bastion-idc ~]# echo $

8[root@bastion-idc ~]# echo $

8用$ 可以得到陣列長度

2)讀取:

[root@bastion-idc ~]# echo $

5[root@bastion-idc ~]# echo $

1 2 3 4 5 6 7 8

用$ 下標是從0開始 下標是:*或者@ 得到整個陣列內容

3)賦值:

[root@bastion-idc ~]# a[1]=100

[root@bastion-idc ~]# echo $

1 100 3 4 5 6 7 8

[root@bastion-idc ~]# a[5]=140

[root@bastion-idc ~]# echo $

1 100 3 4 5 140 7 8

直接通過 陣列名[下標] 就可以對其進行引用賦值,如果下標不存在,自動新增新乙個陣列元素

4)刪除:

[root@bastion-idc ~]# a=(1 2 3 4 5 6 7 8)

[root@bastion-idc ~]# unset a

[root@bastion-idc ~]# echo $

[root@bastion-idc ~]# a=(1 2 3 4 5 6 7 8)

[root@bastion-idc ~]# unset a[1]

[root@bastion-idc ~]# echo $

1 3 4 5 6 7 8

[root@bastion-idc ~]# echo $7

直接通過:unset 陣列[下標] 可以清除相應的元素,不帶下標,清除整個資料。

3.特殊使用

1)分片:

[root@bastion-idc ~]# a=(1 2 3 4 5 6 7 8)

[root@bastion-idc ~]# echo $

1 2 3

[root@bastion-idc ~]# echo $

2 3 4 5

[root@bastion-idc ~]# c=($)

[root@bastion-idc ~]# echo $

4[root@bastion-idc ~]# echo $

2 3 4 5

直接通過 $ 切片原先陣列,返回是字串,中間用「空格」分開,因此如果加上」()」,將得到切片陣列,上面例子:c 就是乙個新資料。

2)替換:

[root@bastion-idc ~]# a=(1 2 3 4 5 6 7 8)

[root@bastion-idc ~]# echo $

1 2 100 4 5 6 7 8

[root@bastion-idc ~]# echo $

1 2 3 4 5 6 7 8

[root@bastion-idc ~]# a=($)

[root@bastion-idc ~]# echo $

1 2 100 4 5 6 7 8

呼叫方法是:$ 該操作不會改變原先陣列內容,如果需要修改,可以看上面例子,重新定義資料。

陣列 在Shell指令碼中的基本使用介紹

shell指令碼在運維工作中是極其重要的,而陣列在shell指令碼裡的運用無論是在迴圈或運算方面都是非常實用的乙個環節。下面是對shell指令碼中陣列方面一些操作在此進行記錄,希望能幫助到有興趣的朋友 1.陣列定義 root bastion idc a 1 2 3 4 5 6 7 8 root ba...

shell指令碼中的陣列

以下命令,都是以陣列array 20150417 20150416 20150415 為例。注意bash中只支援一維陣列,沒有限定陣列的大小。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。陣列定義 說明 陣列元素的間隔符可以是空...

shell指令碼中的陣列

以下命令,都是以陣列array 20150417 20150416 20150415 為例。注意bash中只支援一維陣列,沒有限定陣列的大小。類似與c語言,陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。陣列定義 說明 陣列元素的間隔符可以是空...