鍍金池/ 教程/ Linux/ 數(shù)組
通信工具
信號(hào)和 Traps
文件管理
vi 編輯器使用向?qū)?/span>
替代
變量
環(huán)境
進(jìn)程管理
實(shí)用工具
引用機(jī)制
Manpage 幫助
文件系統(tǒng)基礎(chǔ)知識(shí)
系統(tǒng)日志
循環(huán)
正則表達(dá)式和 SED
目錄
函數(shù)
管道和過濾器
特殊變量
輸入/輸出重定向
系統(tǒng)性能
用戶管理
循環(huán)控制
決策
什么是 UNIX ?
數(shù)組
什么是 Shell 腳本
基本操作符
文件權(quán)限

數(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ù)組來存儲(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)

訪問數(shù)組值

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

    ${array_name[index]}

這里 array_name 是數(shù)組的名稱,index 是將要訪問的值的索引。下面是一個(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

你可以使用以下方法之一,來訪問數(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
上一篇:函數(shù)下一篇:環(huán)境