玩转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

相关文章
|
3天前
|
人工智能 Java API
【JAVA编程】全栈开发者如何构建 AI 大模型应用:OpenAI 与 Gemini 3.0 Pro 接入深度解析
Java开发者需关注API网关架构,以解决大模型调用中的供应商锁定、网络延迟与密钥管理难题。通过Spring Boot集成OpenAI兼容协议,结合poloapi.top聚合网关,实现多模型统一调用、低延迟访问与安全合规,构建稳定高效的企业级AI中台。
|
3天前
|
安全 数据库连接 开发者
用Python上下文管理器,优雅管理你的资源
用Python上下文管理器,优雅管理你的资源
167 131
|
3天前
|
开发者 Python
Python 小技巧:你可能没完全掌握的 f-string 高级用法
Python 小技巧:你可能没完全掌握的 f-string 高级用法
174 132
|
14天前
|
存储 SQL Apache
Flink + Fluss 实战: Delta Join 原理解析与操作指南
Flink Delta Join 通过复用源表数据替代本地状态,解决双流 Join 状态膨胀问题。结合 Fluss 流存储,实现高效双向 Lookup,显著降低资源消耗与 Checkpoint 时间,提升作业稳定性与恢复速度,已在阿里大规模落地。
185 25
Flink + Fluss 实战: Delta Join 原理解析与操作指南
|
3天前
|
缓存 监控 开发者
Python装饰器:让代码优雅加倍
Python装饰器:让代码优雅加倍
184 134
|
14天前
|
SQL 存储 关系型数据库
从一条慢SQL说起:交易订单表如何做索引优化
本文首先以淘天电商交易订单表线上一条非典型慢 SQL 的深入剖析为切入点,示范如何系统地分析与排查慢 SQL;接着详尽归纳了索引分类、B+Tree 与 B‑Tree 的结构差异、B+Tree 高度估算方法、EXPLAIN 与 Query Profile 等诊断工具的使用,以及索引下推与排序的执行流程等索引优化理论;最后结合日常实践经验,提出了适用于大规模线上集群的索引变更 SOP,并总结了常见的慢 SQL 成因与相应的解决策略。
201 36
从一条慢SQL说起:交易订单表如何做索引优化
|
弹性计算 Linux Docker
Centos7 环境下安装 Docker 及使用阿里云加速配置详解
Centos7 环境下安装 Docker 及使用阿里云加速配置详解
4326 0
Centos7 环境下安装 Docker 及使用阿里云加速配置详解
|
3天前
|
缓存 网络协议 Linux
RARP协议详解(Linux下反向地址解析协议入门指南)
RARP(反向地址解析协议)是一种早期网络协议,用于通过MAC地址查询IP地址,常用于无盘工作站启动时获取IP。与ARP相反,RARP实现从MAC到IP的映射。尽管现已被DHCP取代,了解RARP仍对学习Linux网络配置和网络协议演进具有重要意义。

热门文章

最新文章