UNIX Shell數(shù)組

2018-12-09 15:39 更新

Shell數(shù)組

一個 Shell 變量只能夠容納一個值。這種類型的變量稱為標(biāo)量變量。

Shell 數(shù)組變量可以同時容納多個值,它支持不同類型的變量。數(shù)組提供了一種變量集分組的方法。你可以使用一個數(shù)組變量存儲所有其他的變量,而不是為每個必需的變量都創(chuàng)建一個新的名字。

Shell 變量中討論的所有命名規(guī)則都將適用于命名數(shù)組。

定義數(shù)組值

一個數(shù)組變量和一個標(biāo)量變量之間的差異可以解釋如下。

假如你想描繪不同學(xué)生的名字,你需要命名一系列變量名作為一個變量集合。每一個單獨的變量是一個標(biāo)量變量,如下所示:

    NAME01="Zara"
    NAME02="Qadir"
    NAME03="Mahnaz"
    NAME04="Ayan"
    NAME05="Daisy"

我們可以使用一個數(shù)組來存儲所有上面提到的名字。下面是創(chuàng)建一個數(shù)組變量的最簡單的方法,將值賦給數(shù)組的一個索引。表示如下:

    array_name[index]=value

這里 array_name 是數(shù)組的名稱,index 是數(shù)組中需要賦值的索引項,value 是你想要為這個索引項設(shè)置的值。

例如,以下命令:

    NAME[0]="Zara"
    NAME[1]="Qadir"
    NAME[2]="Mahnaz"
    NAME[3]="Ayan"
    NAME[4]="Daisy"

如果使用 ksh shell,數(shù)組初始化的語法如下所示:

    set -A array_name value1 value2 ... valuen

如果使用 bash shell,數(shù)組初始化的語法如下所示:

    array_name=(value1 ... valuen)

訪問數(shù)組值

在為數(shù)組變量賦值之后,你可以訪問它。如下所示:

    ${array_name[index]}

這里 array_name 是數(shù)組的名稱,index 是將要訪問的值的索引。下面是一個最簡單的例子:

    #!/bin/sh

    NAME[0]="Zara"
    NAME[1]="Qadir"
    NAME[2]="Mahnaz"
    NAME[3]="Ayan"
    NAME[4]="Daisy"
    echo "First Index: ${NAME[0]}"
    echo "Second Index: ${NAME[1]}"

這將產(chǎn)生以下結(jié)果:

    $./test.sh
    First Index: Zara
    Second Index: Qadir

你可以使用以下方法之一,來訪問數(shù)組中的所有項目:

    ${array_name[*]}
    ${array_name[@]}

這里 array_name 是你感興趣的數(shù)組的名稱。下面是一個最簡單的例子:

    #!/bin/sh

    NAME[0]="Zara"
    NAME[1]="Qadir"
    NAME[2]="Mahnaz"
    NAME[3]="Ayan"
    NAME[4]="Daisy"
    echo "First Method: ${NAME[*]}"
    echo "Second Method: ${NAME[@]}"

這將產(chǎn)生以下結(jié)果:

    $./test.sh
    First Method: Zara Qadir Mahnaz Ayan Daisy
    Second Method: Zara Qadir Mahnaz Ayan Daisy
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號