1.介绍

Shell 支持数组(Array),数组是若干数据的集合,其中的每一份数据都称为数组的元素。

注意Bash Shell 只支持一维数组,不支持多维数组。

2.数组的定义

2.1 语法

在 Shell 中,用括号( )来表示数组,数组元素之间用空格来分隔. 语法为:

array_name=(item1  item2 ...)  # 方式1
array_name=([索引下标1]=item1 [索引下标2]=item2 ...) # 方式2

注意,赋值号 = 两边不能有空格

2.2 演示

1.定义数字存储100,3,22,58,77,17,20

nums=(29 100 13 8 91 44)

2.Shell 是弱类型的,它并不要求所有数组元素的类型必须相同

arr=(20 56 "http://www.itcast.cn/")

Shell数组元素定义后不是固定的, 定义后还可以赋值

arr[6]=100

3.可以给指定元素赋值初始化

arr2=([0]=1 [2]=100 [4]=aa)

由于上面只赋值了3个元素, 所以数组的长度是3

3.数组的获取

3.1 语法

1.通过下标获取元素值,index从0开始

${arr[index]}

注意使用{ }

2.获取值同时复制给其他变量

item=${arr[index]}

3.使用 @ 或 * 可以获取数组中的所有元素

${arr[@]}
${arr[*]}

4.获取数组的长度或个数

${#arr[@]}
${#arr[*]}

5.获取数组指定元素的字符长度

${#arr[索引]}

4.数组的拼接

所谓 Shell 数组拼接(数组合并),就是将两个数组连接成一个数组

4.1 语法

使用 @ 和 * 获取数组所有元素之后进行拼接

array_new=(${array1[@]} ${array2[@]} ...)
array_new=(${array1[*]} ${array2[*]} ...)

4.2 演示

5.数组的删除

删除数组指定元素数据和删除整个数组数据

5.1 语法

删除数组指定元素数据

unset array_name[index]

删除整个数组

unset array_name

05-Shell索引数组变量的更多相关文章

  1. C Shell中的变量数组

    今天刚刚在看一点C Shell的内容,发现一个挺好玩的东西!就是环境变量可以像数组那样来设置!具体设置语法如下: set variable=(element1 element2 ...) //注意元素 ...

  2. shell脚本-数组

    shell脚本-数组 数组 变量:存储单个元素的内存空间. 数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 数组索引:编号从0开始,属于数值索引.索引可支持使用自定义的格式,而不仅是数值格 ...

  3. shell脚本1——变量 $、read、``

    与Shell变量相关的几个命令: 变量只在当前Shell中生效. source 这个命令让脚本影响他们父Shell的环境(. 可以代替source命令) export 这个命令可以让脚本影响其子She ...

  4. 01 shell编程之变量定义

    一.SHELL介绍 ㈠ 什么是shell脚本? 简单来说就是将需要执行的命令保存到文本中,按照顺序执行.它是解释型的,意味着不需要编译. 若干命令 + 脚本的基本格式 + 脚本特定语法 + 思想= s ...

  5. 我们一起来学Shell - shell的数组

    文章目录 什么是数组 数组中常用变量 数组的定义 小括号定义数组变量 小括号加键值对定义数组变量 分别定义数组变量 动态地定义数组变量 数组赋值的切片 遍历数组 关联数组 我们一起来学Shell - ...

  6. Linux shell和环境变量

    环境变量 存储有关shell会话和工作环境信息:允许在内存中存储数据. 注意什么时候要用$ 什么时候不用$:用到变量,需要$;操作变量,不需要$.printenv除外 分为两类: 全局变量:对shel ...

  7. shell之数组

    1.从数组的下标分为索引数组.关联数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /* 索引数组,即通常情况下所说的数组 */ var ary1 = [1,3,5, ...

  8. Linux shell之数组

    引言 在Linux平台上工作,我们经常需要使用shell来编写一些有用.有意义的脚本程序.有时,会经常使用shell数组.那么,shell中的数组是怎么表现的呢,又是怎么定义的呢?接下来逐一的进行讲解 ...

  9. Bash : 索引数组

    Bash 提供了两种类型的数组,分别是索引数组(indexed array)和关联数组(associative array).本文主要介绍索引数组的基本用法. 索引数组的基本特点 Bash 提供的数组 ...

  10. PHP索引数组+unset使用不当导致的问题

    转自先知社区 https://xz.aliyun.com/t/2443 0x00前言 通常网站后台可以配置允许上传附件的文件类型,一般登录后台,添加php类型即可上传php文件getshell.但是, ...

随机推荐

  1. 生成式AI:未来的发展方向是什么?

    生成式AI的问世标志着人工智能领域迎来了一个全新时代的开启.今年,ChatGPT的面世引起了广泛的热议和关注,许多人认为这标志着人工智能领域进入了一个大规模探索的时代.然而,事实上,这只是生成式AI发 ...

  2. django数据库事务操作celery任务注意事项

    from django.db import transaction from django.http import HttpResponseRedirect @transaction.atomic d ...

  3. npm 发布流程

    登录npm 查看本地是否登录 # 全局配置源 npm who am i # 官方源 npm who am i --registry https://registry.npmjs.org 注: npm源 ...

  4. 在Linux服务器上装jenkins(方式二:rpm包)

    官网下载jenkins https://www.jenkins.io/zh/download/ 上面比较慢,我们从清华大学开源镜像站下载安装包:https://mirrors.tuna.tsinghu ...

  5. NC65元数据添加七彩版时注意点

    元数据添加七彩版时注意点 元数据七彩版模式 --- 主要添加Xml文件调整格式 添加时注意点如下 手动创建Panel时 自动生成的实现方法中有一个方法的返回值一定要为true 该方法主要是控制显不显示 ...

  6. MyBatis 的缓存处理

    作为常见的 ORM 框架,在使用 MyBatis 的过程中可以针对相关的查询进行缓存处理以提高查询的性能.本文将简要介绍一下 MyBatis 中默认的一级缓存和二级缓存,以及自定义缓存的处理 MyBa ...

  7. Mybatis源码1JDBC->mybatis主要流程->mybatis Excutor简介

    === 一丶mybatis概述 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL.存储过程以及高级映射.MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作.My ...

  8. hiveSQL常见专题

    SQL强化 SQL执行顺序 --举例: select a.sex, b.city, count(1) as cnt, sum(salary) as sum1 from table1 a join ta ...

  9. LeetCode1两数之和、15三数之和

    1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,数组中同一个元素 ...

  10. 教你如何在Python中读,写和解析CSV文

    摘要:在这篇文章中关于"在Python如何阅读CSV文件"中,我们将学习如何读,写和解析的CSV文件的Python. 您知道将表格数据存储到纯文本文件背后的机制是什么吗?答案是CS ...