数组
数组(array)是一个包含多个值的变量。成员的编号从 0 开始,数量没有上限,也没有要求成员被连续索引。
创建数组
数组可以采用逐个赋值的方法创建。
ARRAY[INDEX]=value
上面语法中,ARRAY
是数组的名字,可以是任意合法的变量名。INDEX
是一个大于或等于零的整数,也可以是算术表达式。注意数组第一个元素的下标是 0,而不是 1。
下面创建一个三个成员的数组。
$ array[0]=val
$ array[1]=val
$ array[2]=val
数组也可以采用一次性赋值的方式创建。
ARRAY=(value1 value2 ... valueN)
# 等同于
ARRAY=(
value1
value2
value3
)
采用上面方式创建数组时,可以按照默认顺序赋值,也可以在每个值前面指定位置。
$ array=(a b c)
$ array=([2]=c [0]=a [1]=b)
$ days=(Sun Mon Tue Wed Thu Fri Sat)
$ days=([0]=Sun [1]=Mon [2]=Tue [3]=Wed [4]=Thu [5]=Fri [6]=Sat)
只为某些值指定位置,也是可以的。
names=(hatter [5]=duchess alice)
上面例子中,hatter
是数组的 0 号位置,duchess
是 5 号位置,alice
是 6 号位置。
没有赋值的数组元素的默认值是空字符串。
定义数组的时候,可以使用通配符。
$ mp3s=( *.mp3 )
上面例子中,将当前目录的所有 MP3 文件,放进一个数组。
先用declare -a
命令声明一个数组,也是可以的。
$ declare -a ARRAYNAME
read -a
命令则是将用户的命令行输入,存入一个数组。
$ read -a dice