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

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

相关推荐

  • 深入Php底层,用c为php编写拓展

    1.前言              随着lamp/lnmp架构的流行,Php语言越来越得到广泛的使用。php语言在表现层有着非常优异的表现,部署方便,开发迅速。但Php语言也有着天生短板以及局限性—-对多线程以及多进程的支持不甚如意,以及…

    Linux干货 2016-10-29
  • Linux系统启动过程中grub故障与修复(一)

    GRUB 是引导装入器 — 它负责装入内核并引导 Linux 系统。GRUB 可以引导多种操作系统,如Linux、 DOS、 Windows 。 GRUB共分为三个阶段:stage1主要负责BIOS和GRUB之间的交接,载入存放于各个分区中的开机文件;stage1.5是连接stage1和stage2之间的通道,起着过渡的作用,负责识别stage2所在/bo…

    2017-09-03
  • 如何安装VMware Workstation

    1、打开安装包,直接点击“下一步” 2、选择接受条款,单击“下一步” 3、选择安装路径,单击“下一步” 4、单击“下一步”,也可以勾选掉两个选项   5、单击“下一步”   6、点击“安装”   7、完成安装  

    2017-07-11
  • Linux 作业

    1.       描述计算机的组成及其功能。 答:CPU、I/O、存储器; CPU:由运算器和控制器组成;运算器主要功能是对数据进行各种运算,除了进行常规计算外还能进行逻辑运算以及数据的比较、移位等操作。控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步…

    Linux干货 2016-10-29
  • N26_第三周

    1、列出当前系统上所有已经登录的用户的用户名。同一个用户多次登录,只显示一次 [root@node1 ~]# who |cut -d ‘ ‘ -f 1 | sort-u root zhh   2、取出最后登录到当前系统的用户的相关信息 [root@node1 ~]# id `last | head -1 | cut -d&#…

    Linux干货 2017-05-26
  • 配置Nginx作为反向代理服务器

    配置Nginx作为反向代理服务器      一、nginx作为反向代理的工作模型: 1、nginx作为反向代理的工作模型       nginx工作在应用层,其能理解并可以提取出http请求报文中的首部信息中的请求方法、url、http协议版本等信息。   &…

    Linux干货 2016-10-29