和其他编程语言一样,Shell 也支持数组。数组(Array)是若干数据的集合,其中的每一份数据都称为元素(Element)。

Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。和 C++、Java、C# 等类似,Shell 数组元素的下标也是从 0 开始计数。

获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式;当然,下标必须大于等于 0。

遗憾的是,常用的 Bash Shell 只支持一维数组,不支持多维数组。

Shell 数组的定义

在 Shell 中,用括号( )来表示数组,数组元素之间用空格来分隔。由此,定义数组的一般形式为:array_name=(ele1  ele2  ele3 ... elen)

注意,赋值号=两边不能有空格,必须紧挨着数组名和数组元素。

下面是一个定义数组的实例:nums=(29 100 13 8 91 44)

Shell 是弱类型的,它并不要求所有数组元素的类型必须相同,例如:arr=(20 56 "http://www.found5.com/develop/shell/")

第三个元素就是一个“异类”,前面两个元素都是整数,而第三个元素是字符串。

Shell 数组的长度不是固定的,定义之后还可以增加元素。例如,对于上面的 nums 数组,它的长度是 6,使用下面的代码会在最后增加一个元素,使其长度扩展到 7:nums[6]=88

此外,你也无需逐个元素地给数组赋值,下面的代码就是只给特定元素赋值:ages=([3]=24 [5]=19 [10]=12)

以上代码就只给第 3、5、10 个元素赋值,所以数组长度是 3。

获取数组元素

获取数组元素的值,一般使用下面的格式:${array_name[index]}

其中,array_name 是数组名,index 是下标。例如:n=${nums[2]}

表示获取 nums 数组的第二个元素,然后赋值给变量 n。再如:echo ${nums[3]}

表示输出 nums 数组的第 3 个元素。

使用@或*可以获取数组中的所有元素,例如:${nums[*]}

${nums[@]}

两者都可以得到 nums 数组的所有元素。

完整的演示:#!/bin/bash

nums=(29 100 13 8 91 44)

echo ${nums[@]}  #输出所有数组元素

nums[10]=66  #给第10个元素赋值(此时会增加数组长度)

echo ${nums[*]}  #输出所有数组元素

echo ${nums[4]}  #输出第4个元素

运行结果:

29 100 13 8 91 44

29 100 13 8 91 44 66

91

本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/780.html

shell 数组元素有空格_Shell数组:Shell数组定义以及获取数组元素相关推荐

  1. shell 数组元素有空格_Shell数组添加元素及注意事项

    向Shell数组添加元素有多种方法,每种方法在使用时都有一些需要注意的地方,没有见过这方面的总结资料,所以自己总结一下. 直接下标添加 array_name[index]=value 最简单的添加方式 ...

  2. shell 数组元素有空格_Shell数组操作

    1.数组定义 1.1 declare定义 使用declare -a 命令定义数组(数组的索引是从0开始计数的),接下来就可以通过[]操作符为不同索引位置的元素赋值. declare -a names ...

  3. vue 获取元素在浏览器的位置_前端开发JS获取页面元素的位置

    1.网页的大小和浏览器窗口的大小 一张网页的全部面积,就是它的大小.通常情况下,网页的大小由内容和 document元素的clientHeight和clientWidth属性,就代表了网页的大小. f ...

  4. js怎么获取一个元素与屏幕右边的距离_js中如何获取某个元素到浏览器最左和最右的距离...

    js中如何获取某个元素到浏览器最左和最右的距离以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! js中获取某个元素到浏览器 ...

  5. shell脚本删除冒号空格_shell脚本如何删除指定字符串,文档如下:

    展开全部 用正则匹配e68a8462616964757a686964616f31333361313338就可以了. shell脚本regex正则表达式 和 字符串替换 任意字符 ^行首匹配 $行尾匹配 ...

  6. c语言宏定义数组_利用数组处理批量数据 C语言程序编写定义与利用数组技巧全归纳...

    利用数组处理批量数据 引用数组可以帮助人们很好的实现对一种属性的数据的处理.由于计算机键盘只能输入有限的单个字符而无法表示上下标,C语言规定用方括号中的数字来表示下标,如S[3]即表示S₃.数组与循环 ...

  7. python如何取map中的元素_在Python中使用map()获取列表元素在字符串中存在的次数...

    下面是对goalPost移动的一个响应("我可能需要regex,因为在不久的将来我将需要单词分隔符"): 此方法解析文本一次,以获得所有"单词"的列表.每个单词 ...

  8. python获取数组长度_Python返回数组(List)长度的方法

    原博文 2016-03-16 11:53 − 其实很简单,用len函数: >>> array = [0,1,2,3,4,5]>>> print len(array) ...

  9. python获取数组中大于某一阈值的那些索引值_Python NumPy 高级索引——整数组索引、布尔索引及花式索引...

    NumPy 除了之前文章中介绍的用整数和切片的索引外,数组还可以由整数数组索引.布尔索引及花式索引. 整数数组索引 整数索引有助于基于 N 维索引来获取数组中任意元素.每个整数数组表示该维度的下标值. ...

最新文章

  1. 百亿数据,毫秒级返回,如何构建?
  2. R与Python之间该如何选择
  3. matlab画梅花,基于Matlab图像素描生成算法究.doc
  4. 专业ajax解决方案汇集
  5. ECharts 联动效果
  6. 常用http状态码说明,status
  7. 什么是CAPL编程语言
  8. 数据库表设计(一):字段设计规范和命名规范
  9. (附源码)php初中历史专题教学网站 毕业设计 100623
  10. 计算机类团队名称大全,团队名字大全好听
  11. 人工智能冬去春来 从技术导向向应用导向转变的自然结果
  12. android快牙原理,快牙是什么 快牙使用原理及使用教程
  13. 格律诗的基本知识【一小时学会写格律诗】
  14. RabbitMQ(六)死信队列
  15. 需求与商业模式创新-商业模式考试复习
  16. 【DEBUG】OMAPL138 Connect to PRSC failed
  17. FPC1011半导体电容式指纹识别模块
  18. Linux hash表
  19. java客户端带证书访问服务端_客户端与服务器SSL双向认证(客户端:java-服务端:java)...
  20. caffe实现多label输入(修改源码版)

热门文章

  1. 可枚举属性与不可枚举属性
  2. 任天堂、雅达利、索尼, 曾经的王者之争, 如何影响区块链游戏?
  3. 金蝶云星空与旺店通·旗舰奇门对接集成销售订单查询连通原始单推送(KD销售订单对接WDT原始订单(线下)-ok)
  4. 【QT开发专题-天气预报】6. 构建 JSON字符串
  5. 学习感悟(局部模式的人脸识别研究)
  6. X86架构与Arm架构的主要区别分析
  7. uniapp 微信小程序全局请求 设置token Authorization和Bearer前缀
  8. 国行苹果突然没有信号服务器,苹果手机显示无SIM卡,是怎么回事?
  9. nginx安装及其配置详细教程
  10. [crash分析]“Kernel panic - not syncing: Aiee, killing interrupt handler”“BUG: scheduling while atomic“