和其他编程语言一样,shell脚本也支持数组,shell数组元素的下标也是从0开始,并且shell创建数组的时候不需要指定数组的大小,但是,shell脚本只支持一维数组,不支持多维数组。
数组定义格式
在shell中,用小括号()来表示数组,数组元素之间用空格来分隔开。
arr=(value1 value2 … valuen)
⚠️等号两边不能存在空格。
示例如下:
在使用$符号对数组元素进行引用的时候,需要使用花括号’{}'来将数组元素括住,以防出现歧义,即读取元素的一般格式为${arr[index]},下面的示例是错误的语法格式:
这里把arr数组的第一个元素输出(和其他语言一样,数组名代表的是数组中第一个元素的地址?),而shell将后面的[0]看作是普通的字符串。
数组元素的赋值可以直接通过下标来赋值,示例如下:
当然,可以不用按顺序来对数组元素进行赋值:
上述命令只对数组的第2和第4个元素进行赋值,当读取未赋值的元素时,输出为空,这表明数组元素默认被赋值为空字符串。
数组元素多样化
在shell中,数组中的元素不要求类型相同,可以有多种类型的数据类型,示例如下:
图中,