取得陣列長度可用以下的作法:
一、初級班.................................
陣列宣告:
myArray=(test1 test2 test3 test4) #宣告陣列
#取得陣列大小,但是第一個array index 是從0開始
echo ${#myArray[*]}
二、進階班...................................................
自目錄中取得特定的檔案並取得其數量(ex: tgz 類型的檔案):
num=0 #宣告一個 int var來加總取得檔案的數量
myArray=('ls your_dir_path') #取得特定目錄底下檔案的列表
for file in `echo ${myArray[*]}; do #'`' <= 為Esc鍵底下的鍵
#先取得檔案名稱的長度要用來取得結尾的檔名
file_length=`echo $file |wc -c`
#擷取檔案結尾的字串,雖然'tgz'字串總共3個字元,但是以'wc -c'擷取出來的長度卻會變成4個字元的長度,因此我的擷取的開始字串長度才會以字串長度加1。(我猜這個原因可能是因為,cut擷取字串長度時還有加上字串的結尾字元所以才會變成`字串原長度+1`)
short_name=`echo $file |cut --b $((file_length-4))-$file_length`
#以下為判斷是否為tgz結尾的檔案,若是的話則num var加1。
if [ "$short_name" = "tgz" ]; then
num=$((num+1))
else
continue
fi
done
echo "共有 $num 個tgz的檔。"
三、大師級手法.................................................
ls your_dir_path/*.tgz |wc -l
分享一下我個人的心得,獻醜了
.....若有錯誤請賜教..thanks