在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数组的用法的更多相关文章

  1. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  2. Linux Shell系列教程之(六)Shell数组

    本文是Linux Shell系列教程的第(六)篇,更多shell教程请看:Linux Shell系列教程 Shell在编程方面非常强大,其数组功能也非常的完善,今天就为大家介绍下Shell数组的用法. ...

  3. shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计

    shell编程系列21--文本处理三剑客之awk中数组的用法及模拟生产环境数据统计 shell中的数组的用法: shell数组中的下标是从0开始的 array=("Allen" & ...

  4. hbase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  5. 【转载】HBase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  6. (12)Linux shell之read 用法

    Linux shell之read 用法 #!/bin/bash#read 用来读取屏幕输入或是读取文件内容.read -p  "please input you  name: " ...

  7. Shell基础(四):字符串截取及切割、字符串初值的处理、基使用Shell数组、expect预期交互、使用正则表达式

    一.字符串截取及切割 目标: 使用Shell完成各种Linux运维任务时,一旦涉及到判断.条件测试等相关操作时,往往需要对相关的命令输出进行过滤,提取出符合要求的字符串. 本案例要求熟悉字符串的常见处 ...

  8. Linux Shell 数组

    shell 数组一般都是一维数组. 1. 数组的声明 declare -a arr 该命令将声明一个数组arr,实际上不声明也可以直接定义数组. 2. 数组的初始化 arr=(1 2 3):该命令定义 ...

  9. shell--2.shell数组

    shell 数组 (1)定义数组 shell中,用括号表示数组,数组元素用空格分开,定义数组的一般形式 arrt_name=(val1 val2 val3) 或者 arry_name=(val1 va ...

随机推荐

  1. TCP/IP速记

    目录 网络协议 OSI七层模型和TCP/IP五层模型 TCP/IP五层模型 TCP的三次握手和四次挥手 三次握手进行连接 四次挥手断开连接 TCP连接的特点 TCP是如何保证安全可靠的 UDP连接的特 ...

  2. west_wild 靶机

    ways:smb枚举+suid提权 1:扫描主机发现IP 老套路:netdiscover 一波 2:nmap扫描,发现开放的 端口很多并且开放是SMB协议 3:对目录扫描,发现没有可以利用的点 4:从 ...

  3. oracle语法查某个字段为空

    select * from t_address_express_mapping t where t.start_house_number is null;

  4. STL函数库的应用第一弹——数据结构(队列)

    队列是什么? 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端进行删除操作,而在表的后端进行插入操作. 和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的端称为队头 ...

  5. SpringSecurity权限管理系统实战—六、SpringSecurity整合jwt

    目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战-三 ...

  6. 笔记:Xshell、更新源、安装软件

    一.Xshell首次连接kali系统中的ssh 1.Xshell :帮助我们去连接各种服务平台,方便管理服务器,链路可以加密处理(ssh/vsftp). 2.步骤: step1:开启kali中的ssh ...

  7. C++ Templates (1.7 总结 Summary)

    返回完整目录 目录 1.7 总结 Summary 1.7 总结 Summary 函数模板定义了一系列不同模板实参的函数 当传递实参给依赖于模板参数的函数参数,函数模板推断模板参数并实例化相应的参数类型 ...

  8. 区块链入门到实战(6)之区块链 – 哈希(Hash)

    密码学中,最重要的函数之一是哈希函数.哈希函数将任意大小的数据(内容)映射到固定大小的数据(哈希值). 哈希函数是单向的,从内容生成哈希值很容易,但从哈希值映射到内容很难. 比特币使用SHA-256哈 ...

  9. 【转】Echarts 数据绑定

    Echarts 数据绑定 简单的统计表已经可以生成,不过之前图标数据都是直接写在参数里面的,而实际使用中,我们的数据一般都是异步读取的.EChart.js对于数据异步读取这块提供了异步加载的方法. 绑 ...

  10. OGG复制进程延迟高,优化方法二(存在索引),SQL选择不好的索引

    https://www.cnblogs.com/lvcha001/p/13469500.html 接前序,本次场景中有索引,但是OGG复制进程使用了低效率的索引?  类似SQL使用低效索引,如何让Or ...