Bash数组详解


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 条评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注