数组:
    连续的多个独立内存空间,每个内存空间相当于一个变量
    数组元素:数组名+索引
        索引:从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个随机数,排序

bash数组操作-定义/初始化/赋值…的更多相关文章

  1. go 数组的定义和赋值

    package main import "fmt" func main() {     //字符数组定义     var str [2]string     str[0] = &q ...

  2. bash数组总结

    bash数组操作 bash支持两种数组,一种是索引数组,一种是关联数组 索引数组 数组的值类型是任意的,索引也未必一定要连续,当做列表理解更好 下面总结下索引数组,即列表: 1. 声明 declare ...

  3. java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢--配置JVM

    一. IntelliJ IDEA入门 1 快捷键和技巧 智能补全代码,比如只写首字母按回车: psvm+Enter :public stactic void main(String[] args) s ...

  4. Java基础(1)IntelliJ IDEA入门、常用快捷键和数组操作

    一. IntelliJ IDEA入门 1 快捷键和技巧 智能补全代码,比如只写首字母按回车: psvm+Enter :public stactic void main(String[] args) s ...

  5. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  6. [java学习笔记]java语言基础概述之数组的定义&常见操作(遍历、排序、查找)&二维数组

    1.数组基础 1.什么是数组:           同一类型数据的集合,就是一个容器. 2.数组的好处:           可以自动为数组中的元素从零开始编号,方便操作这些数据. 3.格式:  (一 ...

  7. C 语言字符数组的定义与初始化

    1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'} ...

  8. JavaScript jQuery 中定义数组操作及数组操作

    1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维 ...

  9. Halcon学习(三)赋值与数组操作

    assign : 对数据赋值,对数组的初始化.但不能对数组中的某一个值进行赋值. 举例:Tuple1 := [1,0,3,4,5,6,7,8,9]    // 对数组进行初始化 Val := sin( ...

随机推荐

  1. 看懂物联网fr

        看懂物联网 2015-10-11 物联网世界 1.第三次IT浪潮 互联网时代的特征是信息驱动了生产力,无论众包.订单式生产这些理论:还是B2C.O2O各类业务模式:归根结底,是信息优化了生产关 ...

  2. 在前端解決顯示null值一例

    用.net core2.1 api返回的JSON里包含null值,前端直接顯示出來了,影響閱讀, 用以下語句將null轉換為空字符串: // Build html. html += "< ...

  3. QrenCode : linux命令行下生成二维码图片

    原文链接:http://wowubuntu.com/qrencode.html # 作者:riku/ / 本文采用CC BY-NC-SA 2.5协议授权,转载请注明本文链接. 对于二维码大家应该并不陌 ...

  4. cf519D. A and B and Interesting Substrings(前缀和)

    题意 给出$26$个字母对应的权值和一个字符串 问满足以下条件的子串有多少 首尾字母相同 中间字母权值相加为0 Sol 我们要找到区间满足$sum[i] - sum[j] = 0$ $sum[i] = ...

  5. iPad开发简单介绍

    iPad开发最大的不同在于iPhone的就是屏幕控件的适配,以及横竖屏的旋转. Storyboard中得SizeClass的横竖屏配置,也不支持iPad开发. 1.在控制器中得到设备的旋转方向 在 i ...

  6. 为什么HDFS的副本数通常选择3?

    HDFS采用一种称为机架感知的策略来改进数据的可靠性.可用性和网络带宽的利用率. 在大多数情况下,HDFS的副本系数是3,HDFS的存放策略是一个副本存放在本地机架节点上,另一个副本存放在同一机架的另 ...

  7. Eclipse中添加MyEclipse插件

    下载准备: 下载myeclipse7.0:http://downloads.myeclipseide.com/downloads/products/eworkbench/7.0M1/MyEclipse ...

  8. ucos-ii核心算法分析(转)

    μC/OS-Ⅱ是一种免费公开源代码.结构小巧.具有可剥夺实时内核的实时操作系统.其 内核提供任务调度与管理.时间管理.任务间同步与通信.内存管理和中断服务等功能.适合小型控制系统,具有执行效率高.占用 ...

  9. [论文理解] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

    MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications Intro MobileNet 我 ...

  10. Ubuntu系统Apache 2部署SSL证书

    几天前用Apache 2部署了一个静态网页,但通过域名访问时Google提示“不安全”,经了解,原来是缺少证书. 什么是SSL证书? SSL 是指安全套接字层,简而言之,它是一项标准技术,可确保互联网 ...