当前位置: 首页 > ops >正文

第二十九章 数组

第二十九章 数组

数组。所有编程语言中都少不了数组,Shell语言也不例外,只不过支持程度非常有限。即便如此,在解决某些编程问题时,数组也能发挥大作用。

什么是数组

数组是一种可以一次存放多个值的变量,其组织形式类似与表格。数组中的每个变量叫做元素,每个元素都含有数据。数组可以通过索引来访问。

大多数编程语言支持多维数组,Bash中的数组是一维的。在Bash 2中首次引入了对数组的支持,最初的UNIXShell程序sh并不支持数组。

创建数组

数组变量和其它Bash变量一样,在访问变量时会自动创建。例如:

a[1]=foo
echo ${a[1]}

程序运行结果如下:

在这里插入图片描述

本例中第一个命令是数组a的第一个元素被赋值foo。第二个命令显示了第一个元素的值,其中的花括号是为了避免Shell试图对数组元素名执行路径名扩展。

也可以使用declare命令创建数组:

declare -a a

通过-a选项,declare创建了数组a。


为数组赋值


为数组赋值有两种方法,单个值可以使用下列方法:
name[subscript]=value

其中name是数组名,subscript是一个大于或等于0的整数(或者算术表达式)。数组的第一个元素索引是0,而非1。value是赋给该元素的字符串或整数。

多个值可以使用下列方法:

name=(value1 value2 ...)

其中,name是数组名,value是依次赋给数组元素的一系列值。

例如:将一周中各天的缩写赋给数组days

在这里插入图片描述


也可以通过指定各个值的索引,将值赋给特定元素:

在这里插入图片描述

访问数组元素

通过编写一个检查指定目录中的文件修改时间的脚本Hour来演示

代码如下:

#!/bin/bash#hours: 对文件的修改时间进行计数usage () {echo "usage: ${0##*/} directory" >
http://www.xdnf.cn/news/12772.html

相关文章:

  • iptables实验
  • 2025年中国建银投资笔试测评春招校招社招笔试入职测评行测题型解读揭秘
  • 小番茄C盘清理:专业高效的电脑磁盘清理工具
  • FBRT-YOLO:面向实时航拍图像检测的轻量高效目标检测框架
  • 【QT】QT多语言切换
  • Java 线程同步详解
  • 前后端分离开发 和 前端工程化
  • k8s4部署
  • STM32H562----------串口通信(UART)
  • Spring注解开发
  • 《Go小技巧易错点100例》第三十五篇
  • CCF GESP202503 Grade4-B4263 [GESP202503 四级] 荒地开垦
  • JAVA学习 DAY4 DOS操作讲解及实例
  • 高保真组件库:下拉框
  • (一)单例模式
  • leetcode56-合并区间
  • 常见查找算法原理与应用详解
  • pandas 字符串存储技术演进:从 object 到 PyArrow 的十年历程
  • C语言内存管理和编译优化实战
  • Fetch API 使用详解:Bearer Token 与 localStorage 实践
  • LeetCode面试经典150题—合并两个有序数组—LeetCode88
  • 机器学习算法_决策树
  • OC—UI学习-2
  • Linux安全加固:从攻防视角构建系统免疫
  • [创业之路-410]:经济学 - 国富论的核心思想和观点,以及对创业者的启发
  • 【11408学习记录】考研写作双核引擎:感谢信+建议信复合结构高分模板(附16年真题精讲)
  • 【优选算法】位运算
  • Python Flask文件处理与异常处理实战指南
  • Boost ASIO 库深入学习(3)
  • DBAPI如何优雅的获取单条数据