zoukankan      html  css  js  c++  java
  • shell中的“数组”

    定义数组

    数组名=(值1 值2 ... 值n)

    [root@MiWiFi-R3-srv ~]# array_name=(value1 value2 value3 value4)

    读取数组

    ${数组名[下标]}

    [root@MiWiFi-R3-srv ~]# echo "${array_name}"
    value1
    [root@MiWiFi-R3-srv ~]# echo "${array_name[0]}"
    value1
    [root@MiWiFi-R3-srv ~]# echo "${array_name[1]}"
    value2
    [root@MiWiFi-R3-srv ~]# echo "${array_name[2]}"
    value3
    [root@MiWiFi-R3-srv ~]# echo "${array_name[3]}"
    value4

    获取数组中元素个数

    [root@MiWiFi-R3-srv ~]# echo "${#array_name[@]}"
    4
    [root@MiWiFi-R3-srv ~]# echo "${#array_name[*]}"
    4

    获取单个元素的的长度(主要是字符串的字符长度)

    [root@MiWiFi-R3-srv ~]# echo "${#array_name[0]}"
    6

     获取数组中所有元素

    [root@localhost bash_learn]# echo ${array_name[@]}
    value1 value2 value3 value4

    移除某个元素(依然根据索引位置)

    [root@localhost bash_learn]# unset array_name[2]
    [root@localhost bash_learn]# echo ${array_name[@]}
    value1 value2 value4

    获取所有索引id

    [root@localhost bash_learn]# echo ${!array_name[@]}
    0 1 2 3

    获取指定索引id的元素

    [root@localhost bash_learn]# array_name[33]="New_Items"
    [root@localhost bash_learn]# echo ${array_name[@]}
    value1 value2 value4 New_Items
    [root@localhost bash_learn]# echo ${!array_name[@]}
    0 1 3 33

     关联数组

    转载地址:https://www.jb51.net/article/103915.htm

    普通数组:只能使用证书作为数组索引
    关联数字:可以使用字符串作为数组索引
    
    声明一个变量为关联数组
    [root@a ~]# declare -A Array
    
    将元素添加到关联数组中
    [root@a ~]# Array=([lucy]=beijing [jack]=shanghai)
    或
    Array[mike]=tianjin
    
    通过索引访问元素
    [root@a ~]# Array[mike]=tianjin
    [root@a ~]# echo ${Array[mike]}
    tianjin
    [root@a ~]# echo ${Array[jack]}
    shanghai
    [root@a ~]# echo ${Array[lucy]}
    beijing
    
    获取数组所有的索引列表
    [root@a ~]# echo ${Array[*]}
    tianjin shanghai beijing
    
    获取数组所有的元素列表
    [root@a ~]# echo ${!Array[*]}
    mike jack lucy
    
    遍历键值对(也就是index和value)
    [root@a ~]# cat testarray.sh 
    #!/bin/bash
    declare -A Array
    Array=([lucy]=beijing [jack]=shanghai [mike]=tianjin)
    for key in ${!Array[*]}
    do
        echo "${key} come from ${Array[$key]}"
    done
    [root@a ~]# sh testarray.sh 
    mike come from tianjin
    jack come from shanghai
    lucy come from beijing
  • 相关阅读:
    ZOJ3329(数学推导+期望递推)
    洛谷5020(完全背包)
    洛谷1537(bitset+01背包)
    洛谷1052(路径压缩后简单dp)
    使用通配符配置action
    使用通配符配置action
    struts2.Action中的method属性配置
    struts2.Action中的method属性配置
    开启struts2自带的开发模式常量
    开启struts2自带的开发模式常量
  • 原文地址:https://www.cnblogs.com/thebear/p/7754876.html
Copyright © 2011-2022 走看看