首页 > 其他 > 详细

array数组的使用

时间:2014-03-19 00:05:51      阅读:377      评论:0      收藏:0      [点我收藏+]

bash编程之数组:

   变量  :指的是内存中的一段地址空间。

   变量名:指的是变量的地址空间 起始的位置。

   数组  :在一片连续的地址空间中,可以存储同一类别但是不同取值的值,

           这些不同的值可以使用同一名字来使用它们,这个名字就是数组。


数组的引用:

   数组是有索引的,也叫做下标,用来表示数组中的不同值。

   例如数组的名字是array,而下标叫做index,所以表示方式是:array[index]

   下标index的取值默认从0开始。

   在引用数组时,如果没有指定下标(例如:array),默认指的就是array[0]


declare:

   -i    表示声明这是一个整数型变量。

   -A    表名这是一个数组。

         在bash中可以不进行声明,只不过声明后更明显。


数组的赋值方式:

   方法1:

         当所有的元素值都不为空时,可以这样按照顺序进行赋值:

           数组名=("元素1"  "元素2")

   方法2:

         当某些元素值为空时,可以直接指定下标对应的元素值:

           数组名=([0]="元素1"  [3]="元素2")

   方法3:

         对每个元素逐个的进行赋值:

           数组名[0]="元素1"

           数组名[3]="元素2"


引用数组中的元素值:

${array[index]} :这里类似于变量的引用,只不过必须加上花括号"{ }"和"[下标]"

   ${array[*]}     :这里使用"*"代替下标,表示引用数组中的所有元素。

   ${#array[*]}    :这里加上一个"#",用来显示数组中一共有多少个"非空"的元素

   ${#array[index]}:这样显示下标为[index]的元素一共有多少个字符。

   ${#array}       :这样显示下标为0的元素一共有多少个字符


关联数组:

   bash v4版本及以后支持。

   数组的下标可以使用字符串,也就是index不用使用0、1、2、3...这样的数字了,

   而可以使用例如first、one等这样字符串了。


数组的例子:

   一、把全班的人名字保存到数组中,随机挑选一个回答问题:

#!/bin/bash
#定义全班所有的人名到数组中
StudentName=("hadoop" "openstack" "apache" "nginx" "varnish" "squid")
#取得数组中人名的个数
StudentCount=${#StudentName[*]}
#对随机数进行取余运算,看最后余数是哪个
Suijishu=$[$RANDOM%$StudentCount]
#显示被选中的人
echo ${StudentName[$Suijishu]}


 二、对全班人的名字保存到数组,随机挑选2个人回答问题(隐形要求这两个人的名字不能重复

#!/bin/bash
#定义全班所有的人名到数组
StudentName=("hadoop" "openstack" "apache" "nginx" "varnish" "squid")
#取得数组中人名的个数
StudentCount=${#StudentName[*]}
#对随机数进行取余运算,取得随机的余数
Suijishu1=$[$RANDOM%$StudentCount]
Suijishu2=$[$RANDOM%$StudentCount]
#对第二次取得随机余数进行判断
while [ $Suijishu2 = $Suijishu1 ];do
        Suijishu2=$[$RANDOM%$StudentCount]
done
#利用前面的随机余数取得对应的用户名,然后保存至变量。
ONE=${StudentName[$Suijishu1]}
TWO=${StudentName[$Suijishu2]}
#显示用户名
echo $ONE $TWO





array数组的使用,布布扣,bubuko.com

array数组的使用

原文:http://caduke.blog.51cto.com/3365689/1379247

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