bash仅支持一维数组,类型声明:
declare -i : 表示数值
declare -a :表示普通数组(默认,可不用声明类型)
declare -A :表示关联数组(必须声明类型,bash需4.0以上版本才支持,可通过bash –version查看版本)
一、普通数组(用数字为下标)
1.1数组赋值(修改值)方式
a).单个元素赋值
a[0]=1
a[2]=2
b).一次对全部元素赋值
a=(123)
c).按索引进行赋值
a=([0]=apple[1]=banana[2]=orange)
d).命令替换
a=(/var/log/*.log)
e).用户输入
read-aarray
1.2数组长度
echo${#array[@]}数组的长度(建议查看方式)
echo${#array[*]}数组的长度
用以下示例来区分两者区别:
执行结果如下($*用双引号引起来后,所有的参数是一个串,查看所有元素时建议用$@):
1.3其它常用
echo{array[2]}下标为2的元素值(元素从0开始计数)
array2=(${array1[@]})数组复制
echo${!array[@]}获取所有的下标
二、关联数组(可用非数字字符做下标,普通数组功能在关联数组下都可实现)
关联数组需事先声明,方法为:declare -A array
示例:
[root@localhost~]#declare-Atest
[root@localhost~]#test=([apple]=a[banana]=b[orange]=o)
[root@localhost~]#echo${test[@]}
oab
[root@localhost~]#echo${!test[@]}
orangeapplebanana
[root@localhost~]#
三、数组切片
${array[@]:offset:number}offset:偏移的元素个数number:取出的元素的个数
${array[@]:offset}取出偏移量后的所有元素
${array[@]}取出所有元素
示例:
[root@localhost~]#array=(123)
[root@localhost~]#echo${array[@]}
123
[root@localhost~]#echo${array[@]:1}
23
[root@localhost~]#echo${array[@]:1:1}
2
四、删除数组元素
unset ARRAY[index]
示例:
[root@localhost~]#echo${array[@]}
123
[root@localhost~]#unsetarray[1]
[root@localhost~]#echo${array[@]}
13
五、综合示例
示例1:写一个脚本,生成10个随机数,保存至数组中;而后显示数组下标为偶数的元素;
方法一:
方法二:
示例2:复制一个数组中下标为偶数的元素至一个新数组中
示例3:生成10个随机数,升序排序
示例4:打印九九乘法表
原创文章,作者:老鼠上了猫,如若转载,请注明出处:/7109