bash数组基础
数组:数据结构,
数据序列:连续的多个数据,可以使用索引获取相关元素
声明数组:declare -a arrayName
初始化:各元素间使用空白字符分隔
arrayName=('a' 'b' 'c')
arrayName=([index]='a' [index]='b')
arrayName[0]='a' ; arrayName[1]='b'
获取数组中有效元素的个数:${#arrayName[@]},${#arrayName[*]}
获取某一元素中字符串的长度:${#arrayName[index]} (index=0,1,2)
bash伪随机数生成器:$RANDOM
叫号小脚本
#!/bin/bash # students=('a' 'b' 'c' 'd' 'e' 'f' 'g') for i in {1..3};do pick=$[$RANDOM%${#students[@]}] echo ${students[$pick]} unset students[$pick] students=(${students[@]}) done
用数组实现冒泡排序的小脚本
#!/bin/bash # number=(5 6 7 4 3 11 9) for i in `seq 0 $[${#number[@]}-1]`;do dbnumber=${number[$i]} for u in `seq $[$i+1] $[${#number[@]}-1]`;do if [ $dbnumber -lt ${number[$u]} ];then continue else sourcenumber=$dbnumber dbnumber=${number[$u]} number[$i]=$dbnumber number[$u]=$sourcenumber fi done done echo ${number[@]
#############################################
使用关联数组前应该先声明 declare -A array
然后就可以像使用普通数组一样使用关联数组了,如下所示:
- array["jim"]=158
- array["amy"]=168
或者直接使用内嵌“索引-值”列表法:
- array=(["jim"]=158 ["amy"]=168)
遍历array:
- for key in ${!array[*]}
- do
- echo $key
- done
使用下标遍历array:
- for i in "${!array[@]}"
- do
- echo ${array[$i]}
- done
其他语法如下:
- echo ${!array[*]} #取关联数组所有键
- echo ${!array[@]} #取关联数组所有键
- echo ${array[*]} #取关联数组所有值
- echo ${array[@]} #取关联数组所有值
- echo ${#array[*]} #取关联数组长度
- echo ${#array[@]} #取关联数组长度