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

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

相关推荐

  • 【推荐】Linux 简单部署LAMP

    Linux 简单部署LAMP: 实验环境: 1、主机系统Centos6.7_X86_64 2、DNS&CA:192.168.3.10 3、LAMP安装方式为rpm 4、主机IP:192.168.3.11提供web站点:     http://wp.neolinux.com     &nbsp…

    Linux干货 2016-06-22
  • 习题

    1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符 2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 3、在/root/install.log每一行行首增加#号 4、在/etc/fstab文件中不以#开头的行的行首增加#号 5、处理/etc/fstab路径,使用sed命令取出其目录名和基…

    Linux干货 2016-08-10
  • LVM

    LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地…

    Linux干货 2016-12-17
  • linxu通配符

    通配符 globbing globbing:文件名通配(整体文件名匹配,而非部分) 匹配模式:元字符 *:匹配任意长度的任意字符 ab*:ab开头的单词 *ab*:包含ab的单词 *ab:ab结尾的单词 *a*b*:包含a、b的单词 ?:匹配任意单个字符 ab?:ab开头的三个字符的单词 ??ab:ab结尾四个字符的单词 a?b:a开头、b结尾三个字符的单词…

    Linux干货 2018-03-11
  • 自用vim环境参数设置

    基本显示设置 set nu mber 显示行号 syntax on 语法高亮 set cursorline 用浅色高亮当前行 set ruler 显示标尺 set showcmd 输入的命令显示出来,看的清楚些 set cmdheight=1 命令行(在状态行下)的高度,设置为1 set tabst…

    Linux干货 2017-04-24
  • Linux运维之路-Linux基础学习二

    Linux系统的一切皆文件思想会帮助我们学习

    2017-11-18