bash支持一维数据(不支持多维数组),并且没有限定数组的大小。类似与C语言,数通元素下标由0开始。获取数组元素需使用下标,数组下标可以是算术表达式,其值应大于等于0。
数组的定义
在shell中,用括号来表示数组,数组元素用用空格分割开。定义数组在一般格式如下:
names=(John Rease Root)也可写成如下格式:
names=( John Rease Root )也可以单独定义数组各个元素,如
names[0]=John names[1]=Rease names[2]=Root可以用不连续的下标,下标没有范围(前提是大于等于0)。
数组的读取
读取数组的一般格式如下:
${names[0]} #值为John利用@和*可以获取数组中的所有元素,如:
${names[*]} ${names[@]}运行如下脚本:
#/bin/bash names=(John Rease Root) echo ${names[@]}运行结果:
John Rease Root
数组长度的获取
获取数据的长度的方法与之前介绍的获取字符串长度的方法相同。如:
length=${#names[@]} #获取的长度为数组的元素个数 lengthn=${#names[n]} #获取的为第n个元素的长度