码迷,mamicode.com
首页 > 编程语言 > 详细

[9-13]Shell系列8——数组

时间:2015-09-23 01:23:06      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:数组

本文旨在复习Shell脚本编程中数组的定义和赋值、读取数组、以及获取数组的长度

知识储备


  • 数组:连续的多个独立的内存空间,每个内存空间相当于一个变量

  • 在逻辑上,我们看到的数组是“连续的”,但是映射到真实物理内存空间上是“杂乱的

  • bash支持一维数组(不支持多维数组),并且没有限定数组的大小。

  • 数组2元素:数组名[索引],依据索引的不同可以分为以下2种

技术分享

数组定义和赋值


Shell中,用括号来表示数组,数组元素用“空格”符号分割开。

定义数组的一般形式为:

1


array_name=(value1 value2 ... valueN)

赋值方式

(1)一次赋值一个元素

1


array[index]=value

(2)一次复制全部元素

1


array=("val1" "val2" ...)

(3)指定索引进行赋值

1


array=([0]="val1" [3]="val2")

(4)从用户交互式输入赋值

1


read -a array


读取数组[引用数组]


读取数组指定索引的元素值的一般格式是:

1


${array[index]}

还可以一次读取所有数组中元素

1
2


${array[*]}
${array[@]}

例1:输入5个数字,存入数组,引用该数组倒序输出这5个数字

代码实现

1
2
3
4
5
6
7
8
9
10
11


#!/bin/bash
for i in $(seq 0 4)
do 
    
read -p "Enter the 5 nums: " num
    Numarray[$i]=$num
done

for q in $(seq 4 -1 0)
do 
    echo ${Numarray[$q]}
done

技术分享


获取数组长度


获取数组长度分为获取数组元素个数,还可以获取指定索引元素值的长度

获取数组元素的个数,一般格式为:

1
2
3


length=${#array[@]}
# 或者
length=${#array[*]}

例1:请注意#千万不能省略,看下面这个例子

技术分享

请注意:当#号省略后,就变成了将数组所有元素复制给变量length,如果要打印个数请记得#


获取指定索引数元素值长度,一般格式为:   

1


length=${#array[index]}


例2:获取上述例子中第二个元素color的长度值

技术分享


本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1697256

[9-13]Shell系列8——数组

标签:数组

原文地址:http://bluebox.blog.51cto.com/8852456/1697256

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!