Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Bash shell 中的字典

Bash shell 中的字典

作者头像
耕耘实录
发布于 2019-07-03 01:34:20
发布于 2019-07-03 01:34:20
2.9K00
代码可运行
举报
文章被收录于专栏:耕耘实录耕耘实录
运行总次数:0
代码可运行

文章目录

  • Bash shell 中的字典
    • 一 背景
    • 二 脚本
    • 三 总结

Bash shell 中的字典

一 背景

在一些运维工作中,使用字典能让当前工作事半功倍,类似 Python ,在 GNU bash 4.2.46 中,我们也可以很方便的使用字典来完成一些工作了。本文以一段 bash shell 为例展示一下 Bash 中字典的使用。

二 脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
# Declare a dictionary.
declare -A Host
Host=( [node1]='10.1.1.11' [node2]='10.1.1.12' [node3]='10.1.1.13' [node4]='10.1.1.14' )

# Traversing dictionary values.
for node_ip in ${Host[@]};
do
  echo "One IP of these hosts is ${node_ip} .";
done

# Traversing dictionary keys.
for node in ${!Host[@]};
do
  echo "One hostname of these hosts is: ${node}. ";
done

# Traverse keys and values at the same time.
for node in ${!Host[@]};
do
  echo "Hostname: ${node}, IP: ${Host[${node}]}. "
done

# Get the length of this dictionary.
echo "The length of this dictionary is ${#Host[@]}. "

# Append a key and a value.
Host[node5]='10.1.1.15'
echo "The value of new dictionary is: ${Host[@]}. "
echo "The length of dictionary is: ${#Host[*]}. "

# Modify a value of the dictionary .
Host[node1]='10.1.1.111'
echo "The value of new dictionary is: ${Host[@]}. "

执行结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
One IP of these hosts is 10.1.1.14 .
One IP of these hosts is 10.1.1.11 .
One IP of these hosts is 10.1.1.12 .
One IP of these hosts is 10.1.1.13 .
One hostname of these hosts is: node4.
One hostname of these hosts is: node1.
One hostname of these hosts is: node2.
One hostname of these hosts is: node3.
Hostname: node4, IP: 10.1.1.14.
Hostname: node1, IP: 10.1.1.11.
Hostname: node2, IP: 10.1.1.12.
Hostname: node3, IP: 10.1.1.13.
The length of this dictionary is 4.
The value of new dictionary is: 10.1.1.14 10.1.1.15 10.1.1.11 10.1.1.12 10.1.1.13.
The length of dictionary is: 5.
The value of new dictionary is: 10.1.1.14 10.1.1.15 10.1.1.111 10.1.1.12 10.1.1.13.

三 总结

