写在前面
该文章根据 the unix workbench 中的 Bash Programming
进行汉化处理并作出自己的整理,并参考 Bash 脚本教程 和 BashPitfalls 相关内容进行补充修正。一是我对 Bash 的学习记录,二是对大家学习 Bash 有更好的帮助。如对该博文有好的建议,欢迎反馈。码字不易,如果本篇文章有帮助你的,如有闲钱,可以打赏支持我的创作。如想转载,请把我的转载信息附在文章后面,并声明我的个人信息和本人博客地址即可,但必须事先通知我。本篇博文可能比较冗长,请耐心阅读和学习。
数组
内容讲解
Bash 中的数组是有序的值列表。通过将列表指定给变量名,可以从头开始创建列表。列表是用括号(())
创建的,括号中用空格分隔列表中的每个元素。让我们列出几个动物的数组:
animals=(cat dog butterfly fish bird goose cow chick goat pig)
要检索数组,需要使用参数展开,其中包括美元符号和花括号${}
。数组中元素的位置从零开始编号。要获取此数组的第一个元素,请使用${animals[0]}
,如下所示:
wingsummer@wingsummer-PC ~ → echo ${animals[0]}
cat
请注意,第一个元素的索引为0。可以通过这种方式获取任意元素,例如第四个元素:
wingsummer@wingsummer-PC ~ → echo ${animals[3]}
fish
要获得改动物列表的所有元素,请在方括号之间使用星号*
:
wingsummer@wingsummer-PC ~ → echo ${animals[*]}
cat dog butterfly fish bird goose cow chick goat pig
还可以通过使用方括号指定其索引来更改数组中的单个元素:
wingsummer@wingsummer-PC ~ → echo ${animals[*]}
cat dog butterfly fish bird goose cow chick goat pig
wingsummer@wingsummer-PC ~ → animals[4]=ant
wingsummer@wingsummer-PC ~ → echo ${animals[*]}
cat dog butterfly fish ant goose cow chick goat pig
要仅获取数组的一部分,必须指定要从中开始的索引,后跟要从数组中检索的元素数,以冒号分隔:
wingsummer@wingsummer-PC ~ → echo ${animals[*]:5:3}
goose cow chick
上面的查询本质上是这样的:从数组的第六个元素开始获取3个数组元素(记住第六个元素的索引为5
)。
可以使用#
来获取数组的长度:
wingsummer@wingsummer-PC ~ → echo ${#animals[*]}
10
可以使用加号等于运算符+=
将数组添加到数组的末尾:
animals=(cat dog fish)
echo ${animals[*]}
animals+=(cow chick goat)
echo ${animals[*]}
内容总结
- 数组是一种线性数据结构,具有可存储在变量中的有序元素。
- 数组的每个元素都有一个索引,第一个索引是0。
- 可以使用数组的索引来访问数组的各个元素。
小试牛刀
- 编写一个 bash 脚本,在脚本中定义一个数组,脚本的第一个参数指示运行脚本时打印到控制台的数组元素的索引。
- 编写一个 bash 脚本,在脚本中定义两个数组,当脚本运行时,数组长度的总和将打印到控制台。
相关文章:
-
寂静的羽夏博文总序
2021-07-28
-
(二)羽夏看C语言——容器
2021-12-28
-
(一)羽夏看C语言——简述
2021-10-26
-
(六)羽夏看C语言——函数
2021-09-07
-
(三)羽夏看C语言——进制
2021-12-12
-
羽夏闲谈——TeeWorlds 中文问题
2021-08-30
-
羽夏笔记——Hook攻防基础
2021-12-23
-
羽夏闲谈——鼠标连点器
2021-12-22
-
羽夏笔记——硬编码(32位)
2021-09-10
-
羽夏 Deepin 日记——生存指南
2022-02-17
- 寂静的羽夏博文总序 2021-07-28
- (二)羽夏看C语言——容器 2021-12-28
- (一)羽夏看C语言——简述 2021-10-26
- (六)羽夏看C语言——函数 2021-09-07
- (三)羽夏看C语言——进制 2021-12-12
- 羽夏闲谈——TeeWorlds 中文问题 2021-08-30
- 羽夏笔记——Hook攻防基础 2021-12-23
- 羽夏闲谈——鼠标连点器 2021-12-22
- 羽夏笔记——硬编码(32位) 2021-09-10
- 羽夏 Deepin 日记——生存指南 2022-02-17
猜你喜欢
- 羽夏 Bash 简明教程(上) 2022-05-13
- 羽夏 MakeFile 简明教程 2022-05-11
- 羽夏闲谈——NewCode 2021-06-25
- 羽夏逆向指引—— Hook 2022-03-28
- 羽夏逆向指引——序 2021-12-01
- 羽夏笔记——Win32(非WinAPI) 2021-09-10
- 羽夏逆向指引——补丁 2021-12-07
- 羽夏逆向指引——注入 2022-04-03
- 羽夏壳世界—— PE 结构(上) 2022-04-10
- 羽夏逆向——逆向基础 2021-11-19
- 羽夏逆向指引——反制 2022-03-27
相似解决方案
- Theano 教程中的说明 2014-10-11
- DCOM 的简单教程 [关闭] 2011-03-22
- Symfony-cmf 简单 cms 教程 bug 2014-04-07
- 简单沙盒按钮教程 2014-12-03
- 在bash中检测夏令时 2013-11-22
- scala play sbt 配置简单教程 2016-06-17
- 简单的光线追踪教程? 2011-05-20
- 简单的java jni教程失败 2016-10-11
- C++ Boost Asio 简单聊天教程 2011-10-28
- 应用内简单教程 [关闭] 2013-11-24
最近更新的文章/教程 更多
- extcon驱动及其在USB驱动中的应用 2022-05-13
- JavaScript 任务池 2022-05-13
- 有关状压DP 2022-05-13
- 5分钟了解二叉树之AVL树 2022-05-13
- Doker从0-1 2022-05-13
- 多线程06:条件变量 2022-05-13
- 【理论积累】C语言基础理论知识【第一版】 2022-05-13
- 3.Docker常用命令 2022-05-13
- Blazor和Vue对比学习(基础1.8):Blazor中实现计算属性和数据监听 2022-05-13
- 用Docker打包Python运行环境 2022-05-13
热门标签
常用小工具 更多