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

Shell - 学习笔记 - 2.12 - Shell获取数组长度

所谓数组长度,就是数组元素的个数。

利用@或*,可以将数组扩展成列表,然后使用#来获取数组元素的个数,格式如下:

${#array_name[@]}

${#array_name[*]}

其中 array_name 表示数组名。两种形式是等价的,选择其一即可。

如果某个元素是字符串,还可以通过指定下标的方式获得该元素的长度,如下所示:

${#arr[2]}

获取 arr 数组的第 2 个元素(假设它是字符串)的长度。

回忆字符串长度的获取

回想一下 Shell 是如何获取字符串长度的呢?其实和获取数组长度如出一辙,它的格式如下:

${#string_name}

string_name 是字符串名。

实例演示

下面我们通过实际代码来演示一下如何获取数组长度。

#!/bin/bash

nums=(29 100 13)

echo ${#nums[*]}

#向数组中添加元素

nums[10]="http://c.biancheng.net/shell/"

echo ${#nums[@]}

echo ${#nums[10]}

#删除数组元素

unset nums[1]

echo ${#nums[*]}

运行结果:

3

4

29

3

参考:

Shell获取数组长度 (biancheng.net)

相关文章:

  • MySQL篇----第二十二篇
  • 测试OpenSIPS3.4.3的lua模块
  • Docker容器监控-CIG
  • YOLOv5改进 | 一文汇总:如何在网络结构中添加注意力机制、C3、卷积、Neck、SPPF、检测头
  • 论文阅读-Pegasus:通过网络内一致性目录容忍分布式存储中的偏斜工作负载
  • 【云原生进阶之PaaS中间件】第三章Kafka-4.2-生产者工作原理剖析
  • PCIE Order Set
  • 中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第一套(完善程序题)
  • uni-app 经验分享,从入门到离职(年度实战总结:经验篇)——上传图片以及小程序隐私保护指引设置
  • django中查询优化
  • docker 2:安装
  • 数据分析基础之《pandas(7)—高级处理2》
  • 详解结构体内存对齐及结构体如何实现位段~
  • OSDI 2023: Conveyor One-Tool-Fits-All Continuous Software Deployment at Meta
  • Spring Boot 笔记 005 环境搭建
  • ----------
  • $translatePartialLoader加载失败及解决方式
  • Effective Java 笔记(一)
  • Flex布局到底解决了什么问题
  • HTTP那些事
  • input实现文字超出省略号功能
  • magento2项目上线注意事项
  • Python 反序列化安全问题(二)
  • python大佬养成计划----difflib模块
  • Python利用正则抓取网页内容保存到本地
  • REST架构的思考
  • Wamp集成环境 添加PHP的新版本
  • Web Storage相关
  • 数据结构java版之冒泡排序及优化
  • 详解移动APP与web APP的区别
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 自动记录MySQL慢查询快照脚本
  • UI设计初学者应该如何入门?
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​2021半年盘点,不想你错过的重磅新书
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • $jQuery 重写Alert样式方法
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (理论篇)httpmoudle和httphandler一览
  • (五)Python 垃圾回收机制
  • (转)Unity3DUnity3D在android下调试
  • (转载)从 Java 代码到 Java 堆
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • **PHP二维数组遍历时同时赋值
  • .NET MVC之AOP
  • .NET 命令行参数包含应用程序路径吗?
  • .NET构架之我见
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法
  • [ 2222 ]http://e.eqxiu.com/s/wJMf15Ku
  • []常用AT命令解释()
  • [100天算法】-实现 strStr()(day 52)
  • [Android 数据通信] android cmwap接入点
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数