900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > linux中利用脚本编写数组 shell脚本编程之数组

linux中利用脚本编写数组 shell脚本编程之数组

时间:2020-05-14 12:51:25

相关推荐

linux中利用脚本编写数组 shell脚本编程之数组

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。