Shell 數(shù)組/Arrays

2021-08-31 09:20 更新

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ù)組命名。

定義數(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)

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

當(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

 




以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)