Shell_数组

本文连接  https://www.jianshu.com/p/8f2e13c5330d

数组 (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  数组名称

1. 声明

# 声明关联数组,数组名称为 info
[shark@sharkyun ~]$ declare -A   info

2. 添加值

  • 每次添加一个值,可以追加

示例:

[shark@sharkyun ~]$ info[name]=shark
[shark@sharkyun ~]$ info[age]=18
[shark@sharkyun ~]$ echo ${info[name]}  # 显示索引对应的值
shark
[shark@sharkyun ~]$ echo ${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
[root@kube-master script]# color[c]="#cc"
[root@kube-master script]# echo ${color[*]}
ff #cc
[root@kube-master script]# echo ${!color[*]}  # 获取所有的 索引号
b c
[root@kube-master script]# echo ${#color[*]}  # 统计数组中有多少个键值对
2

删除

[root@kube-master arry]# unset info[name]
[root@kube-master arry]# echo ${!info[*]}
age
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。