Shell 數組/Arrays

shell變數是有足夠的能力保持一個單一的值。這種類型的變數被稱為標量變數。

Shell支持不同類型的變數稱為數組變數,可以在同一時間容納多個值。陣列,提供了一組變數進行分組的方法的。而不是創建一個新的名稱為每個變數所需要的,你可以使用一個單一的陣列存儲所有其他變數的變數。

所有討論shell變數的命名規則將適用數組命名。

定義數組值:

一個數組變數和標量變數之間的差異可以解釋如下。

說,你正試圖表示各種學生為變數集的名字。每一個單個變數是一個標量變數,如下所示:

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

我們可以用一個單一的陣列來存儲所有上述提及的名稱。以下是最簡單的方法創建一個數組變數分配一個值,其索引之一。這是表示,如下所示:

array_name[index]=value

array_name 是數組名,索引是在陣列中,你要設置的專案索引,值是你想要的值設置該專案。 

作為一個例子,下麵的命令:

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz www.xuhuhu.com"
NAME[3]="Ayan"
NAME[4]="Daisy"

如果您使用的是ksh shell在這裏初始化數組的語法:

set -A array_name value1 value2 ... valuen

如果您使用的是bash shell中,這裏是初始化數組的語法:

array_name=(value1 ... valuen)

訪問數組值:

當您設置任何數組變數,並可訪問它,如下所示:

${array_name[index]}

在這裏,array_name是數組名稱,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]}"

This would produce following result:

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

您可以訪問數組中的所有專案通過以下方式之一:

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

 array_name 是數組的名字你所感興趣的 以下是個最簡單的例子:

#!/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[@]}"

這將產生以下結果:

$./test.sh
First Method: Zara Qadir Mahnaz Ayan Daisy
Second Method: Zara Qadir Mahnaz Ayan Daisy

上一篇: Shell 特殊變數 下一篇: Shell 基本運算符