數組的定義:所謂數組,就是相同資料類型的元素按一定順序的集合,就是把有限個類型相同的變量用一個名字指令,也就是說這些變量被定義成數組之後,它們就不在有自己的名字了,那麼我們怎麼找到各個變量或者元素呢?是通過索引或者下标(有時候也稱下标變量)
數組特點:
1、數組是相同資料類型元素的集合
2、數組中的各個元素是有先後順序的,它們在記憶體中按照這個先後順序放在一起,也就是說: 數組是記憶體中連續的一段空間。
3、數組元素用整個數組名字和它自己在的數組中的順序位置來表示,A[0] 表示:數組A中的第 一個元素(或者第一個分量)以此類推,在bash shell中數組下标(索引)從0開始。
例子:現在有aa、bb、cc、dd、ee、ff 六個元素,以他們為名在/tmp下建立這幾個檔案,使用for循環的方式。怎麼寫呢?
首先說說數組的指派方法吧:
第一種方法:
ARRAY=(aa bb cc dd ee ff)每個元素之間使用空格分開。
第二種方法:使用鍵值對的方法(key=value)
ARRAY=([0]=aa [1]=bb [2]=cc [3]=dd [4]=ee [5]=ff)
第三種方法: 可以使用declare -a 來聲明一個變量類型為數組類型,稍後為其指派。
declare -a ARRAY
ARRAY[0]=aa
ARRAY[1]=bb
ARRAY[2]=cc
ARRAY[3]=dd
ARRAY[4]=ee
ARRAY[5]=ff
這種方法來給數組指派,但是有個缺陷,當數組分量(元素)相對較多時候,這種方法就顯得有點笨了
第四種方法:用系統執行指令的結果作為數組元素。
即:ARRAY=($(ls))這種方式
declare -a ARRAY #先聲明一個變量,為數組類型
values="aa bb cc dd ee ff" #将數組中的各個元素儲存在一個變量中用空格作為分隔符
ARRAY=($(echo ${values}))
來寫寫這個腳本呗:下面有文本模式的....
###########################################################
#!/bin/bash
#Author:wangergui Email:[email protected] Date:2016-08-26
#Release 1.0
#Function: auto create files (practice array)
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:~/bin
export PATH
FILES="aa bb cc dd ee ff"
ARRAY=($(echo ${FILES}))
INDEX=$(( ${#ARRAY[@]} -1))
function check (){
if [ ! -f "$1" ];then
return 0
else
return 1
fi
}
for I in $(seq 0 ${INDEX});do
check /tmp/${ARRAY[${I}]}
if [ $? -eq 0 ];then
touch /tmp/${ARRAY[${I}]}
fi
本文轉自 wangergui 51CTO部落格,原文連結:http://blog.51cto.com/wangergui/1843126,如需轉載請自行聯系原作者