shell陣列(轉)

ba發表於2007-08-16
shell陣列(轉)[@more@]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
    $ echo ${#A[3]} //取得元素3的長度
    $

    ==================================================

    $ A[3]=yaoshuyin //將第三個元素重新賦值
    $ echo ${A[@]}
    a b c yaoshuyin

    ==================================================
    //清除變數
    $ unset A
    $ echo ${A[@]}
    $

    ==================================================

    //清空變數,即將值變為空
    $ A=
    $ echo ${A[@]}
    $
    ==================================================

    A=B
    B=C
    unset $A 事實上所取消的變數是 B 而不是 A


    =======================示例 while迴圈========================

    #建立陣列
    arrSource=("arrJobs.php" "arrSubHangye.php" "arrFirst.php" )

    arrDest=("buildhr"
    "buildtrain/htdocs"
    "bankhr"
    "healthr"
    "elehr"
    )

    #取陣列無元素個數
    lenArrSource=${#arrSource
  • }
    lenArrDest=${#arrDest
  • }


    #迴圈列出陣列元素
    i=0
    while [ $i -lt $lenArrSource ]
    do
    echo ${arrSource[$i]}
    let i++
    done


    i=0
    while [ $i -lt $lenArrDest ]
    do

    echo ${arrDest[$i]}
    let i++
    done


    =======================示例: for迴圈===============================

    #原始檔
    arrSource=("/home/800hr/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
  • 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-962004/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章