Shell脚本之数组

shell数组的定义

1、数组中可以存在多个值。Bash Shell只支持一维数组(不支持多维数组)

2、数组元素的下标由0开始。

3、Shell数组用括号来表示,元素用“空格”符号分割开。

4、在shell语句中,使用、遍历数组的时候,数组格式要写成${arr[@]}或${arr[*]}

定义数组的方

方法一:

数组名=(value0 value1 value2 ...)

以空格间隔,如果值为字符类型,需要加单引号或双引号

方法二:

数组名=([0]=value [1]=value [2]=value ...)

以空格间隔,“ [ ] ”里表示元素的下标,第一个元素从0开始

方法三:

列表名="value0 value1 value2 ..."

数组名=($列表名)

方法四:

数组名 [0]="value"

数组名 [1]="value"

数组名 [2]="value"

获取数组的所有元素的值

${数组名[*]}

${数组名[@]}

 Shell脚本之数组_第1张图片

 

 获取数组的长度

${#数组名[*]}

${#数组名[@]}

 Shell脚本之数组_第2张图片

 

判断数组是否完整

${数组名[数组长度]}如果此值为空,则代表数组完整,因为最后一个元素的下标是 数组长度减一

获取数组的某一个元素的值

${数组名[n]}     代表元素的下标,范围为0~长度减一

 Shell脚本之数组_第3张图片

 

数组分片   截取

${数组名[@]:起始位置:截取长度}   起始位置是从0算起的

Shell脚本之数组_第4张图片 

 

数组字符替换

${数组名[@]/旧字符/新字符}   会替换所有元素上能匹配到的字符,但是这是临时替换不会影响原有数组,可通过重新赋值实现替换原有数组    数组名=(${数组名[@]}/旧字符/新字符)

Shell脚本之数组_第5张图片

 

删除数组

unset 数组名[n]     删除某一个元素

unset 数组名[n]      /        unset 数组名[n]      删除整个数组

Shell脚本之数组_第6张图片

 

追加数组

数组名+=(元素1   元素2   ...)

数组名=("${数组名[@]}"元素1   元素2   ...)

数组名[数组长度]=元素值

数组名[n]=值

如何向函数传参:


 向函数传入数组的时候需要先把数组转换成列表作为函数参数使用    函数名  ${数组名1[@]} 
  在函数内把传入的列表重新组合成数组                            数组名2=($@)
  函数外重新组合成数组                                          数组名3=(`函数名  ${数组名1[@]}`)

Shell脚本之数组_第7张图片

 

冒泡排序

Shell脚本之数组_第8张图片

 Shell脚本之数组_第9张图片

 

你可能感兴趣的:(bash,linux)