zoukankan      html  css  js  c++  java
  • 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个随机数,排序

  • 相关阅读:
    剑指offer--03.从尾到头打印链表
    剑指offer--02.替换空格
    剑指offer--01.二维数组中的查找
    JAVA日记之mybatis-3一对一,一对多,多对多xml与注解配置
    SpringBoot 2.x 自定义拦截器并解决静态资源访问被拦截问题
    springboot项目WEB-INF 目录 jsp页面报404
    Spring Boot 配置拦截器方式
    通过idea创建Maven项目整合Spring+spring mvc+mybatis
    idea创建maven项目
    PLSQL操作Oracle创建用户和表
  • 原文地址:https://www.cnblogs.com/yajing-zh/p/4924116.html
Copyright © 2011-2022 走看看