数组

来源:互联网 发布:洗衣软件 编辑:程序博客网 时间:2024/06/04 00:44

一、数组概念

所谓数组,是无序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。 这些无序排列的同类数据元素的集合称为数组。<摘自百度>

二、数组使用方法
1、赋值
(1)一次只赋值一个元素

ARRAY_NAME[INDEX]=VALUE

(2)一次赋值全部元素

ARRAY_NAME=("VAL1" "VAL2" "VAL3"...)

(3)只赋值特定元素

ARRAY_NAEM=([0]="VAL1" [3]="VAL2"...)

(4)交互式数组值对赋值

read -a ARRAY

2、引用变量的方法
(1)引用数组元素

${ARRAY_NAME[INDEX]}

注意:省略[INDEX]表示引用下标为0的元素。
(2)引用数组中所有元素

${ARRAY_NAME[*]}${ARRAY_NAME[@]}

(3)数组中元素的个数

${#ARRAY_NAME[*]}${#ARRAY_NAME[@]}

(4)删除数组中的某元素

unset ARRAY[INDEX]

(5)删除整个数组

unset ARRAY

3、数组数据处理
(1)引用数组中的元素

数组切片:${ARRAY[@]:offset:number}    offset:要跳过的元素个数    number:要取出的元素个数取出偏移量之后的所有元素    ${ARRAY[*]:offset}

(2)向数组中追加元素
ARRAY[${#ARRAY[*]}]=VALUE
注意:数组中元素个数与数组引用下标少1。
4、关联数组

declare -A ARRAY_NAME #定义为关联数组ARRAY_NAEM=([idx_name]=val [idx_name]=val2)declare -a 查看所有定义数组

注意:关联数组必须事先要声明。
示例:

[root@localhost~]#test[0]=hello #一次赋一个值[root@localhost~]#test=([2]=hi [3]=boy) #只赋特定的值[root@localhost~]#test1=(haha xixi heihei ) #一次赋值全部元素[root@localhost~]#read -a test2#交互式赋值 [root@localhost~]#declare -a #查看所有的数组declare -a BASH_ARGC='()'declare -a BASH_ARGV='()'declare -a BASH_LINENO='()'declare -a BASH_SOURCE='()'declare -ar BASH_VERSINFO='([0]="4" [1]="1" [2]="2" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")'declare -a DIRSTACK='()'declare -a FUNCNAME='()'declare -a GROUPS='()'declare -a PIPESTATUS='([0]="0")'declare -a test='([2]="hi" [3]="boy")'declare -a test1='([0]="haha" [1]="xixi" [2]="heihei")'declare -a test2='([0]="I")' [root@localhost~]#echo ${test[*]} #显示数组所有元素hello hi boy[root@localhost~]#echo ${#test[*]} #显示元素个数3[root@localhost~]#unset test[2] #删除数组中某个元素[root@localhost~]#echo ${test[*]} hello boy[root@localhost~]#unset test #删除某个数组所有元素[root@localhost~]#echo ${test1[*]:1:1} #数组切片[root@localhost~]#test1[${test1[*]}]=joah #向数组中追加元素

示例:生成10个随机数保存于数组中,并找出其最大值和最小值。

#!/bin/bash#declare -a randi=0declare -i max=0declare -i minwhile [ $i -lt 10 ];do    rand[$i]=$RANDOM    [ $i -eq 0 ] && min=rand[$i]    [ ${rand[$i]} -gt $max ] && max=`echo ${rand[$i]}`    [ ${rand[$i]} -lt $min ] && min=`echo ${rand[$i]}`    let i++doneecho Max is $maxecho Min is $min
原创粉丝点击