数组和变量之间的关系及如何灵活运用数组

什么是数组?
数组:存储多个元素的连续的内存空间,相当于多个变量的集合
什么是变量?
 变量即是存储单个元素的内存空间 
如果整个数组只有一个名字;数组名是数组的标识;也是数组所指向的存储多个元素的连续的内存空间开始地址的标识;
数组索引定义
从 0 开始(第一个数组元素);到 N 结束
引用某个数组元素时,数组名+【索引】
格式:${ARRAY_NAME[INDEX]} 必须用这样的格式,否则无法识别索引, ARRAY_NAME 会被当成变量或数组处理。
Bash-4 及之后的版本,支持自定义索引格式,而不仅仅是数字格式 此类数组称之为“关联数组”
声明数组的方法:
1. Declare -a NAME 声明索引数组
  Declare -A NAME 声明关联数组 
一次只赋值一个元素方法
ARRAY_NAME[INDEX]=value
一次赋值全部元素
ARRAY_NAME=(“VAL1” “VAL2” “VAL3”)
只赋值特定元素 
ARRAY_NAME=([0]=”VAL1” [3]=”VAL4”……)
只赋值特定元素
Read -a ARRAY_NAME

如何引用数组中的元素?
${ARRAY_NAME[INDEX]}
引用时,如果只给数组名,默认标识引用下标为 0 的元素
如何引用数组中所有元素?
${ARRAY_NAME[]}或者${ARRAY_NAME[@]}
引用数组中所有元素的个数
  ${#ARRAY_NAME[
]}或者${#ARRAY_NAME[@]}
引用数组中第一个元素的字符长度 
${#ARRAY_NAME}

如何将数组元素切片:
${ARRAY_NAME[@]:offset:number}
Offset: 要跳过的元素个数
  Number:要取出的元素个数
取偏移量之后的所有元素
${ARRAY_NAME[@]:offset

原创文章,作者:晓楠,如若转载,请注明出处:http://www.178linux.com/76738

(1)
晓楠晓楠
上一篇 2017-05-22
下一篇 2017-05-22

相关推荐

  • 马哥教育网络班第25期-第1周作业

    一、计算机的组成及其功能 计算机由硬件与软件组成 硬件     1、运算器                           &…

    Linux干货 2016-12-05
  • 安装Redmine

    Redmine是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放源码软件解决方案,它提供集成的项目管理功能,问题跟踪,并为多个版本控制选项的支持。虽说像IBM Rational Team Concert的商业项目调查工具已经很强大了,但想坚持一个自由和开放源码的解决…

    Linux干货 2016-12-01
  • Linux路由实验

    一    实验背景:路由器的功能是将不同网段的主机建立通信,本次试验是在使用linux主机当作路由器,完成主机间通信。如下图所示 二、实验环境:主机A和B为CentOS7.2,主机C和D为CentOS6.8,且C和D上分别都有两块网卡 三、实验步骤     注意:为避免干扰项,需将每台主机…

    Linux干货 2016-09-07
  • FHS文件结构

    我们在前面学习的过程中有了解到,linux的发现版有很多种类型,那么如果每个版本都有着自己的想法去配置文件应该放置的目录,那么将造成管理上的困扰,于是为了解决这个问题,就有了FHS标准。 1.1 FHS 结构 1.1.1 软件的概念 之前,我们提到过,一个完整的计算机系统应该有两部分组成,即:计算机系统=软件+硬件。没有软件的硬件,计算机只不过是一堆只会发热…

    Linux干货 2016-10-27
  • linux 基础3

    linux 基础3

    Linux干货 2018-03-25
  • sed的模式匹配用法探讨

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1405753 [root@sunsky Desktop]# cat sunsky a b c d e f [root@sunsk…

    Linux干货 2016-08-15