shell数组的用法
在shell里面想获取某个变量的值,使用$符开头,如:$a或者${a}即可。
  获取数组长度
  arr_length=${#arr_number[*]}或${#arr_number[@]}均可,即形式:${#数组名[@/*]} 可得到数组的长度。
  读取某个下标的值
  arr_index2=${arr_number[2]},即形式:${数组名[下标]}
  删除操作
    清除某个元素:unset arr_number[1],这里清除下标为1的数组;
    清空整个数组:unset arr_number;
  分片访问
    分片访问形式为:${数组名[@或*]:开始下标:结束下标},注意,不包括结束下标元素的值。
    例如:${arr_number[@]:1:4},这里分片访问从下标为1开始,元素个数为4。
    ${hosts[*]:0:6}取前六个元素
    : 3 跳过3个
    : -3 只取倒数3个(单个负数要加空格)
    :3:4 跳过3个取4个
    :3:-4 除了前三后4只要中间
  模式替换
    形式为:${数组名[@或*]/模式/新值}
    例如:${arr_number[@]/2/98}
  数组的遍历
    数组遍历我们使用for语句来演示:
    for v in ${arr_number[@]}; do
      echo $v;
    done
判断元素是否在数组内:
    project=$1
    projects=( 'project1',‘project2’ )   #数组
    if [[ ${projects[*]} =~ $project ]]; then  #使用@ 或 * 可以获取数组中的所有元素,=~是正则匹配
            echo `date +"%Y-%m-%d %H:%M:%S"`" 开始检查工程$project"
    else
          echo `date +"%Y-%m-%d %H:%M:%S"`" 参数指定错误,工程${project}不在监控列表"
        exit 255														#自定义退出代码
    fi
字典:
#!/bin/bash
echo "shell定义字典"
#必须先声明
declare -A dic
dic=([key1]="value1" [key2]="value2" [key3]="value3")
#追加字典
dic+=([key4]="value4" [key5]="value5" [key6]="value5")
echo ${#dic[@]}
#打印指定key的value
echo ${dic["key1"]}
#打印所有key值
echo ${!dic[*]}
#打印所有value
echo ${dic[*]}
#遍历key值
for key in $(echo ${!dic[*]})
do
        echo "$key : ${dic[$key]}"
done
echo "shell定义数组"
#数组
list=("value1" "value2" "value3")
#打印指定下标
echo ${list[1]}
#打印所有下标
echo ${!list[*]}
#打印数组下标
echo ${list[*]}
#数组增加一个元素
list=("${list[@]}" "value3")
shell数组的用法的更多相关文章
- centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件、目录属性  shell数组简单用法 $( ) 和${ } 和$(( )) 与  sh -n  sh -x  sh -v 第三十五节课
		centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ... 
- Linux Shell系列教程之(六)Shell数组
		本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法. ... 
- shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计
		shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ... 
- hbase基本概念和hbase shell常用命令用法
		1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ... 
- 【转载】HBase基本概念和hbase shell常用命令用法
		1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ... 
- (12)Linux shell之read 用法
		Linux shell之read 用法 #!/bin/bash#read 用来读取屏幕输入或是读取文件内容.read -p "please input you name: " ... 
- Shell基础(四):字符串截取及切割、字符串初值的处理、基使用Shell数组、expect预期交互、使用正则表达式
		一.字符串截取及切割 目标: 使用Shell完成各种Linux运维任务时,一旦涉及到判断.条件测试等相关操作时,往往需要对相关的命令输出进行过滤,提取出符合要求的字符串. 本案例要求熟悉字符串的常见处 ... 
- Linux Shell 数组
		shell 数组一般都是一维数组. 1. 数组的声明 declare -a arr 该命令将声明一个数组arr,实际上不声明也可以直接定义数组. 2. 数组的初始化 arr=(1 2 3):该命令定义 ... 
- shell--2.shell数组
		shell 数组 (1)定义数组 shell中,用括号表示数组,数组元素用空格分开,定义数组的一般形式 arrt_name=(val1 val2 val3) 或者 arry_name=(val1 va ... 
随机推荐
- TCP/IP速记
			目录 网络协议 OSI七层模型和TCP/IP五层模型 TCP/IP五层模型 TCP的三次握手和四次挥手 三次握手进行连接 四次挥手断开连接 TCP连接的特点 TCP是如何保证安全可靠的 UDP连接的特 ... 
- west_wild 靶机
			ways:smb枚举+suid提权 1:扫描主机发现IP 老套路:netdiscover 一波 2:nmap扫描,发现开放的 端口很多并且开放是SMB协议 3:对目录扫描,发现没有可以利用的点 4:从 ... 
- oracle语法查某个字段为空
			select * from t_address_express_mapping t where t.start_house_number is null; 
- STL函数库的应用第一弹——数据结构(队列)
			队列是什么? 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作. 和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的端称为队头 ... 
- SpringSecurity权限管理系统实战—六、SpringSecurity整合jwt
			目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ... 
- 笔记:Xshell、更新源、安装软件
			一.Xshell首次连接kali系统中的ssh 1.Xshell :帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp). 2.步骤: step1:开启kali中的ssh ... 
- C++ Templates (1.7 总结 Summary)
			返回完整目录 目录 1.7 总结 Summary 1.7 总结 Summary 函数模板定义了一系列不同模板实参的函数 当传递实参给依赖于模板参数的函数参数,函数模板推断模板参数并实例化相应的参数类型 ... 
- 区块链入门到实战(6)之区块链 – 哈希(Hash)
			密码学中,最重要的函数之一是哈希函数.哈希函数将任意大小的数据(内容)映射到固定大小的数据(哈希值). 哈希函数是单向的,从内容生成哈希值很容易,但从哈希值映射到内容很难. 比特币使用SHA-256哈 ... 
- 【转】Echarts 数据绑定
			Echarts 数据绑定 简单的统计表已经可以生成,不过之前图标数据都是直接写在参数里面的,而实际使用中,我们的数据一般都是异步读取的.EChart.js对于数据异步读取这块提供了异步加载的方法. 绑 ... 
- OGG复制进程延迟高,优化方法二(存在索引),SQL选择不好的索引
			https://www.cnblogs.com/lvcha001/p/13469500.html 接前序,本次场景中有索引,但是OGG复制进程使用了低效率的索引? 类似SQL使用低效索引,如何让Or ... 
