shell 3数组
shell數(shù)組
shell支持一維數(shù)組(不支持多維數(shù)組),并且沒有限定數(shù)組的大小。 定義數(shù)組
shell中,用括號(hào)來(lái)表示數(shù)組,數(shù)組元素用空格分隔,下標(biāo)從0開始,元素的類型 方式1
數(shù)組名=(值1 值2...值n),如array_name=(value0 value1 value2) 方式2
array_name=(value0value1value2) 方式3 單獨(dú)定義數(shù)組的值
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2 讀取數(shù)組
獲取數(shù)組某個(gè)元素的值${數(shù)組名[下標(biāo)]}
使用@可以獲取數(shù)組中的所有元素${數(shù)組名[@]} 獲取數(shù)組的長(zhǎng)度
獲取數(shù)組長(zhǎng)度的方法和獲取字符串長(zhǎng)度的方法相同。
length=${#數(shù)組名[@]}
length=${#數(shù)組名[*]}
獲取數(shù)組某元素的長(zhǎng)度
length=${#數(shù)組名[下標(biāo)]} #shell
#!/bin/sh
list1=("east" "west" "north" "south")
list2=('one''two' 'three' 'four'
)
list3[0]="陸風(fēng)"
list3[1]="江鈴"
list3[3]="長(zhǎng)安"
echo "list1: "${list1[@]} ${#list1[@]}
echo "list2: "${list2[@]} ${#list2[@]}
echo "list3: "${list3[@]} ${#list3[@]}
echo "list3[0]: "${list3[0]} ${#list3[0]}
echo "list3[2]: "${list3[2]} ${#list3[2]} list1: east west north south 4
list2: one two three four 4
list3: 陸風(fēng) 江鈴 長(zhǎng)安 3
list3[0]: 陸風(fēng) 2
list3[2]: 0
shell數(shù)組中和@的區(qū)別
加上雙引號(hào),會(huì)被當(dāng)成一串字符串處理
@加上雙引號(hào),依然被當(dāng)作數(shù)組處理 #shell#!/bin/sh
list_a=(1 2 'a' b)
echo "--{array[@]}--"
for i in ${list_a[@]};doecho $i
done
echo "--{array[*]}--"
for i in ${list_a[*]};doecho $i
done
echo "--\"{array[@]}\"--"
for i in "${list_a[@]}";doecho $i
done
echo "--\"{array[*]}\"--"
for i in "${list_a[*]}";doecho $i
done --{array[@]}--
1
2
a
b
--{array[*]}--
1
2
a
b
--"{array[@]}"--
1
2
a
b
--"{array[*]}"--
1 2 a b
變量在數(shù)組中的使用
數(shù)組里添加變量,必須要加$,否則添加的是一個(gè)字符串
使用變量作為下標(biāo)去獲取value,變量加不加$都可以 #shell
#!/bin/sh
strA="Tom Cat"
StrB="Black"
a=3
list_a=(1 2 'a' b $strName StrDarle)
echo ${list_a[@]}
echo ${list_a[$a]} ${list_a[a]} 1 2 a b StrDarle
b b
轉(zhuǎn)載于:https://www.cnblogs.com/csj2018/p/9541595.html
總結(jié)
- 上一篇: 电影斩毒行动是不是骗人的,怎么到处都是在
- 下一篇: 图形数据库Neo4j基本了解