课程表

UNIX 基础

UNIX Shell编程

UNIX 进阶

UNIX 常用资源

工具箱
速查手册

UNIX Shell数组

当前位置:免费教程 » 数据库/运维 » UNIX

一个 Shell 变量只能够容纳一个值。这种类型的变量称为标量变量。

Shell 数组变量可以同时容纳多个值,它支持不同类型的变量。数组提供了一种变量集分组的方法。你可以使用一个数组变量存储所有其他的变量,而不是为每个必需的变量都创建一个新的名字。

Shell 变量中讨论的所有命名规则都将适用于命名数组。

定义数组值

一个数组变量和一个标量变量之间的差异可以解释如下。

假如你想描绘不同学生的名字,你需要命名一系列变量名作为一个变量集合。每一个单独的变量是一个标量变量,如下所示:

  1. NAME01="Zara"
  2. NAME02="Qadir"
  3. NAME03="Mahnaz"
  4. NAME04="Ayan"
  5. NAME05="Daisy"

我们可以使用一个数组来存储所有上面提到的名字。下面是创建一个数组变量的最简单的方法,将值赋给数组的一个索引。表示如下:

  1. array_name[index]=value

这里 array_name 是数组的名称,index 是数组中需要赋值的索引项,value 是你想要为这个索引项设置的值。

例如,以下命令:

  1. NAME[0]="Zara"
  2. NAME[1]="Qadir"
  3. NAME[2]="Mahnaz"
  4. NAME[3]="Ayan"
  5. NAME[4]="Daisy"

如果使用 ksh shell,数组初始化的语法如下所示:

  1. set -A array_name value1 value2 ... valuen

如果使用 bash shell,数组初始化的语法如下所示:

  1. array_name=(value1 ... valuen)

访问数组值

在为数组变量赋值之后,你可以访问它。如下所示:

  1. ${array_name[index]}

这里 array_name 是数组的名称,index 是将要访问的值的索引。下面是一个最简单的例子:

  1. #!/bin/sh
  2. NAME[0]="Zara"
  3. NAME[1]="Qadir"
  4. NAME[2]="Mahnaz"
  5. NAME[3]="Ayan"
  6. NAME[4]="Daisy"
  7. echo "First Index: ${NAME[0]}"
  8. echo "Second Index: ${NAME[1]}"

这将产生以下结果:

  1. $./test.sh
  2. First Index: Zara
  3. Second Index: Qadir

你可以使用以下方法之一,来访问数组中的所有项目:

  1. ${array_name[*]}
  2. ${array_name[@]}

这里 array_name 是你感兴趣的数组的名称。下面是一个最简单的例子:

  1. #!/bin/sh
  2. NAME[0]="Zara"
  3. NAME[1]="Qadir"
  4. NAME[2]="Mahnaz"
  5. NAME[3]="Ayan"
  6. NAME[4]="Daisy"
  7. echo "First Method: ${NAME[*]}"
  8. echo "Second Method: ${NAME[@]}"

这将产生以下结果:

  1. $./test.sh
  2. First Method: Zara Qadir Mahnaz Ayan Daisy
  3. Second Method: Zara Qadir Mahnaz Ayan Daisy
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号