Bash Shell之数组简介
一、数组基本概念
数组是内存中的存储空间,连续的多个存储单元;bash中只支持一维数组,支持稀疏格式 ,参数个数没有限制。
二、数组基本语法格式
1、声明一个数组
declare -a array 其实不用声明,按数组方式直接赋值给变量即可
2、表示方式:数组名+索引
索引的表示方式:数字索引:a[index]。例如:a[0], a[1]
bash 4.0以后支持关联数组.用declare -A指明是关联数组例如:a[hello], a[hi]
在引用是必须使用{}。例如${a[0]}
3、数组赋值:
一次对多个元素赋值。例如:a=(red blue yellow green)
按索引进行赋值。例如:a=([0]=green [3]=red [2]=blue [6]=yellow)
命令替换赋值。例如:logs=(/var/log/*.log)
用户输入赋值。例如:read -a c,赋值后用echo ${c[0]}查看
4、数组访问
echo ${#a[i]}获取这个数组中第i个小标的元素值
echo ${#a[*]}或echo ${#a[@]} :获取这个数组中数组元素的总个数。
5、从数组中挑选元素
${ARRAY[@]}: 取出所有元素。例如:echo ${a[@]}
${ARRAY[@]:offset:number}。例如:echo ${a[@]:1:1}
offset: 偏移的元素个数
number: 取出的元素的个数
${ARRAY[@]:offset}:取出偏移量后的所有元素 。例如:echo ${a[@]:1}
6、向数组复制和追加元素:
把数组中的个数当做该数组的下标。
declare -a mylogs
tmp=${#mylogs[@]}
mylogs[$tmp]="dasd"
删除数组用的元素:unset a[i] 删除所有原始unset a[*] 或 unset a[@]
数组复制:b[$index]=${a[$i]}
三、实例解析:
1、写一个脚本,生成10个随机数,保存至数组中;而后显示数组下标为偶数的元素(或者将偶数元素赋值给一个新的数组并显示);
2、 生成10个随机数,升序排序
注意:在Bash Shell数组互换时要注意其格式;赋值给temp和a[$i]的方式不一样;
3、打印九九乘法表
原创文章,作者:wxdz_2004(古雨秋),如若转载,请注明出处:http://www.178linux.com/4190