5.shell数组

本文介绍了Bash Shell中的一维数组使用方法,包括初始化、读取、获取数组长度及遍历数组的各种方式。示例代码详细展示了如何定义、访问和遍历数组元素,以及如何获取数组的长度。对于Shell脚本编程,掌握这些技巧至关重要。

5.shell数组

Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。

  • Shell 数组用括号来表示,元素用空格符号分割开,语法格式如下:

      arry=(a b c "d" e)
      #也可以使用下标来定义数组
      arry[0]=value0
      arry[1]=value1
      arry[2]=value2
      arry[3]=value3
      arry[4]=value4
    
    
  • 读取数组
    读取数组的一般格式是
    ${arry[index]}
    示例

        echo "第一个元素为:${arry[0]}"
        echo "第二个元素为:${arry[1]}"
        echo "第三个元素为:${arry[2]}"
        echo "第四个元素为:${arry[3]}"
        echo "第五个元素为:${arry[4]}"
    

    执行脚本命令输出

        第一个元素为:a
        第二个元素为:b
        第三个元素为:c
        第四个元素为:d
        第五个元素为:e
    
  • 获取数组中的所有元素
    使用"@“或” * "
    示例:

        echo "数组的元素为:${arry[@]}"
        echo "数组的元素为:${arry[*]}"
    

    输出:

        数组的元素为:a b c d e 
        数组的元素为:a b c d e
    
  • 获取数组的长度
    获取数组长度的方法与获取字符串长度的方法相同
    示例:

        echo "数组元素个数为${#arry[@]}"
        echo "数组元素个数为${#arry[*]}"
    

    输出:

        数组元素个数为5
        数组元素个数为5
    
  • 遍历数组(超纲)
    使用数组的时候,遍历数组用的还是比较多的,下面举几个数组遍历的例子:

        #!/bin/bash
        my_arry=(a b "c","d" abc)
        echo "-------FOR循环遍历输出数组--------"
        for i in ${my_arry[@]};
        do
        echo $i
        done
    
        echo "-------::::WHILE循环输出 使用 let i++ 自增:::::---------"
        j=0
        while [ $j -lt ${#my_arry[@]} ]
        do
        echo ${my_arry[$j]}
        let j++
        done
    
        echo "--------:::WHILE循环输出 使用 let  "n++ "自增: 多了双引号,其实不用也可以:::---------"
        n=0
        while [ $n -lt ${#my_arry[@]} ]
        do
        echo ${my_arry[$n]}
        let "n++"
        done
    
        echo "---------::::WHILE循环输出 使用 let m+=1 自增,这种写法其他编程中也常用::::----------"
        m=0
        while [ $m -lt ${#my_arry[@]} ]
        do
        echo ${my_arry[$m]}
        let m+=1
        done
    
        echo "-------::WHILE循环输出 使用 a=$[$a+1] 自增,个人觉得这种写法比较麻烦::::----------"
        a=0
        while [ $a -lt ${#my_arry[@]} ]
        do
        echo ${my_arry[$a]}
        a=$[$a+1]
        done
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值