火车票网站建设多少,网站推广的基本方法有哪些,精通网站建设需要学什么,wordpress怎么做下载页目录 一. 关联数组定义二. 访问关联数组三. 元素的添加与删除四. 键值对的获取与遍历五. 实际应用5.1 读取封装配置文件内容5.2 收集系统信息 一. 关联数组定义
从 Bash 4.0 开始#xff0c;Bash 支持关联数组。关联数组允许你将键和值配对#xff0c;并通过键来访问值… 目录 一. 关联数组定义二. 访问关联数组三. 元素的添加与删除四. 键值对的获取与遍历五. 实际应用5.1 读取封装配置文件内容5.2 收集系统信息 一. 关联数组定义
从 Bash 4.0 开始Bash 支持关联数组。关联数组允许你将键和值配对并通过键来访问值类似于其他编程语言中的 Map。
⏹通过declare -A来创建一个关联数组
declare -A 关联数组名称⏹可以在创建关联数组的时候为其赋值
declare -A personMap([name]贾飞天[age]18[address]地球
)二. 访问关联数组
# 定义一个关联数组
declare -A personMap([name]贾飞天[age]18[address]地球
)⏹根据key访问对应的value
echo ${personMap[name]} # 贾飞天⏹key也可以是变量
mykeyage
echo ${personMap[$mykey]} # 18三. 元素的添加与删除
⏹元素的添加
personMap[car]红旗
echo ${personMap[car]} # 红旗# 获取所有的key
echo ${!personMap[]} # address age car name⏹元素的删除
# 元素删除前获取所有的key
echo ${!personMap[]} # address age car name# 删除指定的key
unset personMap[car]# 元素删除后获取所有的key
echo ${!personMap[]} # address age name四. 键值对的获取与遍历
⏹获取所有的键
$ echo ${!personMap[]} | xargs -n 1
address
age
name⏹获取所有的值
$ echo ${personMap[]} | xargs -n 1
地球
18
贾飞天⏹遍历关联数组
for key in ${!personMap[]}; doecho $key: ${personMap[$key]}
done
# address: 地球
# age: 18
# name: 贾飞天五. 实际应用
5.1 读取封装配置文件内容
⏹有配置文件如下
usernameadmin
passwordsecret
hostlocalhost
port8080⏹读取配置文件内容到关联数组中
# 声明一个关联数组
declare -A config# 读取配置文件内容到关联数组中
while IFS read -r key value; doconfig[$key]$value
done my_conf.ini# 遍历关联数组打印配置文件的内容
for key in ${!config[]}; doecho $key: ${config[$key]}echo
done# host: localhost
#
# password: secret
#
# username: admin
#
# port: 8080
# 5.2 收集系统信息
# 将系统信息收集到关联数组中
declare -A sysinfo([hostname]$(hostname)[os]$(uname -o)[kernel]$(uname -r)
)# 输出系统信息
for key in ${!sysinfo[]}; doecho $key: ${sysinfo[$key]}
done# hostname: ubuntu
# kernel: 4.4.0-166-generic
# os: GNU/Linux