• bash数组操作-定义/初始化/赋值…


    数组:
        连续的多个独立内存空间,每个内存空间相当于一个变量
        数组元素:数组名+索引
            索引:从0开始编号
           
        声明数组:
            declare -a ARRAR_NAME
                declare -a test
                test[0]
                test[1]
        关联数组:
            declare -A ARRAY_NAME
       
        支持稀疏格式
       
        数组元素的赋值:
            1)一次只赋值一个元素
                ARRAY[index]=VALUE
                a[0]="hello"
            2)一次赋值全部元素
                ARRAY=("mon","tue","wed")
            3)指定索引进行赋值
                ARRAY=([0]="sun" [1]="mon" [5]="fri")
            4) read -a ARRAY
       
        引用数组元素:${ARRAY[index]}
            对于变量引用而言${}为标准用法
       
        数组的长度:
            ${#ARRAY[*]}, ${#ARRAY[@]}
           
            练习1:写一个脚本,生成10个随机数,保存至数组rand中
                rand[$i]=$RANDOM
               
                #!/bin/bash
                #
                for i in {0..9}; do
                    rand[$i]==$RANDOM
                    [ $[$i%2] -eq 0 ] && echo "$1:${rand[$i]}" #判断是否为偶数,且打印下标及及其值
                done
               
            练习:写一个脚本:
                定义一个数组,数组元素为/var/log目录下,所有以.log结尾的文件的名字;
                而后显示其索引为奇数的元素的内容;
               
                #!/bin/bash
                #
                declare -a files #可以不定义长度
                files=(/var/log/*.log)
               
                for i in `seq 0 $[${#files[*]}-1]`; do #$[]中是算数表达式
                    [ $[$i%2] -eq 0 ] && echo "$1:${files[$i]}" #判断是否为偶数,且打印下标及及其值
                done
           
            从数组中挑选某元素
                ${ARRAY[@]:offset:number}
                   
                切片:
                    offset: 偏移过去的元素的个数
                    number: 取出的元素的个数
                   
                ${ARRAY[@]:offset}
                    取出指定偏移量之后的所有元素;
                   
                ${ARRAY[@]}或者${ARRAY[*]}
                    取出所有元素;
                   
                例如:
                    对于:week=(mon tue wed thu fri sat sun)
                    ${week[@]:3:2}结果为:thu fri
                    ${week[@]:3}结果为:thu fri sat sun
                    ${week[@]}结果为:mon tue wed thu fri sat sun
                    ${week[*]}结果为:mon tue wed thu fri sat sun
           
            向数组中追加元素:但数组必须是非稀疏格式
                week
                week[${#ARRAY[@]}]:追加元素时,下标可以用数组的长度代替
               
            从数组中删除元素,删除的不是元素的值,而是这个元素,后边的往前移
                unset ARRAY[index]
               
            关联数组:
                可自定义任意字符串当作索引
                    declare -A week
                    week=([mon]="Monday" [tue]="Tuesday")
           
            练习:生成10个随机数,排序

  • 相关阅读:
    mybatis绑定错误-- Invalid bound statement (not found)
    JAVA MyBatis配置文件用properties引入外部配置文件
    JAVA错误提示:The operation is not applicable to the current selection.Select a field which is not declared as type variable or a type that declares such fields.
    MySql5.5安装步骤及MySql_Front视图配置
    Failed to load AppCompat ActionBar with unknown error
    android:整理drawable(余下的)(三)
    android:整理drawable(shapdrawable)(二)
    与drawable的较量(一)
    gradle与android studio 关系及gradle配置
    键盘优雅弹出与ios光标乱飘解决方案
  • 原文地址:https://www.cnblogs.com/yajing-zh/p/4924116.html
Copyright © 2020-2023  润新知