shell變量是有足夠的能力保持一個(gè)單一的值。這種類(lèi)型的變量被稱(chēng)為標(biāo)量變量。
Shell支持不同類(lèi)型的變量稱(chēng)為數(shù)組變量,可以在同一時(shí)間容納多個(gè)值。陣列,提供了一組變量進(jìn)行分組的方法的。而不是創(chuàng)建一個(gè)新的名稱(chēng)為每個(gè)變量所需要的,你可以使用一個(gè)單一的陣列存儲(chǔ)所有其他變量的變量。
所有討論shell變量的命名規(guī)則將適用數(shù)組命名。
一個(gè)數(shù)組變量和標(biāo)量變量之間的差異可以解釋如下。
說(shuō),你正試圖表示各種學(xué)生為變量集的名字。每一個(gè)單個(gè)變量是一個(gè)標(biāo)量變量,如下所示:
NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"
我們可以用一個(gè)單一的陣列來(lái)存儲(chǔ)所有上述提及的名稱(chēng)。以下是最簡(jiǎn)單的方法創(chuàng)建一個(gè)數(shù)組變量分配一個(gè)值,其索引之一。這是表示,如下所示:
array_name[index]=value
array_name 是數(shù)組名,索引是在陣列中,你要設(shè)置的項(xiàng)目索引,值是你想要的值設(shè)置該項(xiàng)目。
作為一個(gè)例子,下面的命令:
NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz www.yiibai.com"
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)
當(dāng)您設(shè)置任何數(shù)組變量,并可訪問(wèn)它,如下所示:
${array_name[index]}
在這里,array_name是數(shù)組的名稱(chēng),index是索引進(jìn)行訪問(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]}"
This would produce following result:
$./test.sh
First Index: Zara
Second Index: Qadir
您可以訪問(wèn)數(shù)組中的所有項(xiàng)目通過(guò)以下方式之一:
${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
更多建議: