Bash中可以使用数组变量,有两种赋值方式:
(1) name=(value1 … valuen) 此时下标从0开始 #普通数组
(2) name[index]=value #关联数组
数组下标的范围没有任何限制,同时也不必使用连续的分量。
$ A=(a b c def)
$ echo ${A[@]} //取数组中的全部元素
a b c def
$ echo ${A[0]} //取数组的第一个元素
a
//取得数组元素的个数
$ echo ${#A[@]}
4
$ echo ${#A[*]}
4
//取数组第四个元素的长度(数组下标从0开始)
$ echo ${#A[3]}
$ A[3]=ixyzero.com //将第四个数组元素重新赋值
$ echo ${A[@]}
a b c ixyzero.com
//清除变量
$ unset A
$ echo ${A[@]}
//清空变量,即将值变为空
$ A=()
$ echo ${A[@]}
#建立数组
arrSource=( "arrJobs.php" "arrSub.php" "arrFirst.php" )
arrDest=("buildhr"
"buildtrain/htdocs"
"bankhr"
"healthr"
"elehr"
)
#取数组元素个数
lenArrSource=${#arrSource[*]}
#循环列出数组元素——数组下标递增
i=0
while [ $i -lt $lenArrSource ]
do
echo ${arrSource[$i]}
let i++
done
#循环列出数组元素——数组元素遍历
for item in ${arrDest[@]}
do
echo $item
done
#源文件
arrSource=("/home/apache/htdocs/login_jump.php")
#目标网站
arrDest=(ithr elehr buildhr bankhr healthr ctvhr chenhr mechr clothr cneduhr 56hr tourhr foodhr greenhr cnlawhr waimaohr)
for outer in ${arrSource[*]} # ${arrSource[*]} 是数组中的所有元素
do
for inner in ${arrDest[*]}
do
echo "ln -s $outer /home/${inner}/campus/"
done
done
《“Bash数组详解”》 有 1 条评论
更多参考链接:
http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html
http://www.cnblogs.com/chengmo/archive/2010/10/14/1851517.html
http://liwei.life/2016/06/06/shell%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%89%B9%E6%AE%8A%E7%AC%A6%E5%8F%B7/