CentOS 7.2
定义数组在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为array_name=(value1 ... valuen)或array_name=(value1 ... valuen)注:等号之间不能用空格
还可以单独定义数组的各个分量:array_name[0]=value0array_name[1]=value1array_name[2]=value2可以不使用连续的下标,而且下标的范围没有限制。有点类似于c/c++中的map
读取数组读取数组元素值的一般格式是:${array_name[index]}如:#!/bin/shNAME[0]='Zara'NAME[1]='Qadir'NAME[2]='Mahnaz'NAME[3]='Ayan'NAME[4]='Daisy'echo 'First Index: ${NAME[0]}'echo 'Second Index: ${NAME[1]}'
使用@ 或 * 可以获取数组中的所有元素,例如:纯文本复制${array_name[*]}${array_name[@]}如:#!/bin/shNAME[0]='Zara'NAME[1]='Qadir'NAME[2]='Mahnaz'NAME[3]='Ayan'NAME[4]='Daisy'echo 'First Method: ${NAME[*]}'echo 'Second Method: ${NAME[@]}'
获取数组的长度获取数组长度的方法与获取字符串长度的方法相同,例如:# 取得数组元素的个数length=${#array_name[@]}# 或者length=${#array_name[*]}# 取得数组单个元素的长度lengthn=${#array_name[n]}
执行结果为