一個(gè) Shell 變量只能夠容納一個(gè)值。這種類型的變量稱為標(biāo)量變量。
Shell 數(shù)組變量可以同時(shí)容納多個(gè)值,它支持不同類型的變量。數(shù)組提供了一種變量集分組的方法。你可以使用一個(gè)數(shù)組變量存儲(chǔ)所有其他的變量,而不是為每個(gè)必需的變量都創(chuàng)建一個(gè)新的名字。
Shell 變量中討論的所有命名規(guī)則都將適用于命名數(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)
在為數(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
更多建議: