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
  • 相关阅读:
    java面向对象基础
    java重载方法、重写方法
    java数据类型
    Java简介
    随机读写,块读写
    Java基本常识

    循环双向链表
    双向链表(链表)
    循环单链表(链表)
  • 原文地址:https://www.cnblogs.com/thebear/p/7754876.html
Copyright © 2011-2022 走看看