九 Shell中的数组

数组:用一个变量存储一组数据,并能够对这组数据中的某一个数据单独操作。

数组的类型:一维数组、二维数组、多维数组

变量的类型

Shell中默认无类型
变量的值默认均视为文本
用在数字运算中时,自动将其转换为整数

定义变量类型

declare强制设置类型属性

语法:declare 选项 变量名

选项    注释
-i    强制为整数
-a    定义为数组
-x    设置为全局变量/环境变量
-r    设置为只读

-i:定义变量为数值类型

[root@localhost ~]# declare -i x=20
[root@localhost ~]# declare -i y=3
[root@localhost ~]# declare -i c=$x*$y
[root@localhost ~]# echo $c
60

-a:定义变量为数组类型

[root@localhost ~]# declare -a tea
[root@localhost ~]# declare -a | grep tea
declare -a tea='()'
[root@localhost ~]# tea=( plj hpg zhf zzg)
[root@localhost ~]# declare -a | grep tea
declare -a tea='([0]="plj" [1]="hpg" [2]="zhf" [3]="zzg")'

定义或赋值数组

方法1,整体赋值

格式                    示例
数组名=(值1 值2 ....值n)    SVRS=(www ftp mail club)

方法2:单个元素赋值

格式    示例
数组名[下标]=值 ;下标从0开始    FQDNS[0]=www.tarena.com

 输出数组元素

    格式
获取单个数组元素    ${数组名[下标]}
获取所有数组元素    ${数组名[@]}
获取数组元素个数    ${#数组名[@]}
获取连续的多个数组元素    ${数组名[@]}:起始下标:元素个数
获取某个数组元素的长度    ${#数组名[下标]}
截取数组元素值的一部分    ${#数组名[下标]:起始下标:字符数}

特别提醒:

如果元素下标值已经被已有元素使用,是修改已有元素的值
如果元素下标值没有被已有元素使用,是向数组中添加新元素
如果给数组赋值时,元素列表为空,是删除数组中的所有元素
如果给数组赋值时,元素列表里输入新值,是重新给数组赋值。

原文地址:https://www.cnblogs.com/zhongguiyao/p/8984811.html