Map 在 Shell 脚本中使用示例

本文介绍了如何从'all_config.csv'文件中读取主机IP和名称,使用bash脚本创建并操作Map,展示了声明、初始化、遍历Map以及相关操作的示例。重点在于Shell中Map数据结构的应用和维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

info txt

[root@node3 test_dict]# cat all_config.csv 
host_ips,10.10.200.84#10.10.200.49#10.10.200.50
host_names,node1#node2#node3

map use

[root@node3 test_dict]# cat 111.sh 
#!/bin/bash

csv="./all_config.csv"

ips=$(grep 'host_ips' ${csv} | awk -F ',' '{print $2}' | tr -s '#' ' ')
names=$(grep 'host_names' ${csv} | awk -F ',' '{print $2}' | tr -s '#' ' ')

echo ${ips[*]}
echo ${names[*]}

# 使用前 -- 必须先声明
declare -A map_hosts

for (( i=0; i<${#ips[*]}; i++ ))
do
	map_hosts[${ips[$i]}]="${names[$i]}"
done

echo ${!map_hosts[*]}
echo ${map_hosts[*]}

exec shell

[root@node3 test_dict]# sh 111.sh 
10.10.200.84 10.10.200.49 10.10.200.50
node1 node2 node3
10.10.200.84 10.10.200.49 10.10.200.50
node1 node2 node3

Map 使用详解

定义 Map
declare -A map
初始化 Map
map[key1]="value1"
map[key2]="value2"
map[key3]="value3"
输出所有 key
echo ${!map[*]}
输出所有 value
echo ${map{*}}
输出 map 长度
echo ${#map{*}}
遍历 – 根据 key 找到 value
for key in ${!map{*}}
do
	echo ${map[${key}]}
done
遍历 – 所有 key
for key in ${!map{*}}
do
	echo ${key}
done
遍历 – 所有 value
for value in ${map{*}}
do
	echo ${value}
done

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值