Chinaunix首页 | 论坛 | 博客
  • 博客访问: 179065
  • 博文数量: 66
  • 博客积分: 1736
  • 博客等级: 上尉
  • 技术积分: 830
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-05 15:40
文章分类

全部博文(66)

文章存档

2014年(17)

2013年(2)

2012年(47)

我的朋友

分类: LINUX

2012-12-14 10:33:59

  Bash数组

  1.描述

  Bash的数组,其元素的个数没有限制。数组的索引由0开始,但不一定要

  连续(可以跳号)。索引也可以算术表达式。bash仅支持一维数组。

  1.1 declare

  名称:设置变量和属性(可以用来声明一个数组)

  用法:

  declare [-aAfFilrtux] [-p] [Name[=Value]...]

  选项:

  -f 显示函数名和函数定义

  -F 仅显示函数名

  下面是用来设置属性的选项

  -a 表示Name为一个索引数组

  -A 表示Name为一个关系数组

  -i 表述Name为一个整数

  -l 将Name的值转换为小写

  -u 将Name的值转换为大写

  -r 表示Name为一个只读变量

  -x 表示Name为输出变量(输出为全局变量)

  -t 表示Name具有'trace'属性

  使用'+'替代'-'来关闭指定的属性

  当用在一个函数内部时,declare等价local

  实例:

  declare -A myarray #声明一个关系数组myarray

  myarray[1]=val1

  myarray[item2]=val2

  1.2 数组的用法

  [1].建立数组

  格式:

  数组名[索引]=值

  ......

  例:

  A[0]=val1

  A[1]=val2

  A[2]=val3

  [2].引用数组的元素值

  格式:

  ${数组名[索引]}

  例:

  echo ${A[0]}

  [3].一次设置一个数组的多个元素的值

  格式:

  数组名=([索引]=val [索引]=val2 ...)或

  数组名=(val1 val2 val3 ...)

  实例:

  B=(1 2 3 4 5)

  B=([0]=1 [1]=2 [2]=3 [3]=4 [4]=5)

  [4].一次取出数组的所有元素

  格式:

  ${数组名[@]} (取出的每个元素以空白符隔开)

  ${数组名[*]} (取出的元素组成一个字符串)

  [5].获得数组的元素的个数

  格式:

  ${#数组名[@]} 或 ${#数组名[*]}

  [6].取得某个元素的长度

  格式:

  ${#数组名[索引]}

  [7].取消数组或数组元素的设置

  格式:

  unset 数组名

  unset 数组名[索引]

  或 ${#数组名[*]}

  [6].取得某个元素的长度

  格式:

  ${#数组名[索引]}

  [7].取消数组或数组元素的设置

  格式:

  unset 数组名

  unset 数组名[索引]

  1.3 mapfile

  名称:从标准输入中读取到一个索引数组中

  用法:

  mapfile [-n Count] [-O origin] [-s Count] [-t] [-u FD]

  [-C Callback] [-c Quantum] [Array]

  描述:

  从标准输入中读取并输出到一个数组中,也可以通过指定-u FD来从一个文件中读取

  若没指定数组名,则默认为MAPFILE

  选项:

  -n Count:最多读取Count行,若Count为0则表示读取所有行

  -O Origin:数组的索引从Origin开始,默认为0

  -s Count:忽略前Count行

  -u FD:从指定的文件描述符FD中读取,默认为从标准输入中读取

  -t:从读取的每一行后面移除换行符

  参数:

  Array :指定数组名,默认为MAPFILE

  实例:

  mapfile myarray < file.txt

  #将file.txt的内容保存为数组myarray.数组的每个元素为一行

 

更多精彩的文章尽在:

 
文章资料由新居网120平米装修效果图 栏目整理推荐。
 
阅读(570) | 评论(0) | 转发(0) |
0

上一篇:for

下一篇:echo

给主人留下些什么吧!~~