十三、Shell陣列應用實踐
(一)陣列介紹
為什么會產生陣列
通常在開發Shell腳本時,我們定義變數采用的形式為a=1;b=2;c=3,可如果有多個變數呢?這時再一個一個定義很費勁,并且要是有多個不確定的變數內容,也難以進行變數定義,此外,快速讀取不同變數的值也是一件很痛苦的事情,于是陣列就誕生了,它就是為了解決上述問題而來的,
什么是Shell陣列
如果讀者有過其他語言的編程經歷,那么想必會熟悉陣列的概念,簡單地說,Shell的陣列就是把有限個元素(變數或字符內容)用一個名字命名,然后用編號對它們進行區分的元素集合,這個名字就稱為陣列名,用于區分不同內容的編號就稱為陣列下標,組成陣列的各個元素(變數)稱為陣列的元素,有時也稱為下標變數,
有了Shell陣列后,就可以用相同名字參考一系列變數及變數值,并通過數字(索引)來識別使用它們,在許多場合,使用陣列可以縮短和簡化程式開發,
(二)陣列的定義
方法1:推薦
array=(one two three four)
方法2:
array=([0]=one [1]=two [2]=three [3]=four)
方法3:
[root@web01 ~]# array[0]=one
[root@web01 ~]# array[1]=two
[root@web01 ~]# array[2]=three
[root@web01 ~]# array[3]=four
[root@web01 ~]# echo ${array[@]}
one two three four
方法4:命令的結果放到陣列里,推薦,
array=(`ls /server/scripts`)
(三)、操作陣列元素
讀取陣列內容:*****
[root@web01 ~]# array=( 1 2 3 4 5)
[root@web01 ~]# echo ${array[0]}
1
[root@web01 ~]# echo ${array[1]}
2
[root@web01 ~]# echo ${array[2]}
3
[root@web01 ~]# echo ${array[3]}
4
[root@web01 ~]# echo ${array[4]}
5
[root@web01 ~]# echo ${array[5]}
[root@web01 ~]# echo ${array[*]}
1 2 3 4 5
[root@web01 ~]# echo ${array[@]}
1 2 3 4 5
[root@web01 ~]# echo ${#array[@]}
5
[root@web01 ~]# echo ${#array[*]}
5
給陣列增加內容:
[root@web01 ~]# array[5]=oldboy
[root@web01 ~]# echo ${#array[*]}
6
[root@web01 ~]# echo ${array[*]}
1 2 3 4 5 oldboy
洗掉陣列元素:
[root@web01 ~]# unset array[1]
[root@web01 ~]# echo ${array[*]}
1 3 4 oldboy
[root@web01 ~]# unset array[0]
[root@web01 ~]# echo ${array[*]}
3 4 oldboy
陣列能不能替換:
使用for回圈列印陣列元素
array=(1 2 3 4 5)
for n in ${array[*]}
do
echo $n
done
echo =====================
#i為陣列下標
for ((i=0;i<${#array[*]};i++))
do
echo ${array[i]}
done
array=([1]=one [2]=two [3]=three)
array[0]=a;array[1]=b;array[2]=c
array=($(命令))
或
array=(`命令`)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/91690.html
標籤:Linux
下一篇:小白求教,救救我
