首页 > 代码库 > shell编程之数组

shell编程之数组

数组

什么数组?

数组是将多个储存单元连续储存在一起的集合。在linux中,数组中的每一个储存单元,我们叫做数组元素。默认情况下,每一个数组元素的变量类型为字符型。因此,不同类型的数据也可以放在同一个数组里。数组具有有序性。

 

数组的定义

declare -a  ARRAY_NAME

ARRAY_NAME为数组名

 

数组的赋值

赋值方法一:

ARRAY_NAME[INDEX]=VALUE

INDEX为下标索引,默认从0开始

例如:

declare -a  xsl

xsl[0]=10

 

赋值方法二:

ARRAY_NAME=(VALUE1 VALUE2 VALUE3...)

多个值之前用空格隔开

它们的下标索引从0开始,依次向后递增

例如:

xsl=(1991  03  26  "hello baby" nice)

如果字符串中有空格,使用双引号引起来

 

赋值方法三:

ARRAY_NAME=([0]=VALUE1 [1]=VALUE2 [5]=VALUE5)

使用此赋值方法,缺省的值为空

 

显示数组中的元素值

${ARRAY[INDEX]}

ARRAY为数组名,INDEX为索引下标

 

计算数组中的元素的个数

${#ARRAY[*]}和${#ARRAY[@]}可以计算出数组中的非空元素的个数

${#ARRAY[INDEX]}可以显示指定元素的字符长度

${#ARRAY}和${#ARRAY[0]}都可以显示第一个元素的字符长度

 

实例一:定义一个数组xsl=([0]=‘hello nice‘ [1]=11 [5]=window)

1、显示第一个元素和第二个元素的值

2、显示第一个元素、第二个元素和第三个元素的字符长度

3、显示这个数组的非空元素的个数

[root@localhost ~]# xsl=([0]=‘hello nice‘ [1]=11 [5]=window)

###要求1###
[root@localhost ~]# echo ${xsl[0]}
hello nice
[root@localhost ~]# echo ${xsl[1]}
11

###要求2###

[root@localhost ~]# echo ${#xsl[0]}
10
[root@localhost ~]# echo ${#xsl[1]}
2

[root@localhost ~]# echo ${#xsl[2]}
0

###要求3###

[root@localhost ~]# echo ${#xsl[*]}
3
[root@localhost ~]# echo ${#xsl[@]}
3

 

实例二:随机生成10个随机数并保存在数组sz里,并找出这个数组的最大值

 [root@localhost ~]# cat shuzhumax.sh
#!/bin/bash
declare -a sz
for I in {0..9};do
 sz[$I]=$RANDOM
 echo -n  "${sz[$I]} " 
done
echo
MAX=${sz[0]}
for I in `seq 1 9`;do
 if [ $MAX -lt ${sz[$I]} ] ;then
  MAX=${sz[$I]}
 fi
done
echo $MAX
[root@localhost ~]# bash shuzhumax.sh
18900 16884 4645 11709 7683 8855 12373 22226 26131 28261
28261
[root@localhost ~]#

 

 

 

 

本文出自 “linux学习之路” 博客,请务必保留此出处http://xslwahaha.blog.51cto.com/4738972/1573883

shell编程之数组