• 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
  • 相关阅读:
    面试题
    网络编程
    python_控制台输出带颜色的文字方法
    httpie 101
    JSON Web Signature 规范解析
    Kong 系列 -- Kong 101
    关于过渡机制的一点理解
    XAML概览 1(译自JeremyBytes.com)
    awk与sed简明教程
    Connection failed: NT_STATUS_ACCOUNT_RESTRICTION
  • 原文地址:https://www.cnblogs.com/thebear/p/7754876.html
Copyright © 2020-2023  润新知