shell数组
shell也是支持数组的,可以声明普通索引数组和关联数组,区别如下:
- 普通索引数组直接使用array=()声明即可,并且索引从0开始,不能使用字符串作为索引,元素有序
- 关联数组使用declare -A array=()声明,可以使用字符串、数字、字母、下划线等作为索引,键唯一
1、定义有5个元素的普通索引数组,并打印数组的第一个元素,如图:


2、使用declare命令来声明一个关联数组,如图:


3、使用”*”输出数组全部元素,如图:


注:”*” 也可以使用”@”来代替,但是”*”和”@” 还是有一些区别的,如下:
*(星号):它会将数组中的所有元素扩展为一个连续的字符串,元素之间由第一个字符(通常是空格或 IFS(内部字段分隔符)的第一个字符)分隔@(at 符号):它会将数组中的每个元素作为独立的单词扩展,元素之间由 IFS 的第一个字符分隔。如果 IFS 为空,则元素之间由空格分隔

3、在 for 循环中遍历数组时,通常使用 @,因为这样可以确保每个数组元素都被单独处理,尤其是在数组元素中包含空格或特殊字符时,如图:


4、获取数组的长度,如图:


注:如果获取某一个元素的长度,只需要将 “*” 改为对应元素的下标即可
5、修改数组中的元素,如图:


6、删除数组中的元素,使用unset命令,如图:


注:unset后如果不写数组下标,那么删除的是数组中的全部元素
7、向数组中添加元素,有两种方式,如下:
第一种是使用+=来直接向数组末尾追加元素,如图:


注:shell数组中元素不一定都是一种类型,可以有整型,也可以有字符串
第二种是使用数组下标来向数组中添加元素,但是前提要知道当前数组中的元素个数,如图:


8、数组拼接,拼接就是先将每个数组转为列表后拼到一起,如图:




