数组 (array) 变量类型
数组中的值: wukong bajie shaseng
值的索引号: 0 1 2
数组的索引只能是 整数
定义一个数组
var=(wukong bajie shaseng)
echo ${var[2]} //显示数组中索引号为 2 的值,索引号从 0 开始
输出 shaseng
echo ${var[*]} //显示数组中所有的值
输出 wukong bajie shaseng
定义数组,并且其值从命令的结果中获取
把文件中的每一行作为数组中的一个值
line=(cat /etc/passwd
)
declare 声明关联数组
数组的索引可以是 普通字符串
声明关联数组使用 A 选项
declare -A 数组名称
- 声明
声明关联数组,数组名称为 info
[shark@sharkyun ~]$ declare -A info
- 添加值
每次添加一个值,可以追加
示例:
[shark@sharkyun ~] info[age]=18
[shark@sharkyun ~]{info[name]} # 显示索引对应的值
shark
[shark@sharkyun ~]{info[age]}
18
一次添加所以的值,不可以追加,每次都会覆盖上次的值
每个值之间使用 空格 隔开
var=([key1]="value1" [key2]="value2")
示例:
[root@kube-master script]# declare -A color
[root@kube-master script]# color=(["red"]="#ff0000", ["green"]="#00ff00")
[root@kube-master script]# echo ${color[*]}
ff0000, #00ff00
[root@kube-master script]# color=(["a"]="#ff") # 这样会覆盖原来的值,因为这是在重新定义变量 color
[root@kube-master script]# echo ${color[*]}
ff
[root@kube-master script]# color=(["b"]="ff")
[root@kube-master script]# echo {color[]}
ff #cc
[root@kube-master script]# echo {#color[]} # 统计数组中有多少个键值对
2
删除
[root@kube-master arry]# unset info[name]
[root@kube-master arry]# echo ${!info[*]}
age