zoukankan      html  css  js  c++  java
  • 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")

  • 相关阅读:
    联想yoga pro 13 使用Hyper-v蓝屏错误PAGE_FAULT_IN_NONPAGED-AREA的解决办法
    部署 Halo 博客系统
    GiuHub高级搜索关键字
    layer提示框弹出异常抖动,而且不显示
    bootstrap同一页面上多个模态框
    border-radius
    git查看本机ssh公钥
    简单的git连接远程仓库小记
    hexo搭建完成后输入hexo s 没有生成Html静态文件
    application/xml and text/xml的区别
  • 原文地址:https://www.cnblogs.com/jinxf/p/10410889.html
Copyright © 2011-2022 走看看