Shell数组的介绍

数组算是一种特殊的数据结构,数据项可以成为数组的元素,可以通过数组的索引获取每一个数组的元素值。

数组的典型的使用场景是把相同类型的元素汇总在一起。由于Shell变量属于弱类型,所以数组里面的元素并不一定是相同类型。

注意:Shell中的数组只支持一维数组,但对元素的个数没有限制,数组元素的索引也是从0开始。

数组的定义

数组的定义格式:declare -a 数组名称

比如:declare -a testarr #定义一个testarr数组

testarr[0]=10 #第一个元素赋值

testarr[1]="hello" #第二个元素赋值

#数组定义的时候同时赋值

declare -a testarr=(10,'hello') 等价于 testarr=(10,'hello')

testarr[2]=20 #增加元素

#不连续赋值

testarr1=([1]=10 [3]=30 [5]=50)

数组的操作

1、数组的取值

格式如下:${数组名[索引]}

比如:echo ${testarr[0]}

echo ${testarr[@]} #获取元素的所有值  输出以空格隔开的元素值

echo ${testarr[*]} #获取元素的所有值,输出的是一整个字符串

2、数组长度

方法如下:

echo ${#testarr[@]} #获取数组元素的个数

echo ${#testarr[*]} #获取数组元素的个数

echo ${#testarr[0]} #获取数组某一个元素的长度

3、数组截取

echo ${testarr[@]:1:2}

#获取数组的索引值是1、2的元素

echo ${testarr[2]:0:2}

#获取数组索引值是2元素值截取从第0个字符开始连续2个字符

4、连接数组

testarr2={${testarr[@]} ${testarr1[@]}} #合并数组

5、替换元素:将数组内某个元素值替换成其他值

testarr=($testarr[@]/hello/helloworld)

6、取消数组或元素

unset $testarr #取消数组

unset $testarr[0] #取消数组的一个元素

Linux中Shell数组的笔记相关推荐

  1. linux数组拼接_Linux中Shell数组的笔记

    Shell数组的介绍 数组算是一种特殊的数据结构,数据项可以成为数组的元素,可以通过数组的索引获取每一个数组的元素值. 数组的典型的使用场景是把相同类型的元素汇总在一起.由于Shell变量属于弱类型, ...

  2. Linux中shell变量作用域笔记

    变量的作用域又可以叫做"命名空间",表示变量的上下文,同名的变量可以在多个命名空间定义,彼此互相独立. 在linux系统中,不同的进程ID的Shell默认为一个不同的命名空间. 比 ...

  3. linux中shell数组的使用和建立

    linux shell在编程方面比windows 批处理强大太多,无论是在循环.运算.已经数据类型方面都是不能比较的. 下面是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [che ...

  4. linux下变量名长度,Linux中shell的变量介绍

    Linux中shell的变量介绍 发布时间:2020-06-24 16:20:39 来源:亿速云 阅读:112 作者:元一 这期内容当中的小编将会给大家带来有关Linux中shell的变量介绍,以专业 ...

  5. Linux中shell语法和脚本编写

    Linux中shell语法和脚本编写 原文地址:学习shell的语法,及脚本编写 其它相关辅助资料: 编写shell脚本所需的语法和示例 基础linux指令&简单的shell语法和脚本编写 什 ...

  6. linux中shell变量$#,$@,$0,$1,$2的含义解释

    linux中shell变量$#,$@,$0,$1,$2的含义解释:  变量说明:  $$  Shell本身的PID(ProcessID)  $!  Shell最后运行的后台Process的PID  $ ...

  7. linux中shell如何实现毫秒级别的sleep

    方法2.usleep 10000 (usleep为十的负六次方秒,详细见man usleep) 本文转自博客园知识天地的博客,原文链接:linux中shell如何实现毫秒级别的sleep,如需转载请自 ...

  8. Linux中shell的分类以及查看当前的shell

    DOS/Windows 与 Linux 的最重要的区别之一是 Linux 的命令 shell 是与操作系统相分离的一层. 目前流行的shell有ash.bash.ksh.csh.zsh,如下介绍: b ...

  9. linux中sh+$0,浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释

    摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: ...

最新文章

  1. 类的内置方法__attr__介绍
  2. javascript console 函数详解 js开发调试的利器 浏览:3201|更新:2014-05-30 09:27
  3. 完美日记:保障电商大促活动平稳运行
  4. ES6技巧和窍门,使您的代码更简洁,更短且更易于阅读!
  5. Silverlight 数据库 - Silverlight Database
  6. blender 可视化编程_使用Blender可视化天体物理学数据
  7. 爬虫—Requests高级用法
  8. python 安装matlab,python – Anaconda在Linux上安装Matlab Engine
  9. 前景检测算法 (GMM)
  10. 关于cocos2dx 3.x版本移植 dragonbones 4.5版本的解决方案
  11. 在本地Windows系统下搭建Apollo配置中心
  12. 中国企业考勤软件市场趋势报告、技术动态创新及市场预测
  13. LS1012ARDB - How to reflash u-boot / RCW via built in Kinetis CMSIS-DAP
  14. 创业关于抖音的技术分析与同类产品如何弯道超车的几个问题
  15. pcep协议什么意思_SDN学习笔记
  16. 神书《纳瓦尔宝典:财富和幸福指南》说了些什么
  17. 公司算法面试笔试题目集锦,个人整理,不断更新中
  18. DNS缓存中毒攻击与防护
  19. linux 软件包的安装,linux安装软件包的方法
  20. [C#]ActiveX因安全性被阻止的问题

热门文章

  1. 深山红叶PE工具箱嫦娥一号纪念版 V30[1115]
  2. Halcon:二维仿射变换实例探究
  3. MFC的消息映射有什么作用
  4. 使用numpy出现DeprecationWarning: The normed argument is ignored when density is provided. 解决方法忽略警告的方法
  5. conda环境管理介绍
  6. inherits java_JAVA内部类和组合的区别
  7. oracle查询100到200数据,100分数据库查询语句(ORACLE 11g)
  8. selenium的三种等待时间
  9. Redis(四):Spring + JedisCluster操作Redis(集群)
  10. Unity 内建数据索引