首页 > 编程语言 > 详细

(034) Linux之数组

时间:2015-03-23 23:40:46      阅读:365      评论:0      收藏:0      [点我收藏+]

十年运维系列之基础篇 - Linux

作者:曾林 

联系:1494445739@qq.com

网站:www.jplatformx.com

版权:文章未经同意请勿转载


一、引言

  在上一节中,我们了解了shell如何操作字符串和数字。到目前为止,我们所接触到的数据类型在计算机科学领域被称为标量变量,也就是说,该变量包含一个单一的值。

  在本章中,我们将会学习一种包含多个值的数据结构——数组。事实上,数组几乎是所有程序设计语言的一大特点。尽管shell对数组的支持有限,但它对解决程序设计问题是非常有帮助的。

 

二、什么是数组

  数组是可以一次存放多个值的变量,数组的组织形式如同表格一样。下面以电子表格为例。一个电子表格就像一个二维数组一样。它是由行和列组成的,根据行和列的地址可以在电子表格里标识每一个独立单元的位置。数组也是以这种方式工作的。数组中的单元叫做元素,并且每个元素中含有数据。使用一种叫做索引或是下标的地址就可以访问一个独立的数组元素。

  大多数的程序设计语言支持多维数组。电子表格就是多维数组的一个实例,该数组是由宽度和高度两个维度组成的二维数组。尽管最经常使用的是二维和三维数组,但是很多语言支持任意维数的数组。

  bash中的数组是一维的。可以将它想象成只有一列的电子表格。尽管有这个限制,但是它们还是有很多的用处。

 

三、创建一个数组

  命名数组变量同命名其他bash变量一样,当访问数组变量时可以自动创建它们。实例如下:

技术分享

  这里我们看到的是赋值和访问数组元素的例子。特别要注意的是在第二条命令中使用花括号是为了阻止shell在数组元素名里试图扩展路径名。

  同时,使用declare命令也可以创建数组,如下所示:

declare -a a

  这是使用选项-a和declare创建数组a的实例。

 

四、数组赋值

  赋值的方式可以有两种。使用下面的语法可以赋单一值。

name[subscript]=value

  这里的name是数组名,并且subscript是大于或等于0的整数(或算术表达式)。要注意的是,数组的第一个元素是0,而不是1。value是赋给数组元素的字符串或是整数。

  使用下面的语法可以赋多个值。

name=(value1 value2...)

  这里的name是数组名,并且将value1 value2...等值依次赋予从元素0开始的数组元素。例如,如果想要将一星期中天数的缩写赋给数组days,那么我们可以像下面这样赋值。

days=(Mon Tue Wed Thu Fri Sat Sun)

  也可以通过为每个值指定一个下标来给指定元素赋值也是可行的。

days=([0]=Mon [1]=Tue [2]=Wed [3]=Thu [4]=Fri [5]=Sat [6]=Sun)

 

五、数组操作

  有很多常见的数组操作。比如删除数组、确定数组大小和排序等在脚本中有很多应用。

 

1. 输出数组的所有内容

  我们可以使用下标“*”和“@”来访问数组中的每个元素。对于定位参数来讲,符号“@”较之更有用。例证如下:

技术分享  

  我们创建了数组animals,并使用3个双单词字符串为其赋值,然后执行4个循环以便观察单词拆分对数组内容的影响。如果对符号${animals[*]}和${animals[@]}加以引用,就会得到不同的结果。符号“*”将数组所有内容放在一个字中,而符号“@”将数组所有内容使用3个字来显示数组的真实内容。

 

(034) Linux之数组

原文:http://www.cnblogs.com/jplatformx/p/4361255.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!