脚本的注释解释了后面相关代码的功能。通过脚本,我们对 Bash 中的字典有了一些新的认识。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年04月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
大数据Flink进阶(十六):Flink HA搭建配置
默认情况下,每个Flink集群只有一个JobManager,这将导致单点故障(SPOF,single point of failure),如果这个JobManager挂了,则不能提交新的任务,并且运行中的程序也会失败,这是我们可以对JobManager做高可用(High Availability,简称HA),JobManager HA集群当Active JobManager节点挂掉后可以切换其他Standby JobManager成为主节点,从而避免单点故障。用户可以在Standalone、Flink on Yarn、Flink on K8s集群模式下配置Flink集群HA,Flink on K8s集群模式下的HA将单独在K8s里介绍。
Lansonli
2023/04/08
3K0
大数据Flink进阶(十六):Flink HA搭建配置
大数据Flink进阶(九):集群基础环境搭建
Flink可以运行在所有类unix环境中,例如:Linux,Mac OS 和Windows,一般企业中使用Flink基于的都是Linux环境,后期我们进行Flink搭建和其他框架整合也是基于linux环境,使用的是Centos7.6版本,JDK使用JDK8版本(Hive版本不支持JDK11,所以这里选择JDK8),本小节主要针对Flink集群使用到的基础环境进行配置,不再从零搭建Centos系统,另外对后续整合使用到的技术框架也一并进行搭建,如果你目前已经有对应的基础环境,可以忽略本小节,Linux及各个搭建组件使用版本如下表所示。
Lansonli
2023/03/30
1.3K0
大数据Flink进阶(九):集群基础环境搭建
大数据调度平台Airflow(八):Airflow分布式集群搭建及测试
默认Airflow安装在$ANCONDA_HOME/envs/python37/lib/python3.7/site-packages/airflow目录下。配置了AIRFLOW_HOME,Airflow安装后文件存储目录在AIRFLOW_HOME目录下。可以每台节点查看安装Airflow版本信息:
Lansonli
2022/09/25
2.8K0
大数据调度平台Airflow(八):Airflow分布式集群搭建及测试
Flink学习笔记:3、Flink分布式模式(Standalone)
程裕强
2018/01/02
2.9K0
Flink学习笔记:3、Flink分布式模式(Standalone)
使用Kubespray 2.8.3部署生产可用的Kubernetes集群(1.12.5)
18年9月,笔者撰写了 使用Kubespray部署生产可用的Kubernetes集群(1.11.2) ,当时Kubespray发布到2.6.0,近日有童鞋反馈,这篇文章对最新的Kubespray(2.8.3)无法完全适用。
用户1516716
2019/03/14
1.6K0
ClickHouse 集群部署(不需要 Zookeeper)
(1)安装 ClickHouse Server 和 ClickHouse Client
用户1148526
2024/04/18
9.7K2
hadoop2-elasticsearch的安装
本文主要讲elasticsearch-2.2.1的安装过程。 准备工作: 1.搭建虚拟机 你需要先参考 hadoop2集群环境搭建 把你的虚拟机搭建起来-hadoop环境可以先不用搭建(完成步骤1到步骤8) 2.下载elasticsearch包 下载elasticsearch-2.2.1.tar.zip 这里我搭建的是4台虚拟机(node1,node2,node3,node4) elasticsearch 只允许普通用户操作,不允许root用户操作 --1.关闭防火墙 service iptables st
Hongten
2018/12/14
6180
hadoop2-elasticsearch的安装
Ansible自动化运维平台部署
视频:部署前准备 视频:ssh证书互信设置 视频:ansible平台部署 视频:主机列表文件hosts文件 视频:ansible自动化平台部署知识图谱
星哥玩云
2022/09/15
1.1K0
Flume+Kafka+Storm+Hbase+HDSF+Poi整合
举例:这个网站www.hongten.com(当然这是一个我虚拟的电商网站),用户在这个网站里面可以有很多行为,比如注册,登录,查看,点击,双击,购买东西,加入购物车,添加记录,修改记录,删除记录,评论,登出等一系列我们熟悉的操作。这些操作都被记录在日志信息里面。我们要对日志信息进行分析。
Hongten
2018/12/28
7420
hadoop2集群环境搭建
在查询了很多资料以后,发现国内外没有一篇关于hadoop2集群环境搭建的详细步骤的文章。
Hongten
2018/12/04
8260
hadoop2集群环境搭建
使用Kubespray部署生产可用的Kubernetes集群(1.11.2)
Kubernetes的安装部署是难中之难,每个版本安装方式都略有区别。笔者一直想找一种 支持多平台 、 相对简单 、 适用于生产环境 的部署方案。经过一段时间的调研,有如下几种解决方案进入笔者视野:
用户1516716
2018/10/10
1.7K0
nmap +shell脚本实现内网端口巡检
#############################################################
保持热爱奔赴山海
2019/09/18
1.3K0
Ansible自动化批量管理入门
完整的连接行为控制变量参见官方手册:How to build your inventory — Ansible Documentation。下面解释几个常见的行为变量。
王先森sec
2023/04/24
5610
Ansible自动化批量管理入门
Linux集群自动化搭建(生成密钥对+分发公钥+远程批量执行脚本)
之前介绍过ansible的使用,通过ssh授权批量控制服务器集群 但是生成密钥和分发公钥的时候都是需要确认密码的,这一步也是可以自动化的,利用ssh + expect + scp就可以实现,其实只用这几个命令结合也可以实现类似ansible的功能了 为了远程操作服务器进行环境初始化,总结我们都需要以下几步操作 1.ssh-keygen生成密钥对 2.将生成的公钥发送到node服务器 3.scp拷贝安装包到node服务器 4.ssh远程执行拷贝过去的安装包
星哥玩云
2022/07/26
1K0
离线部署 CDH 5.12.1 及使用 CDH 部署 Hadoop 大数据平台集群服务
Cloudera Manager Cloudera Manager 分为两个部分:CDH和CM。 CDH是Cloudera Distribution Hadoop的简称,顾名思义,就是cloudera公司发布的Hadoop版本,封装了Apache Hadoop,提供Hadoop所有的服务,包括HDFS,YARN,MapReduce以及各种相关的components:HBase, Hive, ZooKeeper,Kafka等。 CM是cloudera manager的简称,是CDH的管理平台,主要包括CM s
程序员鹏磊
2018/02/09
2.7K0
离线部署  CDH 5.12.1 及使用 CDH 部署 Hadoop 大数据平台集群服务
基于 HBase & Phoenix 构建实时数仓(2)—— HBase 完全分布式安装
完全分布式 HBase 集群的运行依赖于 Zookeeper 和 Hadoop,在前一篇中已经详细介绍了他们的安装部署及运行,参见“基于 HBase & Phoenix 构建实时数仓(1)—— Hadoop HA 安装部署”。本篇继续介绍在相同主机环境下安装配置完全分布式 HBase 集群。
用户1148526
2024/03/09
5000
基于 HBase & Phoenix 构建实时数仓(2)—— HBase 完全分布式安装
使用cephadm安装ceph octopus
Cephadm使用容器和systemd安装和管理Ceph集群,并与CLI和仪表板GUI紧密集成。
没有故事的陈师傅
2020/12/16
4.5K8
使用cephadm安装ceph octopus
centos7搭建ceph集群
ceph需要epel源的包,所以安装的节点都需要yum install epel-release
用户1214487
2020/06/19
1.1K0
centos7搭建ceph集群
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
​上篇已经大概讲述大数据组件版本和集群矩阵配置说明,有不清楚的同学,可以阅读上一篇
Lansonli
2022/07/31
1.4K0
湖仓一体电商项目(三):3万字带你从头开始搭建12个大数据项目基础组件
基于etcd服务发现的overlay跨多宿主机容器网络
在三台机器上分别启动etcd服务.CLUSTER_IPS=(192.168.1.158 192.168.1.60 192.168.1.24)这是一个ip数组.
字母哥博客
2020/09/23
5490
推荐阅读
相关推荐
大数据Flink进阶(十六):Flink HA搭建配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档