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. 从零玩转人脸识别验证-face

    title: 从零玩转人脸识别验证 date: 2022-05-15 21:05:52.974 updated: 2023-05-16 00:00:11.594 url: https://www.yb ...

  2. Ubuntu 20.04 设置时区、配置NTP同步 timesyncd 代替 ntpd

    本文的服务器环境为 Ubuntu 20.04 系统,一个拥有 sudo 权限的非 root用户,并开启了防火墙. 基本时间命令 要在 Ubuntu 20.04 系统上查看服务器时间,可以使用 date ...

  3. 使用 PostgreSQL 实现 PageRank

    PageRank 算法 ​ 作为 Google 最早的一个网页排名算法,该算法在早期的搜索引擎中是搜索结果最为准确的,同时也是 Google 发家的一个重要算法.尽管这些年来该算法不再是 Google ...

  4. 2023-08-28:用go语言编写。给你一个正整数数组nums, 同时给你一个长度为 m 的整数数组 queries。 第 i 个查询中,你需要将 nums 中所有元素变成 queries[i] 。

    2023-08-28:用go语言编写.给你一个正整数数组nums, 同时给你一个长度为 m 的整数数组 queries. 第 i 个查询中,你需要将 nums 中所有元素变成 queries[i] . ...

  5. 【程序员的福音】一款C#开源的GitHub加速神器

    前言 作为一个程序员你是否会经常会遇到GitHub无法访问(如下无法访问图片),或者是访问和下载源码时十分缓慢就像乌龟爬行一般.之前有尝试过手动修改host文件来解决网站的访问问题,以及更换网络但还是 ...

  6. 最基本的SpringCloud的搭建

    对于springcloud而言,模块是按业务进行区分的: 父工程 依赖 <parent> <groupId>org.springframework.boot</group ...

  7. 【技术控请进】华为云DevCloud深色模式开发解读

    引言 近期,华为云DevCloud推出了开发者友好的深色模式,深受开发者们的喜爱和关注.大家都知道,深色模式(Dark Mode)在iOS13 引入该特性后各大应用和网站都开始支持了深色模式.在这之前 ...

  8. 【DevCloud · 敏捷智库】如何利用核心概念解决估算常见问题(内附下载材料)

    摘要:团队用于估算时间过多,留给开发的时间会相应减少,大家工作紧张,状态不佳.团队过度承诺直接造成迭代目标不能完成,士气低落.以上弊端直接伤害敏捷团队,是敏捷团队保持稳定健康节奏的阻力. 背景 敏捷江 ...

  9. Serverless: AI everywhere的下一块拼图

    摘要:本文介绍华为云函数工作流(FunctionGraph)的灵活.速度,如何让开发人员提升工程效率,缩短TTM等 本文分享自华为云社区<华为云FunctionGraph函数工作流-- Serv ...

  10. iOS 应用上架的步骤和工具简介

    编辑 APP开发助手是一款能够辅助iOS APP上架到App Store的工具,它解决了iOS APP上架流程繁琐且耗时的问题,帮助跨平台APP开发者顺利将应用上架到苹果应用商店.最重要的是,即使没有 ...