- Unix / Linux 初学者指南
- Unix / Linux - 首页
- Unix / Linux - 什么是 Linux?
- Unix / Linux - 入门
- Unix / Linux - 文件管理
- Unix / Linux - 目录
- Unix / Linux - 文件权限
- Unix / Linux - 环境
- Unix / Linux - 基本实用程序
- Unix / Linux - 管道与过滤器
- Unix / Linux - 进程
- Unix / Linux - 通信
- Unix / Linux - vi 编辑器
- Unix / Linux Shell 编程
- Unix / Linux - Shell 脚本
- Unix / Linux - 什么是 Shell?
- Unix / Linux - 使用变量
- Unix / Linux - 特殊变量
- Unix / Linux - 使用数组
- Unix / Linux - 基本运算符
- Unix / Linux - 决策
- Unix / Linux - Shell 循环
- Unix / Linux - 循环控制
- Unix / Linux - Shell 替换
- Unix / Linux - 引号机制
- Unix / Linux - I/O 重定向
- Unix / Linux - Shell 函数
- Unix / Linux - 手册页帮助
- 高级 Unix / Linux
- Unix / Linux - 标准 I/O 流
- Unix / Linux - 文件链接
- Unix / Linux - 正则表达式
- Unix / Linux - 文件系统基础
- Unix / Linux - 用户管理
- Unix / Linux - 系统性能
- Unix / Linux - 系统日志
- Unix / Linux - 信号和陷阱
Unix / Linux - 使用 Shell 数组
在本章中,我们将讨论如何在 Unix 中使用 Shell 数组。Shell 变量能够保存单个值。这些变量称为标量变量。
Shell 支持一种称为数组变量的不同类型的变量。它可以同时保存多个值。数组提供了一种对一组变量进行分组的方法。与其为每个所需的变量创建新的名称,不如使用一个存储所有其他变量的单个数组变量。
对于 Shell 变量讨论的所有命名规则都适用于数组命名。
定义数组值
数组变量和标量变量之间的区别可以解释如下。
假设您尝试将各种学生的姓名表示为一组变量。每个单独的变量都是一个标量变量,如下所示:
NAME01="Zara" NAME02="Qadir" NAME03="Mahnaz" NAME04="Ayan" NAME05="Daisy"
我们可以使用单个数组来存储上面提到的所有名称。以下是创建数组变量的最简单方法。这有助于为其索引之一赋值。
array_name[index]=value
这里array_name是数组的名称,index是要设置的数组中项目的索引,而value是要为该项目设置的值。
例如,以下命令:
NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy"
如果您使用的是ksh shell,则数组初始化的语法如下:
set -A array_name value1 value2 ... valuen
如果您使用的是bash shell,则数组初始化的语法如下:
array_name=(value1 ... valuen)
访问数组值
设置任何数组变量后,您可以按如下方式访问它:
${array_name[index]}
这里array_name是数组的名称,而index是要访问的值的索引。以下是一个示例,用于理解这个概念:
#!/bin/sh NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy" echo "First Index: ${NAME[0]}" echo "Second Index: ${NAME[1]}"
以上示例将生成以下结果:
$./test.sh First Index: Zara Second Index: Qadir
您可以通过以下方式之一访问数组中的所有项目:
${array_name[*]} ${array_name[@]}
这里array_name是您感兴趣的数组的名称。以下示例将帮助您理解这个概念:
#!/bin/sh NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy" echo "First Method: ${NAME[*]}" echo "Second Method: ${NAME[@]}"
以上示例将生成以下结果:
$./test.sh First Method: Zara Qadir Mahnaz Ayan Daisy Second Method: Zara Qadir Mahnaz Ayan Daisy
广告