• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅谈shell 遍历数组的几种方法

    背景

    某天遇到一个问题,现象如下:第一种遍历正常打印元素,然而第二种遍历只会打印一个元素!

    #!/bin/bash
    # $1 代表文件目录
    # 执行 eg:
    #  sh your_shell.sh /user/lib/
     
    echo "开始时间:`date '+%Y-%m-%d %H:%M:%S'`"
    # 1、获取所有的 file
    files=`ls $1`
     
    # 2、定义 1个数组变量
    declare -a array_files01
     
     
    # 数组 index 初始化为 0
    m1=0
     
     
    # 遍历
    for ays in ${files}; do
    {
     # 获取数组长度
     num_1=${#array_files01[@]}
     
     # 添加元素到数组中, index 每次需要 +1
     array_files01[m1]=${ays};
     m1=`expr ${m1} + 1`;
     
     fi
    }
    done
     
    echo "结束分配数组时间:`date '+%Y-%m-%d %H:%M:%S'`"
    # 打印提示信息
    echo "1数组长度:${#array_files01[@]}"
     
    # 第一种遍历:正常
    for i in ${array_files01[@]}; do
     echo $i
    done 
     
    # 第二种遍历:不正常
    for i in ${array_files01}; do
     echo $i
    done 
    

    几种遍历数组的方法

    1、for 循环

    ################### 第一种 #######################
    for i in ${array[@]}
    #也可以写成for element in ${array[*]}
    do
    echo $i
    done
    
    ################## 第二种 ########################
    for i in ${array[*]}
    do
    echo $i ;
    done
     
    ################## 第三种 ########################
    for(( i=0;i${#array[@]};i++)) do
    #${#array[@]}获取数组长度用于循环
    echo ${array[i]};
    done;

    2、while 循环

    i=0 
    while [ $i -lt ${#array[@]} ] 
    #当变量(下标)小于数组长度时进入循环体
    do 
     echo ${ array[$i] } 
     #按下标打印数组元素
     let i++ 
    done 
    

    除了下标问题外,关于@与*在使用时也要注意,并不是完全等价,并且在被双引号包围时的解析有时也略有不同。

    到此这篇关于浅谈shell 遍历数组的几种方法的文章就介绍到这了,更多相关shell 遍历数组内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • linux shell 中数组的定义和for循环遍历的方法
    上一篇:shell产生随机数七种方法的实现
    下一篇:Shell数组添加元素及注意事项
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    浅谈shell 遍历数组的几种方法 浅谈,shell,遍历,数组,的,