Linux中shell只支持一维数组。和绝大多数编程语言一样,数组的下标从0开始,0表示数组的第一个元素。现在shell所支持的最大的数组标号是599147937791,可以支持绝大多数的用户使用了。
一 数组的赋值:
1 直接赋值,直接对下标元素赋值,可以看到数组下标是可以跳过的。
array[0]=zhangsan
array[1]=lisi
array[8]=wangwu
array[12]=zhaoliu
2 初始化赋值,用圆括号把所有的元素括起来,各个元素中间用空格分隔,这样的赋值方式所有的元素就是下标从0开始并且连续
array=(zhangsan lisi wangwu zhaoliu)
同时圆括号赋值也可以加上下标,
array=([1]=zhangsan lisi [5]=wangwu zhaoliu [10]=wuqi zhangba [8]=zhoujiu)
如上所示,这样赋值更加的灵活。
二 数组数据的引用:
引用一个数组元素的方式:${array[0]},这个就是调用的数组的第0个元素。
如果调用的下标没有被初始化,调用时会返回空。
*和@可以用来表示所有的数组元素,比如${array[*]}和${array[@]}会返回所有的数组元素,$(#array[*])会返回数组的长度。
这样可以通过循环来对数组进行遍历,例如下面的程序:
array=(zhangsan lisi wangwu zhaoliu)
for element in ${array[*]}
do
echo "$a"
done
就会打印出所有的元素。