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

什么是数组?
数组:存储多个元素的连续的内存空间,相当于多个变量的集合
什么是变量?
 变量即是存储单个元素的内存空间 
如果整个数组只有一个名字;数组名是数组的标识;也是数组所指向的存储多个元素的连续的内存空间开始地址的标识;
数组索引定义
从 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 20:32
下一篇 2017-05-22 20:55

相关推荐

  • N22-℡浮生.若夢 ╮第七周作业

    1、创建一个10G分区,并格式为ext4文件系统; (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; ~]# mke2fs -t mkfs.ext4 -b 2048 -L MYDATA -m 2 /…

    Linux干货 2016-11-14
  • 那些年我们一起追过的缓存写法(二)

    原文出处: 蘑菇先生   上次主要讨论缓存读写这块各种代码实现。本篇是就上次的问题接着来,继续看那些年我们各种缓存用法。 一:缓存预热 上次有同学问过。在第一次加载时,我们的缓存都为空,怎么进行预热。 单机Web情况下,一般我们使用RunTimeCache。相对于这种情况下: 1:我们可以在启动事件里面刷新 1 2 3 4 vo…

    Linux干货 2015-03-04
  • N26-第七周作业-邢岩

    马哥门徒-N26-邢岩      今天看了一本书《运维前线:一线运维专家的运维方法、技巧与实践》,有一张运维全平台规划体系如下:      看完这张图,瞬间觉得自动化运维真的是很庞大精深,我只是在运维这片海洋的岸边,刚刚迈入一只脚步而已,究竟什么是山,什么是水,还不得而知。就让我化身一条小鱼,在这片…

    2017-03-11
  • 关于生命中的根

    关于生命中的根    擦干心中的血和泪痕    留住我们的根 关于生命中的根 鸿蒙初辟,万物生于根 寻根之旅 根就是根 我即为根 路在何方 鸿蒙初辟,万物生于根    自linux老祖Torvalds创根之始至今,根一直为linux之本,而FHS(Filesystem Hierarchy Stand…

    Linux干货 2016-10-27
  • 第四周 博客作业

    grep useradd cp

    Linux干货 2017-12-28
  • Centos 7 快速进入图形界面

    Centos 7 快速进入图形界面.pdf

    系统运维 2016-04-05