在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. 使用Prometheus监控Golang服务-基于YoyoGo框架

    Prometheus Prometheus是一个非常棒的工具,结合grafana能够让我在不写代码,或者少写代码的情况下搭建一套有效的监控体系.这里介绍一下Prometheus监控golang程序的方 ...

  2. Oracle数据库启动及状态等查询

    一.监听 1)启动监听: lsnrctl start 2)查看监听状态: lsnrctl status 3)停止监听: lsnrctl stop 4)检查是否可进行网络连接: tnsping ${si ...

  3. 极简 Node.js 入门 - 3.1 File System API 风格

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  4. guice的能力简述

    guice这个google出的bean容器框架,ES有用到他. 能干什么 是一个bean容器 能AOP 能力细分与使用方式 以module创建injector.可以看成是一个容器.Module需要自定 ...

  5. centos7下的redis集群模式

    1.先安装好单机版的redis 2.Reids安装包里有个集群工具,要复制到/usr/local/bin里去 cd /home/redis/redis-4.0./src ls - cp redis-t ...

  6. 运行SQL文件报错:Got a packet bigger than 'max_allowed_packet' bytes With statement:

    英文意思:需要使用一个和现在相比较大的空间,可能mysql中的默认空间比文件需要的空间要小 解决方法: 1.修改配置文件中mysql的默认空间大小:在MYSQL的配置文件          my.in ...

  7. SPSSAU新功能上线:高级公式、综合得分一键计算!

    一直关注我们的朋友们一定会发现,近期SPSSAU增添了很多新功能. 我们精挑细选出6个最常使用的功能,介绍给大家,看看这些新功能你有没有解锁成功呢? 01 一键删除无效样本 “无效样本”功能中,添加了 ...

  8. 牛客网PAT练兵场-查验身份证

    题解:模拟题,直接算 题目地址:https://www.nowcoder.com/questionTerminal/779a72a420744b1d9c0ec7b7a8dd8f39 /** * *作者 ...

  9. (转载)std::enable_if 的几种用法 c++11

    今天看confluo源码中看到了std::enable_if这一个我不了解的语法,所以记录下来 转载地址:https://yixinglu.gitlab.io/enable_if.html std:: ...

  10. 学习lammps 对in文件的一个概述性心得(转载)

    转载自:http://muchong.com/html/201411/8149677.html 写在开头:1.尽量列举了大部分(几乎)的命令2.带星号命令非常重要,大家在看mannual中命令的解释的 ...