Shell脚本编程——数组(array)
数组与变量的区别变量:存储单个元素的内存空间
数组:存储多个元素的连续的内存空间,相当于多个变量的集合
数组=数组名+索引
索引:编号从0开始,属于数值索引
注意:索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash4.0版本之后开始支持
bash的数组支持稀疏格式(索引不连续)
定义数组
declare -a ARRAY_NAME:普通数组
declare -A ARRAY_NAME: 关联数组
数组元素的赋值:
(1) 一次只赋值一个元素;
ARRAY_NAME=VALUE
weekdays="Sunday"
weekdays="Thursday"
(2) 一次赋值全部元素:
ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)
(3) 只赋值特定元素:
ARRAY_NAME=(="VAL1" ="VAL2" ...)
(4) 交互式数组赋值(只能用于普通数组)
read -a ARRAY
引用数组
引用数组元素:${ARRAY_NAME}
注意:省略表示引用下标为0的元素
数组的长度(数组中元素的个数):
${#ARRAY_NAME
[*]}
${#ARRAY_NAME[@]}
数组数据处理
引用数组中的元素:
所有元素:${ARRAY
[*]},${ARRAY[@]}
数组切片:${ARRAY[@]:offset:number}
offset: 要跳过的元素个数
number: 要取出的元素个数
取偏移量之后的所有元素:${ARRAY[@]:offset}
向数组中追加元素:ARRAY[${#ARRAY
[*]}]
删除数组中的某元素,将会形成稀疏格式:unset ARRAY
关联数组:declare -A ARRAY_NAME
ARRAY_NAME=(='val1' ='val2‘...)
应用实例
1,使用数组保存10个随机数,并找出最大什与最小值
示例代码:
# cat arrayrandom.sh
#!/bin/bash
#Author:wangjun
#Contact QQ:183530300
#Version:2.0
#Create time:2016-08-23 10:33:38
#Description:Compares the> declare -a array_random
declare -i maxrandom=0
declare -i minrandom=32767
for I in {0..9};do
array_random[$I]=$
echo ${array_random[$I]}
if [[ ${array_random[$I]} -gt $maxrandom ]];then
maxrandom=${array_random[$I]}
elif [[ ${array_random[$I]} -lt $minrandom ]];then
minrandom=${array_random[$I]}
fi
done
echo Maxrandom is : $maxrandom
echo Minrandom is : $minrandom
# arrayrandom.sh
31892
30901
16560
226
7987
2082
5756
23992
28530
21832
Maxrandom is : 31892
Minrandom is : 226
页:
[1]