当前位置: 首页 > news >正文

【Linux Shell】4. 数组

文章目录

  • 【 1. 数组的定义 】
  • 【 2. 读取数组 】
  • 【 3. 关联数组 】
    • 3.1 关联数组的定义
    • 3.2 关联数组元素的调用
  • 【 4. 获取数组中的所有元素 】
  • 【 5. 获取数组的长度 】

  • 数组中可以存放多个值。 Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小。
  • 与大部分编程语言类似, Shell 数组元素的下标由 0 开始。

【 1. 数组的定义 】

  • Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:
数组名=(值1 值2 ... 值n)
  • 实例:一个正确的数组
#!/bin/bash
my_array=(A B "C" D)

或者

array_name=(
value0
value1
value2
value3
)
  • 使用数字下标来定义数组, 可以不使用连续的下标,而且下标的范围没有限制 。如下所示:
array_name[0]=value0
array_name[1]=value1
array_name[2]=value2

【 2. 读取数组 】

  • 读取数组元素值的一般格式是:
${数组名[下标]}
  • 实例:通过数字索引读取数组元素
#!/bin/bash
my_array=(A B "C" D)echo "FirstParameter:${my_array[0]}"
echo "SecondParameter:${my_array[1]}"
echo "ThirdParameter:${my_array[2]}"
echo "FourthParameter:${my_array[3]}"

在这里插入图片描述

【 3. 关联数组 】

  • Bash 支持关联数组, 可以使用任意的字符串、或者整数作为下标来访问数组元素。
  • 关联数组的键是唯一的。

3.1 关联数组的定义

  • 关联数组使用 declare 命令 来声明,语法格式如下:-A 选项就是用于声明一个关联数组。
declare -A array_name
  • 实例1:创建一个关联数组 site,并创建不同的键值。
declare -A site=(["google"]="www.google.com" ["runoob"]="www.runoob.com" ["taobao"]="www.taobao.com")
  • 实例2:先声明一个关联数组,然后再设置键和值。
declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"

3.2 关联数组元素的调用

  • 访问关联数组元素可以使用指定的键,格式如下:
array_name["index"]
  • 实例:通过键来访问关联数组的元素。
declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"echo ${site["runoob"]}

在这里插入图片描述

【 4. 获取数组中的所有元素 】

  • 使用 @ 或 * 可以获取数组中的所有元素。
${my_array[*]}或者${my_array[@]}
  • 实例1:获取数组中的所有元素。
#!/bin/bashmy_array[0]=A
my_array[1]=B
my_array[2]=C
my_array[3]=Decho "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"

在这里插入图片描述

  • 实例2:获取数组的所有键。
declare -A site
site["google"]="www.google.com"
site["runoob"]="www.runoob.com"
site["taobao"]="www.taobao.com"
echo "数组的键为: ${!site[*]}"
echo "数组的键为: ${!site[@]}"

在这里插入图片描述

【 5. 获取数组的长度 】

  • 获取数组长度的方法与获取字符串长度的方法相同。
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
  • 获取数组单个元素的长度
length=${#array_name[下标]}
  • 实例:获取数组的长度。
#!/bin/bashmy_array[0]="19527"
my_array[1]=B
my_array[2]=C
my_array[3]=Decho "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"
echo "数组第1个元素的长度为: ${#my_array[0]}"

在这里插入图片描述

http://www.lryc.cn/news/275809.html

相关文章:

  • 蓝牙运动耳机哪款好用?运动用什么耳机比较好?2024运动耳机推荐
  • XD6500S一款串口SiP模块 射频LoRa芯片 内置sx1262
  • 【华为OD机试真题2023CD卷 JAVAJS】测试用例执行计划
  • 猫长期吃猫粮好吗?主食冻干猫粮那种好吃又健康
  • 计算机毕业设计-----ssm停车位租赁系统
  • Git保姆级安装教程
  • 听GPT 讲Rust源代码--compiler(34)
  • 视频融合云平台/智慧监控平台EassyCVR告警警告出错是什么原因?该如何解决?
  • Gin 路由注册与请求参数获取
  • Linux第11步_解决“挂载后的U盘出现中文乱码”
  • 【第一节】安装java jdk 21
  • vue3+echart绘制中国地图并根据后端返回的坐标实现涟漪动画效果
  • HCIA-Datacom题库(自己整理分类的)_09_Telent协议【13道题】
  • Git专栏篇
  • Java-字符串-String类
  • ubuntu安装docker指定版本
  • 说一下 jsp 的 4 种作用域?
  • 性能分析与调优: Linux 使用ELRepo升级CentOS内核
  • 【【RTC实时时钟实验 -- 在HDMI上显示-FPGA 小实验】】
  • Flutter 图片和资源的高效使用指南
  • RedisTemplate 怎么获取到链接信息?怎么获取到所有key?怎么获取指定key?
  • 【Unity】动态申请权限
  • tp8/6 插件PhpOffice\PhpSpreadsheet导入表格
  • Android studio VideoView 应用设计
  • Python基础(十八、文件操作读取)
  • Mac 16g约等于Windows多少g?
  • 快麦ERP退货借助APPlink快速同步CRM
  • springMVC获取请求参数的方式
  • android常用方法
  • Linux内核--网络协议栈(一)Socket通信原理和实例讲解