`

数组--声明-定义-追加-清楚操作--(网上收集)

    博客分类:
  • OS
 
阅读更多

[关于声明]
比较通用的做法,如kshbash
declare -a
数组名

注意在ksh下还支持另外一种独特的变量声明赋值语法比较特殊。


set -A varname var1 var2 var3 varn

末了要说明一下,一般任意的shell下变量可以拿来就用,不必声明。

[关于赋值]
下面的两种这种方法适用于bashksh
定义一
varname=(var1 var2 var3 varn)
定义二
varname[0]=var1
varname[1]=var2
varname[2]=var3
varname[n-1]=varn
定义三
csh我们需要这样定义:
set varname=(var1 var2 var3 varn)
set varname[1]=var1
set varname[2]=var2
set varname[3]=var3
set varname[n]=varn

特别注意在csh和其它shell中不同的是数组的下标是从1开始的。

[关于引用]
全部引用
方法一
适用于bashkshcsh等大部分shell
${varname[*]}
方法二
只适用于bashksh,对于csh不适用。
${varname[@]}

方法三

只适用于csh,不支持kshbash
$varname

单独引用
语法适用于bashkshcsh等大部分shell,但是在csh/tcsh下的意义和其它shell有差异。
${varname[n]}
例如:echo ${barname[3]}

请严格区分cshbashcsh的区别。因为在csh中没有下标为0的数组元素,下标的序数是从1开始的。


数组包含数值的数目

方法一:
只适用于bashksh,不支持csh
${#varname[*]}
方法二:

只支持csh,不支持bashksh

$#varname


数组中某一个值的字符长度
只适用于bashksh,不支持csh
${#varname[1]}

bashksh $varname${varname[0]}的含意是一样的; $varname[1]${varname[1]}含意是不一样的,$varname[1]等价于${varname[0]}"[1]"。在csh $varname${varname[*]}的含意是一样的。

[元素的添加、删除]
删除数组中元素:
该方法适用于bashksh,不支持csh
unset varname[5]
关于数组中元素的值的清除,即置空:
bash
ksh下这样操作,不支持csh
varname[5]= #
清除数组varname中的第六个元素
关于数组的清除:
适用于bashkshcsh等大部分shell
unset varname

向数组中添加元素:
方法一、二只适用于bashksh,不适用于csh

方法一:
varname=(${varname[*]} varn-1 varn varn+1)
方法二:
varname[${#varname[*]}]=varn
方法三:
csh特有的。
set varname=($varname varn+1 varn+2) #
或者$varname${varname[*]}替换。

[关于数组的批量处理]
这部分内容,说白了就是综合运用各种shell的内建循环命令。只要对前面的内容熟悉了,并对各种shell的循环命令有一定的了解,难度就不是很大。
由于涉及bashkshcsh下的实现及不同的语法形式,涉及数组的赋值、添加和删除元素、读取多个方面。所以计划单独一篇文章来说明。

 

 

分享到:
评论

相关推荐

    关于JS数组追加数组采用push.apply的问题

    以上的代码在mac的chrome下抛出了如下的异常 代码如下:Uncaught RangeError: Maximum call stack size exceeded如果把数组改为b = new Array(125623);小一个元素居然就好了,测试了一下其他浏览器也都有大数组才出错...

    php 操作数组(合并,拆分,追加,查找,删除等)

    数组是存储一系列数据的容器,PHP提供了多种内建函数来帮助我们处理数组,包括合并、拆分、追加、查找和删除等操作。下面我们将详细探讨这些操作以及相关的PHP函数。 1. **合并数组** - `array_merge()` 函数用于...

    数组练习题-20221107-184934.pptx

    在这些示例代码中,我们看到了几个关于数组操作的练习题,主要涉及字符数组的比较、从文本文件中读取和处理字符串数组以及从整数数组中删除特定元素。 首先,让我们来看一下字符数组的比较。在第一个代码段中,我们...

    javascript数组

    ### JavaScript 数组详解 #### 一、数组的基本操作 ...通过以上介绍,我们不仅了解了如何创建和操作数组,还深入探讨了数组的各种属性和方法,这将有助于更好地理解和使用 JavaScript 中的数组功能。

    matlab数组扩展大小的三种方法及其比较

    ### MATLAB数组扩展大小的三种方法及其比较 ...综上所述,在MATLAB中处理动态数组时,应优先考虑预先定义数组并逐个赋值的方法,其次可以考虑使用`end`索引来扩展数组。这两种方法都可以有效地提高程序的运行效率。

    JavaScript常用的数组操作方法1.pdf

    例如,`arr.concat(value1, value2, ..., valueX)` 或 `arr.concat(array2, array3, ..., arrayX)`,可以将单个元素或整个数组追加到原数组后面。 - **push()** 方法用于在数组末尾添加一个或多个元素,同时返回...

    易语言数组到文件

    "易语言数组到文件"这个主题涉及到将数组的内容写入文件,以及从文件中读取恢复为数组的操作。这在数据持久化、备份或者数据交换等场景中非常常见。 首先,我们需要理解易语言中的数组概念。易语言的数组可以是一维...

    数据分析-python数组

    4. 列表操作:包括切片、追加、插入、删除等。例如,`my_list[1:3]`返回[2, 'three'],`my_list.append(5)`在末尾添加5。 5. 列表方法:`append()`、`extend()`、`insert()`、`remove()`、`pop()`等提供了对列表的...

    js数组说明大全

    * push() 方法:向数组最后追加元素:arr.push("邢志云"); * pop() 方法:弹出最后一个元素:s = arr.pop(); * unshift() 方法:插入到第一个元素之前:arr.unshift("第一","第二"); * shift() 方法:弹出第一个元素...

    第五章 php数组操作

    可以在已有的数组中添加新的键值对,追加操作不会影响到数组中已有的元素。 ```php $ages = array('Jack' => 23); $ages['Lucy'] = 25; $ages['Mark'] = 28; ``` #### 3. 直接添加元素 可以在不创建数组的情况下...

    20151910042-刘鹏-DSA实验05-数组序列实验1

    动态数组类`DynamicArray`包含了初始化、获取长度、获取指定索引元素以及追加元素等基本操作。这个实现利用了`ctypes`库来创建低级别的数组,当数组容量不足时,会自动扩大容量,确保能容纳更多的元素。这种实现方式...

    MongoDB数组更新操作符.pdf

    - `$push` 操作符用于向文档中的数组字段追加一个或多个元素。如果指定的键已经是一个数组,它会简单地在数组末尾添加新的元素。例如,如果你有一个用户集合,每个用户文档有一个`hobbies`数组,你可以使用`$push`...

    动态数组的C语言实现

    在C语言中实现动态数组,我们需要一个结构体来存储数组的大小和指针,以及一系列操作数组的方法,如初始化、添加元素、删除元素和释放内存。这三个文件可能分别对应于这些功能: 1. **array.h**:头文件,声明动态...

    commons.lang ArrayUtils类的中文api

    `ArrayUtils`类是Apache Commons Lang库中的一个重要工具类,主要用于处理数组的各种操作。相较于Java标准库中的数组操作,`ArrayUtils`提供了更多实用且灵活的方法。本文将围绕`ArrayUtils`类的主要功能进行详细...

    用php递归将二维数组转换成一维数组

    5. 如果`$value`不是数组,说明它是我们要收集的值,将其添加到结果数组`$result_array`中,使用`[]`操作符在数组末尾追加元素。 6. 循环结束后,返回最终的一维数组`$result_array`。 接下来,我们将使用示例数据...

    C++程序设计课程实践-数组操作与文件IO综合运用

    内容概要:本文展示了三个C++函数的实现及其主调用流程,这些函数主要用于数据的输入、处理和排序输出,并详细解释了C++中的文件读写操作。程序分为几个部分:首先让用户输入两次各10个整数,将它们分别保存到两个...

    MATLAB代码示例,用于将一个字符串添加到字符串数组的末尾(附详细步骤).txt

    ### MATLAB中的字符串数组添加操作详解 #### 一、引言 在数据科学和自然语言处理领域,处理文本数据是一项常见的任务。MATLAB作为一种强大的计算工具,提供了多种方式来操作字符串和字符串数组。本文将详细介绍...

    c++ 蛇形数组 倒三角

    1. 定义二维数组:根据题目需求,我们需要创建一个动态的二维数组,大小取决于输入的行数(n行)。可以使用vector容器来实现动态分配。 ```cpp #include std::vector<std::vector<int>> matrix; matrix.resize(n);...

    将两个有序数组,合并成另一个有序的数组,升序

    由于我们事先已经知道两个输入数组是有序的,剩余的元素必然是比之前所有已合并的元素都要大的值,因此这种追加操作不会破坏数组c的有序性。当我们完成所有元素的合并后,数组c就成为了一个新的、有序的数组。 这个...

Global site tag (gtag.js) - Google Analytics