数组
1、shell只支持一维数组
2、数组中各个元素用空格隔开。元素加不加引号都可,主要是为了避免元素本身包含空格而导致shell将其识别为两个元素。如下面的测试:
arr=(a b c)
arr2=("a c" "b" "c")
echo "\${arr}:"${arr[*]}
echo "\${arr2}:"${arr2[*]}
for n in "${arr[@]}"
do
echo $n
done
echo "---------------------"
for n in "${arr2[@]}"
do
echo $n
done
执行结果为
3、获取数组中的所有元素
用“@”或者“*”来获取数组中的所有元素。 比如${arr[*]}或者${arr[@]}.两者在不加双引号的情况下是等价的,在加了双引号之后,“*”代表一个字符串,而“@”代表多个字符串。如下图
arr=(a b c)
arr2=("a" "b" "c")
echo "\${arr}:"${arr[*]}
echo "\${arr2}:"${arr2[*]}
for n in "${arr[*]}"
do
echo $n"|"
done
echo "-------加了引号之后的@--------------"
for n in "${arr2[@]}"
do
echo $n"|"
done
执行结果:
4、数组的长度
使用${#arr[*]}来获取长度,倘若要获取某个元素的长度,改为${#arr[i]}即可,i为元素位置。
echo "---------------数组长度-------------------"
arr=(a b c)
arr1=(a bc d e)
echo ${#arr[*]}
echo ${#arr1[1]}
执行结果