`
dengwenwei121
  • 浏览: 40917 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论

Shell 数组/Arrays

 
阅读更多

shell变量是有足够的能力保持一个单一的值。这种类型的变量被称为标量变量。

Shell支持不同类型的变量称为数组变量,可以在同一时间容纳多个值。阵列,提供了一组变量进行分组的方法的。而不是创建一个新的名称为每个变量所需要的,你可以使用一个单一的阵列存储所有其他变量的变量。

所有讨论shell变量的命名规则将适用数组命名。

定义数组值:

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

说,你正试图表示各种学生为变量集的名字。每一个单个变量是一个标量变量,如下所示:


NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"

我们可以用一个单一的阵列来存储所有上述提及的名称。以下是最简单的方法创建一个数组变量分配一个值,其索引之一。这是表示,如下所示:

array_name[index]=value

array_name是数组名,索引是在阵列中,你要设置的项目索引,值是你想要的值设置该项目。

作为一个例子,下面的命令:

NAME[0]="Zara"
NAME[1]="Qadir"
NAME[2]="Mahnaz www.yiibai.com"
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]}"

This would produce following result:

$./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

分享到:
评论

相关推荐

    korn shell manual

    * Korn Shell支持的脚本语言更加强大,支持函数、数组和 associative arrays 等数据结构。 * Korn Shell 的命令语法与 Bourne Shell 相似,但具有更多的扩展功能。 Korn Shell 的基本命令: * `echo` 命令:用于...

    java数组排序

    public class ShellSort { public static void sort(int[] array) { int gap = array.length / 2; while (gap > 0) { for (int i = gap; i ; i++) { int temp = array[i]; int j; for (j = i; j >= gap && ...

    java数组排序源代码

    ### Java数组排序源代码分析与理解 #### 一、概览 本文将深入解析一个包含多种排序算法(冒泡排序、选择排序、插入排序、希尔排序)的Java程序,并通过具体的代码实现来帮助读者理解这些排序算法的工作原理及其实现...

    MongoDB Shell命令.pdf

    MongoDB支持多种数据类型,包括但不限于String(字符串)、Integer(整型数值)、Boolean(布尔值)、Double(双精度浮点值)、Arrays(数组)、Timestamp(时间戳)、Object(对象)、Null(空值)、Symbol(符号)...

    java数组排序示例(冒泡排序、快速排序、希尔排序、选择排序)

    在给定的代码中,`shellSort`方法实现了希尔排序,它首先将数组元素按增量分组,然后对每个组进行插入排序,最后减小增量并重复此过程,直至增量为1。 4. **选择排序**: 选择排序是一种简单直观的排序算法,它的...

    Beginning Java 9 Fundamentals, 2nd Edition-Apress高清无水印

    ### 数组 (Arrays) 数组是 Java 编程语言中最基本的数据结构之一,用于存储相同类型的数据元素集合。在 Java 9 中,数组的相关操作得到了进一步优化和完善,使其更加高效且易于使用。 **知识点详解**: - **数组...

    Java代码中调用shell脚本和python脚本并获得输出结果(分为小数据量和大数据量).docx

    这段代码首先检查Python脚本文件是否存在,如果存在,则构建执行命令的数组,其中包括Python解释器路径、脚本路径以及传递给脚本的参数。然后,使用`Runtime.getRuntime().exec(command)`执行该命令,并通过`process...

    Json to Excel

    2. **数据类型**:JSON支持多种基本数据类型,包括字符串(strings)、数字(numbers)、布尔值(booleans)、null、数组(arrays)和对象(objects)。在转换为Excel时,这些数据类型会对应到Excel的相应单元格格式...

    android wifi静态ip设置

    linkProperties.setLinkAddresses(Arrays.asList(new LinkAddress(ipAddress, subnetMask))); linkProperties.setGateway(gateway); linkProperties.setDnsServers(dnsServers); // 将LinkProperties添加到Network...

    冒泡排序资源,Java排序实现,java实现各种排序算法:冒泡排序、选择排序、插入排序、Shell排序、快速排序、堆排序、合并排序等

    Java标准库中也包含有排序方法,例如Arrays类中的sort方法可以对数组进行排序,Collections类中的sort方法可以对集合进行排序。这些库函数背后实际上就是使用了这些基本排序算法的高效实现,或者是它们的变体和优化...

    Manage C data using the GLib collections – IBM Developer.pdf

    7. 数组(Arrays):可以动态扩展的数组类型,随着元素的添加而增长。 关于数据管理,GLib范围还包括以下有用的功能和定义: - 基本类型和限制定义:提供对标准数据类型的定义,例如整数、浮点数等。 - 标准宏:...

    ntk

    8. **数组(Arrays)**:尽管Bash中的数组功能相对简单,但仍然可以用来存储一组相关的值,如`myarray=(value1 value2 value3)`。 9. **命令别名(Aliases)**:为了简化常用命令,可以定义命令别名,如`alias ll='...

    SpaniardSort:Shell排序和混合排序的Java实现

    Shell排序的基本思想是将待排序的数组元素按照一定的间隔分组,然后对每组进行插入排序,随着间隔逐渐减小,直到间隔为1,整个数组成为一个组,此时再进行一次插入排序。这种方法减少了元素之间的比较次数,从而提高...

    Java排序算法汇总

    例如,Java标准库提供了`java.util.Arrays.sort()`方法,内部实现了高效的TimSort算法,结合了插入排序和归并排序的优点,既保证稳定性又能适应部分有序的数据。 了解并熟练掌握这些排序算法,不仅可以提升编程能力...

    java基础数据结构-排序算法

    - **Shell排序**:通过先将整个待排序的记录分割成为若干子序列分别进行直接插入排序,最后再对整个序列进行一次直接插入排序。时间复杂度取决于增量序列的选择。 - **归并排序**:也是一种分治算法,将数组分成两...

    【史上最全最新】BASH脚本高级编程_英文原版V10

    同时,"Arrays"章节将引入数组的概念,让读者了解如何处理多值数据。 "Command Substitution"和"Process Substitution"章节则涉及如何获取命令的输出并将其作为输入,以及如何创建临时文件或命名管道进行数据交换,...

    排序算法-java实现

    9. **Shell排序**(Shell Sort):Shell排序是插入排序的一种改进版本,通过间隔序列(如希尔增量)来减少比较和交换的次数,提高效率。虽然Java没有内置的Shell排序,但可以通过自定义实现。 在实际应用中,开发者...

    Java-variety-method.rar_Variety

    1. **内置排序方法**:Java的`java.util.Arrays`类提供了一些内置的排序方法,如`Arrays.sort()`,可以对整型、浮点型、字符型以及对象数组进行排序。对于对象数组,它默认使用自然顺序(基于`Comparable`接口)或者...

    java排序方法.pdf

    在Java编程语言中,排序是数据处理中非常基础且重要的操作。这个文档“java排序方法....实际开发中,Java的`Arrays.sort()`和`Collections.sort()`方法已经内置了高效的排序机制,通常比手动实现的排序更快、更稳定。

    java排序大全(含各种排序算法)

    Java排序算法是编程中基础且重要的概念,它们用于组织数组或列表中的...在实际编程中,Java的`Collections.sort()`和`Arrays.sort()`方法通常提供了足够的性能,但理解这些基本排序算法有助于深入理解数据结构和算法。

Global site tag (gtag.js) - Google Analytics