首页 / LINUX / Linux运维学习之数组
Linux运维学习之数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux运维学习之数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2174字,纯文字阅读大概需要4分钟。
内容图文
![Linux运维学习之数组](/upload/InfoBanner/zyjiaocheng/1214/b11b794e8f7042fc896a8a82242ca42e.jpg)
2107/9/15 周五
今天我给大家分享一波数组,那么数组是什么呢? 数组是存储多个元素的连续的内存空间,相当于多个变量的集合,数组包括数组名和索引,当我们新建了一个数组之后就可以使用其中的索引来搞一波事情,既然有索引有编号,数组又是连续的,那么无序的数组就叫做稀疏数组,而且我们的索引也可以支持自定义的格式,没有非要数值,123的去排序,但是这个功能只有bash4.0才可以支持,那问题来了,怎么查看我们的bash版本呢?
据我所知,我们的centos6,7都是bash4.0以上的,而centos5则不能支持bash,即为关联索引。
既然我们提到了变量,那我们肯定都知道,使用变量是需要提前定义的,那么我们的数组是怎么定义的呢?
declare -a ARRAY_NAME | 数组 |
declare -A ARRAY_NAME | 关联数组 |
注意:两者不可相互转换,而且当我们删除数组中的某元素--->导致稀疏格式
ARRAY_NAME=([idx_name1]=‘val1‘ [idx_name2]=‘val2‘...)
注意:关联数组必须先声明再调用
定义之后就是我们的数组赋值,赋值的时候分为四种
(1) 一次只赋值一个元素;
ARRAY_NAME[INDEX]=VALUE
weekdays[0]="Sunday"
weekdays[4]="Thursday"
(2) 一次赋值全部元素:
ARRAY_NAME=("VAL1" "VAL2" "VAL3" ...)
(3) 只赋值特定元素:
ARRAY_NAME=([0]="VAL1" [3]="VAL2" ...)
(4) 交互式数组值对赋值
read -a ARRAY
既然可以赋值,那我们的查询就很easy了,使用declare -a
这些都没有什么好说的,我们就直接进入肉戏,引用数组,如果是我们的引用单个数组的某个元素,我们可以使用${ARRAY_NAME[INDEX]}注意:省略[INDEX]表示引用下标为0的元素
引用数组中的元素:
数组切片: ${ARRAY[@]:offset:number}
offset: 要跳过的元素个数
number: 要取出的元素个数
取偏移量之后的所有元素
${ARRAY[@]:offset}
向数组中追加一些元素:ARRAY[${#ARRAY[*]}]=value
俗话说的好,光说不练假把式,我们在下面有个小题,就当是我们课后的小扩展:
练习:生成10个随机数保存于数组中,并找出其最大值和最小值。
#!/bin/bash
declare -a rand
for ((i=0;i<10;i++));do
rand[$i]=$RANDOM
[ $i -eq 0 ] && max=${rand[$i]} && min=$min && continue
[ ${rand[$i]} -gt $max ] && max=${rand[$i]} && continue
[ ${rand[$i]} -lt $min ] && min=${rand[$i]}
done
echo "All rand are ${rand[@]}"
echo "Max is $max"
echo "Min is $min"
好了,今天的分享就到这,本周刚转战的51CTO,内容和时间都有些仓促,不足之处,请多多指教。
原文:http://13296640.blog.51cto.com/13286640/1965721
内容总结
以上是互联网集市为您收集整理的Linux运维学习之数组全部内容,希望文章能够帮你解决Linux运维学习之数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。