2 回答

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊
Linux Bash中,數(shù)組變量的賦值有兩種方法:
(1) name = (value1 ... valuen) // 此時(shí)下標(biāo)從0開始;
(2) name[index] = value
下面以一個(gè)簡(jiǎn)單的腳本來(lái)說(shuō)明,腳本內(nèi)容如下:
#!/bin/bash
#定義數(shù)組
A=(a b c def)
#把數(shù)組按字符串顯示輸出
echo ${A[@]}
#屏幕顯示:a b c def
#數(shù)組的長(zhǎng)度表示${#A[*]}
len=${#A[*]}
echo ${#A[*]}
#屏幕顯示:4
#改變數(shù)組元素的值
A[3]='vivian'
echo ${A[*]}
#屏幕顯示:a b c vivian
#循環(huán)輸出數(shù)組元素
i=0
while [ $i -lt $len ]
do
echo ${A[$i]}
let i++
done
#屏幕輸出:
# a
# b
# c
# vivian
#循環(huán)輸出數(shù)組元素的另一種寫法,注意,在條件中,用#a[@]取其個(gè)數(shù)。
for ((i=0;i<${#A[@]};i=$i+1))
do
echo ${A[$i]}
done
#循環(huán)輸出數(shù)組元素的另一種寫法,注意,在條件中,引用變量一定要用雙引號(hào) ,否則報(bào)錯(cuò)。
for (( j=0; j<"$len"; j=j+1 )) //len表示數(shù)組長(zhǎng)度值
do
echo ${A[$j]}
done
#循環(huán)輸出數(shù)組元素的另一種寫法,注意,${A[*]}不能寫成$A ,$A默認(rèn)是第一個(gè)元素。 如果A="a b c ded",就可以寫$A,
for value in ${A[*]}
do
echo $value
done
ps:
若a=(1 2 3 4)表示所有元素,則其只能用${a[*]}或者${a[@]}來(lái)表示。在a=(1 2 3 4)中,$a只是表示第一個(gè)元素1。
若a="1 2 3 4"表示所有元素,則其可以用${a[*]}或者${a[@]}或者$a來(lái)表示。
假如a="1 2 3 4",則array=($a)就相當(dāng)于a=(1 2 3 4),不信你可以試試echo ${array[@]}。
上面的例子還可以改寫成以下內(nèi)容:
for value in $A
do
echo $value
done
添加回答
舉報(bào)