declaresarraydeclare-aarray_name数组初始赋值array_name[xx]=value其中xx表示下标,为大于等于0的整数array_name=([xx]=value1[yy]=value2...)其中xx表示下标,为大于等于0的整数array=("${array[@]}""newelement")或array[${#array[*]}]="newelement"复制数组array2=("${array1[@]}")或array2="${array1[@]}"获取单个、全部或连续的部分数组元素${array_name[xx]}获取单个带下标xx的元素${array_name[@]}或${array_name[*]}获取所有元素。在有引号的情况下,"${array_name[@]}"表示单个数组元素,"${array_name[*]}"表示整个数组元素,在没有引号的情况下,表示单独的数组元素,类似于$*和$@的区别${array_name[@]:index:length}获取连续的部分数组元素,其中:length可以省略。arrayZ=(一二三四五)#提取所有元素echo${arrayZ[@]:0}#一二三四五#提取所有下标从1(含)开始的元素echo${arrayZ[@]:1}#二三四五#提取2个下标从1(含)开始的元素echo${arrayZ[@]:1:2}#二三获取数组元素个数${#array_name[*]}or${#array_name[@]}获取数组中某个元素的字符串长度${#array_name[xx]}提取数组中某个元素的部分字符串${array_name[xx]:index:length},其中:length删除数组或数组元素可以省略。unsetarray_name[xx]删除下标为xx的数组元素,相当于array_name[xx]=unsetarray_name删除整个数组数组元素的字符串替换/删除操作。通常,形式为${name...}的字符串操作符号可以应用于数组,使用${name[@]...}或${name[*]...}。去除子串arrayZ=(一二三四五五)#从每个元素的最左边做最短的匹配,删除匹配到的字符串echo${arrayZ[@]#fiv}#一二三四eeecho${arrayZ[@]#t*e}#onetwoefourfivefive#从每个元素的最左边开始进行最长的匹配,并删除匹配到的字符串echo${arrayZ[@]##t*e}#onetwo4fivefive#make从每个元素的最右边开始最短的匹配,并删除匹配的字符串echo${arrayZ[@]%h*e}#onetwotfourfivefive#从每个元素的最右边开始进行最长的匹配,并删除匹配的字符串echo${arrayZ[@]%%t*e}#一二四五五子串替换arrayZ=(一二三四五五五五五)#字符串匹配每个元素并替换第一个匹配的字符串echo${arrayZ[@]/fiv/XYZ}#一二三四XYZefiveXYZefive#字符串匹配每个元素并替换所有匹配的字符串echo${arrayZ[@]//fiv/XYZ}#一二三四XYZeXYZeXYZeXYZe#进行字符串匹配在每个元素上删除所有匹配的字符串echo${arrayZ[@]//fi/}#onetwothree4veveveve#从每个元素的最左边开始最长的匹配并替换匹配的字符串echo${arrayZ[@]/#f*v/XYZ}#一二三四XYZeXYZe#从每个元素的最右边开始进行最长的匹配,并替换匹配到的字符串echo${arrayZ[@]/%i*e/XYZ}#one二三四fXYZfXYZ#其他用法:函数标准输出作为字符串来替换replacement(){echo-n'!!!'}echo${arrayZ[@]/%e/$(replacement)}#on!!!二三!四五十五!五十五!
