iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Shell数组添加元素及注意事项
  • 293
分享到

Shell数组添加元素及注意事项

Shell数组添加元素Shell数组添加 2022-06-04 23:06:44 293人浏览 薄情痞子
摘要

向shell数组添加元素有多种方法,每种方法在使用时都有一些需要注意的地方,没有见过这方面的总结资料,所以自己总结一下。 直接下标添加 array_name[index]=value 最简单的添加方式,直接用下

shell数组添加元素有多种方法,每种方法在使用时都有一些需要注意的地方,没有见过这方面的总结资料,所以自己总结一下。

直接下标添加


array_name[index]=value

最简单的添加方式,直接用下标index为数组元素赋值,在使用时需要注意的是就是需要确保下标index处原本是没有值的,否则会替换index处原本的值。

数组长度添加


array_name[${#array_name[@]}]=value
#或array_name[${#array_name[*]}]=value

以数组长度为下标添加,每次只能增加一个元素。但此方法有一个前提,就是数组中的元素下标必须是连续的,否则会存在替换已有元素的风险。例如:


arr=([1]="a" [2]="b")
echo ${arr[@]}
arr[${#arr[@]}]="c"
echo ${arr[@]}

实际上并有添加元素,而是将下标为2的元素值“b”替换为了“c”。

重新创建数组


array_name=("${array_name[@]}" value1 ... valueN)

 这种方式不需要下标连续,可同时添加多个元素,但是有一些要注意的地方:

首先,使用此方式添加元素后,数组中原有元素的下标会重置,会从0开始变成连续的,如果不希望改变下标则不能使用这种方式。

其次,双引号不能省略,否则,当数组array_name中存在包含空格的元素时会按空格将元素拆分成多个。

最后,不能将“@”替换为“*”,虽然在输出数组元素时可以相互替换,如果替换为“*”,不加双引号时与“@”的表现一致,加双引号时,会将数组array_name中的所有元素作为一个元素添加到数组中。类似于特殊变量$@和$*的区别。


#!/bin/bash
arr1=()
initArray(){
  arr1=([2]="a b" [3]=2 [5]=4)
}
showArray(){
  echo "Elements in arr1: ${arr1[@]}"
  echo "Length of arr1: ${#arr1[@]}"
  echo "The 3rd elements is: ${arr1[2]}"
  echo
}
initArray
echo "original arr1:"
showArray
echo "add new elements 3 and 5"
echo "--------------------"
echo "use @ without quote"
arr1=(${arr1[@]} 3 5)
showArray
initArray
echo "use * without quote"
arr1=(${arr1[*]} 3 5)
showArray
initArray
echo "use @ with quote"
arr1=("${arr1[@]}" 3 5)
showArray
initArray
echo "use * with quote"
arr1=("${arr1[*]}" 3 5)
showArray

运行结果为:

original arr1:
Elements in arr1: a b 2 4
Length of arr1: 3
The 3rd elements is: a b
 
add new elements 3 and 5
--------------------
use @ without quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 6
The 3rd elements is: 2
 
use * without quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 6
The 3rd elements is: 2
 
use @ with quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 5
The 3rd elements is: 4
 
use * with quote
Elements in arr1: a b 2 4 3 5
Length of arr1: 3
The 3rd elements is: 5

赋值运算符+=


array_name+=(value1 ... valueN)

 这种方式不需要元素下标连续,可以添加多个元素,添加后元素下标不会重置,不存在元素覆盖的风险。唯一要注意的就是“+=”前后不能有空格,并且后面的待添加元素必须用“()”包围起来,并且多个元素用空格分隔。新添加的元素的下标取决于原本数组中最后有值的元素的下标。


#!/bin/bash
arr1=()
initArray(){
  arr1=([2]="a b" [3]=2 [5]=4)
}
showArray(){
  echo "Elements in arr1: ${arr1[@]}"
  echo "Length of arr1: ${#arr1[@]}"
  echo "The 3rd elements is: ${arr1[2]}"
  echo
}
initArray
echo "original arr1:"
showArray
echo "add new elements 3 and 5"
echo "--------------------"
echo "use += "
arr1+=(3 5)
showArray
echo "The 8th elements is: ${arr1[7]}"

运行结果为:

original arr1:
Elements in arr1: a b 2 4
Length of arr1: 3
The 3rd elements is: a b
 
add new elements 3 and 5
--------------------
use +=
Elements in arr1: a b 2 4 3 5
Length of arr1: 5
The 3rd elements is: a b
 
The 8th elements is: 5

数组中原本的元素没有改变,新添加的元素下标是在最后有值的元素下标5的基础上递增的。

总结

DhPztqS
添加方式 语法

可添加多个元素

下标必须连续 添加后下标改变 可能覆盖原有元素
直接下标添加 array_name[index]=value
数组长度添加

array_name[${#array_name[@]}]=value

或array_name[${#array_name[*]}]=value

重新创建数组 array_name=("${array_name[@]}" value1 ... valueN)
赋值运算符+= array_name+=(value1 ... valueN)

到此这篇关于Shell数组添加元素及注意事项的文章就介绍到这了,更多相关Shell数组添加元素内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

--结束END--

本文标题: Shell数组添加元素及注意事项

本文链接: https://www.lsjlt.com/news/21263.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Shell数组如何添加元素及注意事项
    这篇文章给大家分享的是有关Shell数组如何添加元素及注意事项的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。直接下标添加array_name[index]=value最简单的添加方式,直接用下标index为数组元...
    99+
    2023-06-09
  • JavaScript数组怎么添加元素
    在JavaScript中,可以使用`push()`方法向数组中添加元素。例如,有一个空数组`arr`,想要向其中添加元素`1`,可以...
    99+
    2023-10-12
    JavaScript
  • sql中添加数据要注意哪些事项
    在SQL中添加数据时,需要注意以下事项:1. 表结构:确保要插入数据的表已经正确创建,并且字段类型、长度、约束等与要插入的数据相匹配...
    99+
    2023-10-10
    sql
  • php中怎样添加数组元素
    在 PHP 中,数组是一种非常常见和广泛使用的数据类型。在很多情况下,我们需要向数组中添加元素。本文将介绍 PHP 中添加数组元素的不同方法和技巧。使用数组下标要向数组中添加一个新元素,可以使用数组的下标来实现。PHP 中使用数组下标的语法...
    99+
    2023-05-23
  • java怎么往数组添加元素
    在Java中,可以使用数组的拷贝来实现向数组中添加元素的操作。具体步骤如下:1. 创建一个新的数组,长度比原数组大1。2. 使用Sy...
    99+
    2023-10-07
    java
  • 怎么向PHP数组添加元素
    要向PHP数组添加元素,可以使用以下几种方法: 使用方括号语法: $array = []; $array[] = 'e...
    99+
    2024-04-02
  • python数组中如何添加元素
    在Python中,可以使用`append()`方法向数组中添加元素。例如:```my_array = [1, 2, 3]my_arr...
    99+
    2023-09-26
    python
  • mysql添加索引要注意哪些事项
    在添加索引时,需要注意以下几个事项: 索引不是越多越好,过多的索引会增加数据库的存储空间和维护成本,同时也会影响数据的插入、更新...
    99+
    2024-05-13
    mysql
  • MySQL添加字段要注意哪些事项
    在添加字段之前,应该先进行备份数据,以防意外发生导致数据丢失。 确保字段的数据类型、长度、默认值、是否可以为NULL等属性设置正确...
    99+
    2024-04-09
    mysql
  • MySQL添加外键要注意哪些事项
    在 MySQL 中添加外键时,需要注意以下几点事项: 确保被引用的表和引用的表使用的存储引擎必须是 InnoDB,因为只有 In...
    99+
    2024-04-09
    MySQL
  • HTML中元素居中要注意哪些事项
    这篇文章主要讲解了“HTML中元素居中要注意哪些事项”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML中元素居中要注意哪些事项”吧!   不使用定位 ...
    99+
    2024-04-02
  • java如何往数组里添加元素
    在Java中,数组的长度是固定的,一旦创建后就无法改变。但可以通过创建一个新的数组,并将原数组的元素复制到新数组中来实现往数组中添加元素的效果。下面是一个示例代码:```javapublic class Main {public sta...
    99+
    2023-08-09
    java
  • php如何添加二维数组元素
    二维数组是一种嵌套的数据结构,它由多个一维数组组成。在 PHP 中,添加二维数组元素需要使用一个或多个数组函数,本文将介绍如何添加二维数组元素。使用 array_push 函数array_push 函数是 PHP 提供的一个向数组尾部添加元...
    99+
    2023-05-19
  • python怎么向数组中添加元素
    在 python 中,向列表中添加元素的方法有四种:使用 append() 方法附加到末尾;使用 extend() 方法添加另一个可迭代对象的元素;使用 insert() 方法在指定位置...
    99+
    2024-05-05
    python 可迭代对象
  • python如何向数组中添加元素
    在Python中,可以使用append()方法向数组中添加元素。append()方法将元素添加到数组的末尾。以下是一个示例代码:``...
    99+
    2023-08-29
    python
  • vba怎么向数组中添加元素
    在VBA中,可以使用ReDim语句来重新定义数组的大小,并将元素添加到数组中。以下是向数组中添加元素的示例代码:```vbaSub ...
    99+
    2023-09-26
    vba
  • php怎么往数组中添加元素
    要往PHP数组中添加元素,可以使用以下几种方式:1. 使用[]操作符:可以使用[]操作符在数组末尾添加元素。例如:```php$ar...
    99+
    2023-10-10
    php
  • java怎么往数组里添加元素
    在Java中,如果想向数组中添加新的元素,需要创建一个新的数组,并将原数组中的元素复制到新数组中,同时将新元素添加到新数组的末尾。下...
    99+
    2023-08-19
    java
  • MySQL数据表添加字段要注意哪些事项
    在MySQL数据表中添加字段时,需要注意以下几个事项:1. 数据表的设计要满足数据库范式的要求,避免冗余和重复的数据。2. 添加字段...
    99+
    2023-09-08
    MySQL
  • JavaScript中怎么给数组添加元素
    这篇文章将为大家详细讲解有关JavaScript中怎么给数组添加元素,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在javascript中,有三种方法可以向...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作