UNIX Shell數(shù)組

2018-12-09 15:39 更新

Shell數(shù)組

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

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

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

定義數(shù)組值

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

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

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

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

    array_name[index]=value

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

例如,以下命令:

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

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

    set -A array_name value1 value2 ... valuen

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

    array_name=(value1 ... valuen)

訪問(wèn)數(shù)組值

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

    ${array_name[index]}

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

    #!/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

你可以使用以下方法之一,來(lái)訪問(wèn)數(shù)組中的所有項(xiàng)目:

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

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

    #!/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)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)