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

【学习分享】shell基础-数组

1.3 数组
1.3.1 数组基础概念

shell的数组命名规则和变一致,格式和主流的编程语言也是一致的,唯一的区别是,数组当中不同的值是用空格隔开的,而非逗号。

#!/bin/bash
array=(1 2 3 4 5 6)
echo $(array[0])  #shell的数组下标也是从0开始而非1,打印第一个数据“1”

 

1.3.2 关联数组

基础概念:可以使用任意的字符串、或者证书作为下标来访问数组元素。通俗一点的理解就是,普通的数组访问数据内部的元素只能使用下标,且下标只能是阿拉伯数字,关联数组就突破了这个限制,这个“下标”不再是数字,可以是字符串形式。

语法格式:declare -A array_name ,其中-A生命一个关联数组,且键唯一。

#!/bin/bash
declare -A array_test=(["a"]="test1" ["b"]="test2" ["c"]="test3")
echo "打印array_test的值"
echo ${array_test["A"]} #输出test1
echo ${array_test["B"]} #输出test2
echo ${array_test["C"]} #输出test3
echo ${array_test[*]}   #输出test1、test2、test3
echo "打印结束"
​
#也可以先定义,再赋值
declare -A array_test1
array_test1["A"]="kkk"
array_test1["B"]="lll"
array_test1["C"]="JJJ"
echo "开始"
echo ${array_test1["A"]}
echo ${array_test1["B"]}
echo ${array_test1["C"]}
echo "结束"
1.3.3 数组键获取办法

再打印所有值的前面增加感叹号,见以下代码的打印行

#!/bin/bash
declare -A array_test=(["a"]="test1" ["b"]="test2" ["c"]="test3")
echo "打印array_test的值"
echo ${array_test["A"]} #输出test1
echo ${array_test["B"]} #输出test2
echo ${array_test["C"]} #输出test3
echo ${array_test[*]}   #输出test1、test2、test3
echo "打印结束"
​
#也可以先定义,再赋值
declare -A array_test1
array_test1["A"]="kkk"
array_test1["B"]="lll"
array_test1["C"]="JJJ"
echo "开始"
echo ${array_test1["A"]}
echo ${array_test1["B"]}
echo ${array_test1["C"]}
echo "结束"
1.3.4 数组长度获取

再打印所有值的前面增加#,见以下代码的打印行

#!/bin/bash
declare -A array_test=(["a"]="test1" ["b"]="test2" ["c"]="test3")
echo "打印array_test的值"
echo ${#array_test[*]}   
echo "打印结束"

相关文章:

  • Day45 Python打卡训练营
  • minio入门学习
  • 【AI学习】KV-cache和page attention
  • 如何使用 Redis 快速实现布隆过滤器?
  • 守护进程实验——autoDL
  • ABP VNext 在 Kubernetes 中的零停机蓝绿发布
  • Java-IO流之转换流详解
  • 高性能分布式消息队列系统(三)
  • STM32 NVIC中断控制器
  • 【LLIE专题】NTIRE 2025 低照度图像增强第二名方案
  • JS深入学习 — 循环、函数、数组、字符串、Date对象,Math对象
  • 【Algorithm】Segment Tree 简单介绍
  • 图着色问题(回溯)
  • Redisson简明教程—你家的锁芯该换了
  • 【连接器专题】案例:从可靠性测试报告来看SD卡座测试都需要用到哪些仪器
  • Github Copilot新特性:Copilot Spaces-成为某个主题的专家
  • [大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
  • [蓝桥杯]修改数组
  • 28. Revit API:尺寸标注(Dimension)
  • 线程的基础知识
  • 西湖区网站建设/免费的网页入口
  • 网站开发时什么时间适合创建视图/企业网站建设报价表
  • 青海西宁高端网站建设/seo服务公司怎么收费
  • 没有做robots对网站有影响/游戏代理加盟
  • 珠宝网站源码免费下载/竞价托管公司排名
  • 网站建设与案例管理的心得体会/2022双11各大电商平台销售数据