自学内容网 自学内容网

linux: 数组

普通数组

数组赋值

①一次赋予一个值

数组名[元素 下标 ]=
访问: ${ 数组名 [ 元素下标 ]}

②一次赋予多个值

数组名=( 1 2 3 ...)
通过 declare -a 数组名 的方式去声明数组
声明一个空数组             declare -a 数组名
声明并初始化一个数组    declare -a 数组名=(element1 element2 element3)

-a 即array,表名正在声明一个数组

③将文件中每一行赋值给数组

数组名=(`cat 文件名`)
数组名=($(cat 文件名))
默认一行是一个数组元素,
命令解释:
cat 显示文件内容,反引号表示命令替换,即执行反引号内的命令,并将命令的输出结果替换反引号及其内的内容,数组=(),是数组赋多个值的基本格式
如果缺少数组基本格式的(),那么文件的内容会被作为一个字符串赋值给变量ggg,行和行之间默认空格

推荐使用$() 来代替反引号进行命令替换,因为 $() 更加易读且易于嵌套

关联数组

关联数组的访问:  通过元素下标或索引

一次赋多个值
语法: 数组名 =([ 下标 1]= 变量值 1 [ 小标 2]= 变量值 2 ... ...)
访问 语法: echo ${ 数组名 [ 索引 or 下标 ]}
访问所有元素 echo ${ 数组名 [*]}         echo ${ 数组名 [@ ]}

访问联合数组的所有下标或索引名称

普通数组和联合数组

 打印数组长度

echo  ${#数组名[@]}
#:获取数组的长度,即数组中元素的数量。
@:引用数组中的所有元素。

打印数组内的全部元素

${array[@]} 会将数组 array 中的所有元素连接成一个字符串,元素之间默认以第一个字符为分隔符(通常是空格)。如果数组元素中包含空格或特殊字符,可能需要使用双引号来确保它们被正确处理。

访问特定的元素

数组下标(索引)用于访问数组中的特定元素,  数组的元素下标从0开始

修改数组元素

删除数组

unset 数组名
删除数组的某个元素:   unset 数组名[元素下标]

 遍历数组

示例: 下面的代码写在Shell文件中

遍历数组失败

原因: 如果shell无法运行可能是脚本运行的环境不能够访问到 Arrays变量
解决方案
1.在脚本内部定义变量
2.导出变量
在脚本外部使用 export命令导出变量,使其在当前shell会话中对所有子进程可见,然后在脚本中直接使用 Arrays变量
.


原文地址:https://blog.csdn.net/weixin_40121264/article/details/145129987

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!