玩转Linux Shell数组(从零开始掌握Shell数组初始化技巧)

简介: 本教程详解Linux Shell数组初始化,涵盖空数组声明、赋值初始化、指定索引、命令输出填充等方法,助你掌握Bash数组基本操作,提升脚本编写效率,适合Shell初学者快速入门。

在 Linux Shell脚本编程 中,数组是一个非常实用的数据结构,尤其当你需要处理多个相关数据时。但对于刚入门的用户来说,Shell数组初始化 可能看起来有点复杂。别担心!本篇 Shell初学者教程 将带你一步步了解如何在 Bash(最常用的 Shell)中声明和初始化数组,让你轻松上手。

什么是 Shell 数组?

Shell 数组是一种可以存储多个值的变量。Bash 支持一维数组(不支持多维数组),数组中的每个元素都有一个索引(从 0 开始)。

1. 声明空数组

你可以先声明一个空数组,后续再添加元素:

declare -a my_array

或者更简单地直接使用:

my_array=()

2. 初始化带值的数组

你可以在声明时就给数组赋值:

my_array=(apple banana cherry)

这会创建一个包含三个字符串的数组,索引分别为 0、1、2。

3. 指定索引初始化

你也可以显式指定某个索引的值:

my_array=([0]="red" [2]="blue" [5]="green")

注意:未指定的索引(如 1、3、4)将为空,但数组长度仍按最大索引计算。

4. 从命令输出初始化数组

这是非常实用的技巧!你可以把命令的输出结果作为数组元素:

files=( $(ls *.txt) )

这会把当前目录下所有 .txt 文件名存入files数组。

5. 查看数组内容

要打印整个数组,可以使用:

echo "${my_array[@]}"

要查看数组长度:

echo "${#my_array[@]}"

小贴士

  • Shell 数组是稀疏的,即索引可以不连续。
  • 使用双引号包裹数组展开(如 "${my_array[@]}")可避免空格或特殊字符导致的问题。
  • 关联数组(用字符串作索引)需用 declare -A 声明,但本教程聚焦于普通索引数组。

总结

通过以上几种方式,你可以灵活地在 Linux Shell数组 中存储和管理数据。无论你是写自动化脚本还是处理批量任务,掌握这些 Shell数组初始化 技巧都将大大提升你的效率。希望这篇 Shell初学者教程 能帮你打下坚实基础!

继续练习吧!动手写几个脚本,你会发现 Shell 编程其实很有趣 😊

来源:

https://www.vps5.cn/category7.html

相关文章
|
Shell
Shell 字符串操作(截取、替换、去头、去尾)
Shell 字符串操作(截取、替换、去头、去尾)
1881 0
|
网络协议 Linux
route 或 ip route命令详解
【4月更文挑战第9天】`route`和`ip route`是Linux下管理IP路由的命令,用于查看和配置路由表。`route`命令简单,可查看、添加和删除路由,而`ip route`更现代且功能强大,支持路由可信度和距离设置。`ip route show`类似于`route -n`用于显示路由信息。路由类型包括主机、网络和默认路由。在现代Linux系统中,推荐使用`ip route`。
3450 1
|
Shell 网络安全 开发工具
Windows环境安装及配置git并连接gitee远程仓库
Windows环境安装及配置git并连接gitee远程仓库
5831 0
|
8月前
|
缓存 网络协议 Linux
RARP协议详解(Linux下反向地址解析协议入门指南)
RARP(反向地址解析协议)是一种早期网络协议,用于通过MAC地址查询IP地址,常用于无盘工作站启动时获取IP。与ARP相反,RARP实现从MAC到IP的映射。尽管现已被DHCP取代,了解RARP仍对学习Linux网络配置和网络协议演进具有重要意义。
|
9月前
|
SQL 分布式计算 算法
别再一把梭哈了:聊聊文件格式里的压缩取舍——Snappy 和 Zstd 到底怎么选?
别再一把梭哈了:聊聊文件格式里的压缩取舍——Snappy 和 Zstd 到底怎么选?
898 4
|
8月前
|
安全 Shell Linux
Linux Shell函数中的纯函数概念(小白也能掌握的函数式编程基础)
本文介绍Linux Shell脚本中“纯函数”的概念与实践,强调其输入确定、无副作用的特性,通过对比示例讲解如何编写可预测、可复用、高可靠性的纯函数,提升脚本质量。
|
8月前
|
缓存 测试技术 Python
解锁Python装饰器:让代码优雅加倍
解锁Python装饰器:让代码优雅加倍
314 133
|
10月前
|
存储 Shell Linux
Linux Shell数组元素访问(零基础轻松掌握Bash数组的读取与使用)
本文介绍了Linux Shell数组的基础知识,包括定义、访问、遍历、获取长度等操作,适合初学者快速掌握Bash数组核心用法,助力编写高效自动化脚本。
|
8月前
|
机器学习/深度学习 缓存 异构计算
JAX性能优化实战:7个变换让TPU/GPU吃满算力
JAX性能提升七技巧:jit稳定形状、vmap替代循环、scan融合长序列、remat用计算换内存、pmap单机多卡、pjit实现SPMD并行、value_and_grad正确组合。配合分片与aux输出,最大化XLA优化,提升计算效率。
400 1
JAX性能优化实战:7个变换让TPU/GPU吃满算力
|
缓存 网络协议 测试技术
NFS挂载信息如何调整?
NFS挂载信息如何调整?
1274 3

热门文章

最新文章