Linux中数组本人可能用的相对较少,但是会经常遇见,也容易忘记,就顺便记录下来吧

数值类型的数组:一对括号表示数组,数组中元素之间使用“空格”来隔开

arr=(1 2 3 4 5)

字符串类型数组:同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开

arr=('a' 'b' 'c')

数组的任何元素都可以用${arr[下标]}来引用,花括号是必须的,以避免和路径扩展冲突。 

数组的操作

以数值型数组为例:arr=(1 2 3 4 5)

1.计算数组的长度

len=${#arr[*]}

2、输出所有数组的值

如果 [下标] 是@或是*,它扩展为arr的所有成员。这两种下标只有在双引号中才不同。在双引号中,${name[*]}扩展为一个词,由所有数组成员的值组成,
用特殊变量IFS的第一个字符分隔数组成员;${arr[@]}将arr的每个成员扩展为一个词。 如果数组没有成员,${arr[@]} 扩展为空串。

3、输出数组的单个元素值(数组下标值从0开始,所以5值为空)

4、在shell脚本中数组和read的结合使用

5、数组结合函数和read一起使用 使用$@和”$@“以及$*

输出结果

使用"$*"时

输出结果

6、来点新的(鬼知道有啥用)

向函数传递的参数是$arg1,我们知道不能向函数传递一个数组,而应该是遍历的数组的值,所以在arg1赋值这里,不能写arg1=(${echo ${myarray[*]})),
这样相当于arg1是一个数组了,而arg1=$(echo ${myarray[*]})返回的则是1 2 3 4 5单个的输出值;函数的返回同理,返回的是单个的数值,接受的时候加上(),组成数组

输出结果

7、结合read传递参数型(稍微灵活点,更加不知道有什么鬼用,鸟改哈就阔以啦,估计很少会用这些吧)

输出结果

正好看到这些,研究了很久,起初都是一脸懵逼,写出来不知道有没有啥子用,我工作的地方好像都没用到额,有点尴尬!!!

最新文章

  1. mac版Camtasia 2.10破解
  2. jekins构建自动化项目的步骤
  3. Linux I2C总线控制器驱动(S3C2440)
  4. java环境log4j日志环境的配置。
  5. Magento 2.0 安装
  6. [置顶] 白话二分匹配之最大匹配+附上hdu2063解题报告
  7. 基于live555的一个简单RTSP服务器
  8. 照猫画虎学gnuplot之简单介绍
  9. Adobe flash CC 汉化破解方法
  10. Brain Network (easy)
  11. [模拟赛] T3 最优序列
  12. 编译phoneix源码,整合Hbase
  13. C# 串口操作系列(5)--通讯库雏形
  14. 由于SVN导致桌面图标都带有?标记
  15. CSS之IE浏览器的hasLayout,IE低版本的bug根源
  16. docker 8 docker的镜像命令
  17. [原][译][jsbsim]空气动力学模型库讨论JSBSim对比YASim
  18. Linux驱动之异步通知的应用
  19. E325: ATTENTION
  20. ceph 文件系统(cephfs) -- 初体验

热门文章

  1. 垂直居中—3行CSS3代码
  2. pxe+http+kickstart实验原理
  3. SpringBoot学习(六)-->SpringBoot的自动配置的原理
  4. Scala(一) —— 基础
  5. NLP入门(五)用深度学习实现命名实体识别(NER)
  6. Heaps(Contest2080 - 湖南多校对抗赛(2015.05.10)(国防科大学校赛决赛-Semilive)+scu1616)
  7. java安全管理器SecurityManager介绍
  8. Java并发编程-看懂AQS的前世今生
  9. React.cloneElement
  10. LeetCode | HouseCode 算法题