第二十九章 數組
數組。所有編程語言中都少不了數組,Shell語言也不例外,只不過支持程度非常有限。即便如此,在解決某些編程問題時,數組也能發揮大作用。
什么是數組
數組是一種可以一次存放多個值的變量,其組織形式類似與表格。數組中的每個變量叫做元素,每個元素都含有數據。數組可以通過索引來訪問。
大多數編程語言支持多維數組,Bash中的數組是一維的。在Bash 2中首次引入了對數組的支持,最初的UNIXShell程序sh并不支持數組。
創建數組
數組變量和其它Bash變量一樣,在訪問變量時會自動創建。例如:
a[1]=foo
echo ${a[1]}
程序運行結果如下:
本例中第一個命令是數組a的第一個元素被賦值foo。第二個命令顯示了第一個元素的值,其中的花括號是為了避免Shell試圖對數組元素名執行路徑名擴展。
也可以使用declare命令創建數組:
declare -a a
通過-a選項,declare創建了數組a。
為數組賦值
為數組賦值有兩種方法,單個值可以使用下列方法:
name[subscript]=value
其中name是數組名,subscript是一個大于或等于0的整數(或者算術表達式)。數組的第一個元素索引是0,而非1。value是賦給該元素的字符串或整數。
多個值可以使用下列方法:
name=(value1 value2 ...)
其中,name是數組名,value是依次賦給數組元素的一系列值。
例如:將一周中各天的縮寫賦給數組days
也可以通過指定各個值的索引,將值賦給特定元素:
訪問數組元素
通過編寫一個檢查指定目錄中的文件修改時間的腳本Hour來演示
代碼如下:
#!/bin/bash#hours: 對文件的修改時間進行計數usage () {echo "usage: ${0##*/} directory" >