如何在bash脚本中创建第一个数组

嵌入式技术

1344人已加入

描述

在前面的文章中,我们介绍了如何在 bash 中使用有限数量的变量,比如要保存一个或两个文件名或用户名。

但是,如果在 bash 脚本中需要多个变量,该怎么办?假设我们要创建一个 bash 脚本,从用户那里读取 100 个不同的输入,那么需要创建 100 个变量吗?

肯定不是这样,我们需要使用数组。

在 bash 脚本中创建第一个数组

假设我们要创建一个名为 timestamp.sh 的脚本,用来更新 5 个不同文件的时间戳。

第一种使用比较原始的方法,创建 5 个不同的变量,如下所示:

Bash

可以看到这种方法写起来比较繁琐,我们还可以使用另一种方法,创建一个包含所有文件名的数组,如下语法:

Bash

这种比较简洁,所以我们采用数组的方法,如下:

Bash

访问bash中的数组元素

与大多数编程语言中一样,数组中的元素索引是从 0 开始的,所以要访问数组中第 n 个元素,其下标索引应该是 [n - 1]

比如,要打印数组中的第 2 个元素,可以参考如下方式:

Bash

以下 bash 脚本 reverse.sh,将倒序打印数组中的 5 个元素:

Bash

 

Bash

使用过 bash 的朋友可能会觉得奇怪,为什么我这里用这么多 echo 命令,而不是使用循环。我是想稍后在介绍 bash 中循环的使用。

也可以一次打印出所有数组元素:

Bash

可以打印数组元素的总数,也就是数组的大小:

Bash

数组中元素的值是可以更改的。比如,我们可以用如下方式将数组中第一个元素的值改为 a.txt:

Bash

向数组中添加元素

我们首先创建一个包含 Linux 版本名称的数组:

Bash

上述数组中包含三个元素。可以使用 += 运算符将元素添加(追加)到数组的末尾,如下所示:

Bash

现在,数组中已经有了 4 个元素,Kali 是最后一个:

Bash

删除数组中的元素

我们首先创建一个包含 5 个数字的数组,其名称为 num:

Bash

可以打印一下数组中的元素:

Bash

我们可以使用 shell 内置功能 unset 来删除 数组中的第 3 个元素:

Bash

现在,我们再来打印一下 num 数组中的元素:

Bash

上面结果可以看到,第三个元素已经被删除。

也可以使用同样的方法删除数组中所有的元素:

Bash

 

Bash

创建具有不同数据类型的混合数组

与其他编程语言不同,在 bash 中,可以创建包含不同数据类型的数组,如下 user.sh 所示:

Bash

上述脚本中的数组包含有四个元素,其中第二个元素为整型数据类型,其余三个元素为字符串。

Bash

以上就是本次分享全部内容,欢迎讨论。


 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分