• Shell数组:shell数组的定义、数组长度


    Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。

    bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。

    定义数组

    在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:
        array_name=(value1 ... valuen)
    例如:

        array_name=(value0 value1 value2 value3)

    或者

        array_name=(
        value0
        value1
        value2
        value3
        )

    还可以单独定义数组的各个分量:

        array_name[0]=value0
        array_name[1]=value1
        array_name[2]=value2

    可以不使用连续的下标,而且下标的范围没有限制。

    读取数组

    读取数组元素值的一般格式是:
        ${array_name[index]}
    例如:

        valuen=${array_name[2]}
    #!/bin/bash
    
    NAME[0]="Zara"
    NAME[1]="Qadir"
    NAME[2]="Mahnaz"
    NAME[3]="Ayan"
    NAME[4]="Daisy"
    echo "First Index: ${NAME[0]}"
    echo "Second Index: ${NAME[1]}"

    运行脚本,输出:

    $ bash array.sh
    First Index: Zara
    Second Index: Qadir

    使用@ 或 * 可以获取数组中的所有元素,例如:

        ${array_name[*]}
        ${array_name[@]}
    #!/bin/bash
    
    NAME[0]="Zara"
    NAME[1]="Qadir"
    NAME[2]="Mahnaz"
    NAME[3]="Ayan"
    NAME[4]="Daisy"
    echo "First Index: ${NAME[*]}"
    echo "Second Index: ${NAME[@]}"

    运行结果:

    $ bash array2.sh 
    First Index: Zara Qadir Mahnaz Ayan Daisy
    Second Index: Zara Qadir Mahnaz Ayan Daisy

    获取数组的长度

    获取数组长度的方法与获取字符串长度的方法相同,例如:

    #!/bin/bash
    
    NAME[0]="Zara"
    NAME[1]="Qadir"
    NAME[2]="Mahnaz"
    NAME[3]="Ayan"
    NAME[4]="Daisy"
    echo "First Index: ${NAME[*]}"
    echo "Second Index: ${NAME[@]}"
    #取得数组元素的个数
    length=${#NAME[@]}
    echo -e $length "
    "
    #或者
    length=${#NAME[*]}
    echo -e $length "
    "
    #取得数组单个元素的长度
    lengthn=${#NAME[0]}
    echo -e $lengthn "
    "

    运行结果:

    First Index: Zara Qadir Mahnaz Ayan Daisy
    Second Index: Zara Qadir Mahnaz Ayan Daisy
    5 
    
    5 
    
    4 
  • 相关阅读:
    C艹函数与结构体
    c++ const 用法总结
    c++ 重载
    c++ 的makefile文件实例
    python3 异步模块asyncio
    C++ 面向对象 类成员函数this指针
    基于注释的Spring Security实战
    web 安全 初探 (正在更新)
    Spring dbcp连接池简单配置 示例
    Spring JDBC
  • 原文地址:https://www.cnblogs.com/ghgyj/p/4025394.html
Copyright © 2020-2023  润新知