shell 数组里追加数值_shell编程之数组及变量的多功能用法

数组及变量的多功能用法

一、数组:

1、数组:存储多个元素的连续的内存空间,相当于多个变量的集合(变量:存储单个元素的内存空间)。

2、数组名和索引

索引:编号从0开始,属于数值索引

bash的数组支持稀疏格式(索引不连续)

注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持。

声明数组:

declare -a ARRAY_NAME

declare -A ARRAY_NAME: 关联数组

3、数组元素的赋值:

(1) 一次只赋值一个元素:arr[index]=value

3c8ce6380daa33c267ccb0e2e66a02de.png

(2) 一次赋值全部元素:arr=(value) ;括号里面的元素值要使用空格分开

3c8ce6380daa33c267ccb0e2e66a02de.png

(3) 只赋值特定元素:

3c8ce6380daa33c267ccb0e2e66a02de.png

(4) 交互式数组值对赋值

read -a ARRAY

3c8ce6380daa33c267ccb0e2e66a02de.png

注:数组的赋值取消,命令:unset 数组名

4、数组的引用:

引用数组元素:${arr[INDEX]}

注意:arr[INDEX]表示引用下标为0的元素

数组的长度(数组中元素的个数):

${#arr[*]}

${#arr[@]}

3c8ce6380daa33c267ccb0e2e66a02de.png

5、数组数据处理:

(1)引用数组中的元素:

所有元素:${arr[@]}, ${arr[*]}

3c8ce6380daa33c267ccb0e2e66a02de.png

(2)数组切片:

${arr[@]:offset:number}  (offset: 要跳过的元素个数;number: 要取出的元素个数)

如下图,${arr[@]:2}:从左往右切掉两个元素值

${arr[@]:2:3}:从左往右先切掉两个元素值,再紧接着切所需要的三个元素值。

3c8ce6380daa33c267ccb0e2e66a02de.png

${arr[@]:offset } (offset为负数,前面注意要有空格)从右往左取出所需的元素个数

3c8ce6380daa33c267ccb0e2e66a02de.png

${arr[@]:offset:number}

取偏移量之后的所有元素${arr[@]:offset}

3c8ce6380daa33c267ccb0e2e66a02de.png

(3)向数组中追加元素:

arr[${#arr[*]}]

3c8ce6380daa33c267ccb0e2e66a02de.png

(4)删除数组中的某元素:导致稀疏格式

unset arr[INDEX]

你可能感兴趣的:(shell,数组里追加数值)