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

什么是数组?
数组:存储多个元素的连续的内存空间,相当于多个变量的集合
什么是变量?
 变量即是存储单个元素的内存空间 
如果整个数组只有一个名字;数组名是数组的标识;也是数组所指向的存储多个元素的连续的内存空间开始地址的标识;
数组索引定义
从 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运维学习历程-第六天-Linux用户、组以及权限管理

    本章内容    Linux的安全模型    用户和组    用户和组管理命令    文件权限    默认权限    特殊权限    ACL访问控制 一:3A认证       &nb…

    Linux干货 2016-08-07
  • shell 脚本的编辑基础

          shell脚本是Linux运维工程师必须掌握的技能之一,shell脚本的使用让我们更好的操作Linux系统,方便了我们的执行。 一,编程基础 编程基本概念 编程逻辑处理方式:顺序执行,循环执行,选择执行 程序:指令+ 数据 shell 编程:过程式、解释执行 shell程序:提供了编程能力,解释执…

    Linux干货 2016-08-22
  • 文件处理工具系列(二):行编辑器sed

    1、sed介绍     sed(Stream EDitor),是一种行编辑工具,它一次处理一行内容。处理时,把当前匹配到的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令对这些数据做出相应的增删改查操作,处理完成后,默认输出至屏幕,而未被匹配到的行也将默认输出至屏幕。而原来的文件内容并没有发生改变,除…

    Linux干货 2016-08-11
  • Linux basics–part1

    一、计算机的组成及其功能 依据冯·诺依曼体系结构,计算机可分为五大部分,CPU的运算器和控制器、内存、输入、输出。 CPU运算器:计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存…

    Linux干货 2017-07-10
  • GREP EGREP的用法及正则表达式和扩展正则表达式简述

    egrep grep的使用方法 正则表达式及扩展表达式简述 使用事例   grep egrep都是文本搜索工具,可以把符合模式的行或字符显示出来,而这些模式grep一般使用正则表达式进行匹配,而egrep使用扩展正则表达式来进行匹配的。 grep及egrep的使用方法:           &nbs…

    Linux干货 2015-07-27
  • 马哥教育网络班21期+第8周课程练习

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 集线器:工作在物理层,对信号作放大处理,转发比特流,所有端口都是共享带宽都是一个冲突域,使用在小型局域网内。 网桥:早期的二层数据链路层设备,可以建立和维护MAC地址表,独享带宽,每个端口是一个冲突域,使用在小型局域网内。 交换机:工作在数据链路层,可以学习和维护MAC地址,之后…

    Linux干货 2016-08-05