首页 > 代码库 > 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编程之数组