Shell腳本數(shù)組操作小結
Linux Shell在編程方面比Windows批處理強大很多,無論是在循環(huán)、運算。
bash支持一維數(shù)組(不支持多維數(shù)組),并且沒有限定數(shù)組的大小。類似與C語言,數(shù)組元素的下標由0開始編號。獲取數(shù)組中的元素要利用下標,下標可以是整數(shù)或算術表達式,其值應大于或等于0。
定義數(shù)組
在Shell中,用括號來表示數(shù)組,數(shù)組元素用“空格”符號分割開。定義數(shù)組的一般形式為:
例如:
array_name=(value0 value1 value2 value3)
或者
array_name=(
value0
value1
value2
value3
)
還可以單獨定義數(shù)組的各個分量:
array_name[0]=value0
array_name[1]=value1
array_name[n]=valuen
可以不使用連續(xù)的下標,而且下標的范圍沒有限制。
讀取數(shù)組
讀取數(shù)組元素值的一般格式是:
${數(shù)組名[下標]}
例如:
valuen=${array_name[n]}
使用@符號可以獲取數(shù)組中的所有元素,例如:
echo ${array_name[@]}
獲取數(shù)組的長度
獲取數(shù)組長度的方法與獲取字符串長度的方法相同,例如:
# 取得數(shù)組元素的個數(shù)
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得數(shù)組單個元素的長度
lengthn=${#array_name[n]}
附:shell數(shù)組小結
不知道 是什么時候寫的東西,整理文檔時被考古發(fā)現(xiàn),給那些閑著蛋疼之人,一笑而過吧。如果本文中的錯誤給您帶來所有的精神損失,請找保險公司理陪!當然你可以告訴我 (傾訴)
數(shù)組作為一種特殊的數(shù)據(jù)結構在任何一種編程語言中都有它的一席之地,當然bash shell也不例外。本文就shell數(shù)組來做一個小的總結。
在這里只討論一維數(shù)組的情況,關于多維數(shù)組(事實上,你得用一維數(shù)組的方法來模擬),不涉及。這里包括數(shù)組的復制,計算,刪除,替換。
數(shù)組的聲明:
declare -a array # array被當作數(shù)組名
array=( value1 value2 value3 ... )
array=( [1]=one [2]=two [3]=three ... )
array="one two three" # echo ${array[0|@|*]},把array變量當作數(shù)組來處理,但數(shù)組元素只有字符串本身
數(shù)組的訪問:
數(shù)組的刪除
unset array # 刪除整個數(shù)組
計算數(shù)組的長度:
${#array[0]} #同上。 ${#array[*]} 、${#array[@]}。注意同#{array:0}的區(qū)別
數(shù)組的提取
從尾部開始提取:
${array[@]:1} # two three four,除掉第一個元素后所有元素,那么${array[@]:0}表示所有元素
${array[@]:0:2} # one two
${array[@]:1:2} # two three
子串刪除
[root@localhost dev]# echo ${array[@]:0}
one two three four
[root@localhost dev]# echo ${array[@]#t*e} # 左邊開始最短的匹配:"t*e",這將匹配到"thre"
one two e four
[root@localhost dev]# echo ${array[@]##t*e} # 左邊開始最長的匹配,這將匹配到"three"
[root@localhost dev]# array=( [0]=one [1]=two [2]=three [3]=four )
[root@localhost dev]# echo ${array[@] %o} # 從字符串的結尾開始最短的匹配
one tw three four
[root@localhost dev]# echo ${array[@] %%o} # 從字符串的結尾開始最長的匹配
one tw three four
子串替換
第一個匹配到的,會被刪除
mne twm three fmur
所有匹配到的,都會被刪除
mne twm three fmur
沒有指定替換子串,則刪除匹配到的子符
ne tw three fur
替換字符串前端子串
kne two three four
替換字符串后端子串
one twk three four
相關文章
shell腳本實現(xiàn)linux系統(tǒng)文件完整性檢測
這篇文章主要介紹了shell腳本實現(xiàn)linux系統(tǒng)文件完整性檢測,本文給出的腳本使用對比MD5的方法,檢測linux系統(tǒng)文件是否被替換等問題,需要的朋友可以參考下2014-12-12
讓Linux下的cron以秒為單位執(zhí)行shell腳本的3種方法
這篇文章主要介紹了讓Linux下的cron以秒為單位執(zhí)行shell腳本的3種方法,cron默認只支持以分為單位執(zhí)行Shell腳本的,需要的朋友可以參考下2014-10-10

