Linux数组

news/2024/7/25 20:59:46/文章来源:https://blog.csdn.net/2401_83784774/article/details/138837976

目录

一.概念

(一)什么是数组?

(二)数组的表现方式

(三)数组的数据类型

二.运用数组查看、修改、删除相关信息

(1)查看数组的元素列表

(2)查看数组的长度(元素的个数)

(3)查看数组的元素下标

(4)查看某个下标的元素值

(5)将数组分片

三.数组遍历和重新定义

四.数组追加数值

五.使用函数运用数值

(一)向函数传数组参数

(二)从函数返回数组

六.实操运用

(1)判断数组是否完整


一.概念

(一)什么是数组?

数组是一种数据结构,用于存储相同类型的元素的集合。它由一组相同类型的元素组成,并按照一定的顺序排列。每个元素在数组中都有一个唯一的索引,可以通过索引来访问和修改数组元素。

数组可以用于存储任意类型的数据,如整数、浮点数、字符等。

(二)数组的表现方式

(1)数组名=(数值1 数值2 数值3)

(2)数组名=([0]数值 [1]数值 [2]数值 )

(3)列表名="数值1 数值2 数值3"

         数组名=($列表名)

(4)数组名[0]="数值"
         数组名[1]="数值"
         数组名[2]="数值"

(三)数组的数据类型

  • 数值型        (10 20 30 40 50 60)
  • 字符型        ("a" "b" "c" "d" "e")  或  ('a' 'b' 'c' 'd' 'e')

二.运用数组查看、修改、删除相关信息

(1)查看数组的元素列表

echo ${数组名[@]}         # @ 可以更换成 * 

echo ${数组名[*]}

(2)查看数组的长度(元素的个数)

echo ${#数组名[@]}
echo ${#数组名[*]}

(3)查看数组的元素下标

echo ${!数组名[@]}
echo ${!数组名[*]}

(4)查看某个下标的元素值

echo ${数组名[下标]}

(5)将数组分片

echo ${数组名[@]:下标:长度}
echo ${数组名[*]:下标:长度}

三.数组遍历和重新定义

arr=(1 2 3 4 5)
n=0
for i in ${arr[@]}
doarr[$n]=$[i*2]let n++
done

四.数组追加数值

1)数组名[新下标]=新数值

2)数组名[数组长度]=新数值        #注意:此方法只仅适用于完整的数组

3)数组名+=(新数值1 新数值2 ....)

4)数组名=("${数组名[@]}" 新数值1 新数值2 ....)

五.使用函数运用数值

(一)向函数传数组参数

函数名() {
     数组2=($@)         #在函数体内将传入的列表重新组成数组
     ....
}

函数名 ${数组1[@]}      #在函数体外将数组分解成列表传入

(二)从函数返回数组

函数名(){
    ....
    echo ${数组2[@]}     #在函数体内以列表形式返回值
}

数组1=(函数名 参数)      #在函数体外将函数执行的结果重新组合成数组

六.实操运用

(1)判断数组是否完整

#!/bin/bash
#判断数组是否完整
array1=(10 20 30 40 50 60)
array3=([0]="a" [1]="b" [2]="c" [3]="d" [5]="f")length1=${#array1[@]}
length3=${#array3[@]}last1=$[length1 - 1]
last3=$[length3 - 1]arr1_last=${array1[$last1]}
arr3_last=${array3[$last3]}ARR1_LAST=$(echo ${array1[@]} | awk '{print $NF}')
ARR3_LAST=$(echo ${array3[@]} | awk '{print $NF}')if [ "$arr1_last" == "$ARR1_LAST" ];thenecho "array1 为完整的数组"
elseecho "array1 数组不完整"
fiif [ "$arr3_last" == "$ARR3_LAST" ];thenecho "array3 为完整的数组"
elseecho "array3 数组不完整"
fi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1052120.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot3整合邮件服务实现邮件发送功能

⛰️个人主页: 蒾酒 🔥系列专栏:《spring boot实战》 目录 内容概要 开通服务 依赖引入 配置属性 创建邮件发送工具类 测试 最近发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家…

会声会影2024旗舰版神器,让你的视频秒变大片,小白也能轻松上手

在数字时代,视频已经成为了人们表达自我、记录生活的重要方式。无论是旅行中的美景,还是生活中的点滴瞬间,我们都渴望能够用镜头捕捉下来,并通过精心剪辑,将这些美好的画面永远珍藏。然而,对于大多数人来说…

用队列实现栈 用栈实现队列 设计循环队列

用队列实现栈 思路 栈的特点:后进先出 队列的特点:先进先出 使用两个队列实现栈: 我们可以使用两个队列,一个队列为:空队列,一个队列为:非空队列 当我们要出队列时: 将 size - …

Spring-Cloud-OpenFeign源码解析-04-调用流程分析

在Spring-Cloud-OpenFeign源码解析-03-FeignClientFactoryBean分析到,通过Autowired或者Resource注入FeignClient实例的时候,实际上返回的是JDK动态代理对象,具体的实现逻辑在InvocationHandler的invoke方法中 回看ReflectiveFeign.newInsta…

黑白按键-第13届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第67讲。 黑白按键&#xf…

酷黑简洁大气体育直播自适应模板赛事直播门户网站源码

源码名称:酷黑简洁大气体育直播自适应模板赛事直播门户网站源码 开发环境:帝国cms 7.5 安装环境:phpmysql 支持PC与手机端同步生成html(多端同步生成插件) 带软件采集,可以挂着自动采集发布,无…

安装HAP时提示“code:9568344 error: install parse profile prop check error”错误

问题现象 在启动调试或运行应用/服务时,安装HAP出现错误,提示“error: install parse profile prop check error”错误信息。 解决措施 该问题可能是由于应用使用了应用特权,但应用的签名文件发生变化后未将新的签名指纹重新配置到设备的特…

网络攻防概述(基础概念)

文章目录 APTAPT概念APT攻击过程 网络空间与网络空间安全网络空间(Cyberspace)网络空间安全(Cyberspace Security) 网络安全属性机密性(Confidentiality或Security)完整性(Integrity)可用性(Availability)不可否认性(Non-repudiation&#xf…

基于51单片机的函数发生器设计

一.硬件方案 此函数信号发生器是基于单片机AT89C51设计而成的,能够产生频率范围在0Hz—535Hz的锯齿波、正弦波、三角波、矩形波四种波形,并且能够通过液晶屏1602显示各自的波形类型以及频率数值。电路主要由51单片机最小系统DA0832模数转换模块运放模块…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(十六)- JUC(2)

目录 同步 两阶段终止模式 守护线程 线程状态 五种(操作系统角度) 六种(Java API角度) 烧水案例 共享模型之管程 临界区 竞态条件 同步 Slf4j(topic "c.TestJoin")public class TestJoin {static int r 0;static int r1 0;static int r2 0;​public sta…

【Linux】centos7下载安装Python3.10,下载安装openssl1.1.1

目录 centos7下载安装Python(版本3.10.14) (1)网页下载python压缩包,并解压缩 (2)编译安装 Python在make altinstall时,报错及解决 (3)将安装目录和可执…

C数据结构:二叉树

目录 二叉树的数据结构 前序遍历 中序遍历 后序遍历 二叉树的创建 二叉树的销毁 二叉树的节点个数 二叉树叶子节点个数 二叉树第K层节点个数 二叉树的查找 层序遍历 判断二叉树是否为完全二叉树 完整代码 二叉树的数据结构 typedef char BTDataType; typedef str…

【STL简单源码剖析】vector的实现

收灯庭院迟迟月 落索秋千翦翦风 目录 vector 简单概述 vector 代码摘要 vector 的迭代器 vector 成员变量 vector 构造析构 获取当前元素个数 获取当前容器容量 operator[]的运算符重载 vector 空间预留 push_back() 的实现 迭代器失效的简单讲解 pop_back() 的实现 insert…

驾考学法减分拍照搜题模拟考试小程序开发

驾考学法减分拍照搜题模拟考试小程序开发 项目介绍 驾考搜题,一款专为驾考学员设计的智能搜题助手,集合了海量题库与实战模拟,助力学员快速掌握驾考知识,轻松应对各类考试。 主要功能特点 智能搜题 通过关键词、拍照搜索&#xf…

【程序员如何送外卖】

嘿,咱程序员要在美团送外卖,那还真有一番说道呢。 先说说优势哈,咱程序员那逻辑思维可不是盖的,规划送餐路线什么的,简直小菜一碟。就像敲代码找最优解一样,能迅速算出怎么送最省时间最有效率。而且咱平时…

win10/win11 优先调用大核的电源计划性能设置

前言 大小核,即Intel 12代开始的P-core(性能核,一般叫大核)和E-core(能效核,一般叫小核)异核架构。说下个人理解,就是英特尔为了增加cpu性能,但是又因为架构和功耗的限制…

C++

定义自己的命名空间my_sapce,在my_sapce中定义string类型的变量s1,再定义一个函数完成对字符串的逆置。

YOLOv8+PyQt5面部表情检测系统完整资源集合(yolov8模型,从图像、视频和摄像头三种路径识别检测,包含登陆页面、注册页面和检测页面)

1.资源包含可视化的面部表情检测系统,基于最新的YOLOv8训练的面部表情检测模型,和基于PyQt5制作的可视化面部表情检测系统,包含登陆页面、注册页面和检测页面,该系统可自动检测和识别图片或视频当中出现的八类面部表情&#xff1a…

机器人系统ros2-开发学习实践15-模拟用 URDF 建模 步行机器人行走示例

目标: 本教程将向您展示如何建模行走机器人、将状态发布为tf2消息并在 Rviz 中查看模拟。首先,我们创建描述机器人组件的 URDF 模型。接下来,我们编写一个节点来模拟运动并发布 JointState 和变换。然后我们使用robot_state_publisher将整个…

STM32H743+USBHID+CubeMX配置

一、环境准备 电脑系统:Windows 10 专业版 20H2 IDE:Keil v5.35、STM32CubeMX v6.5.0 测试硬件:正点原子阿波罗STM32H743 二、测试步骤 1、使用用例工程 配置STM32H743定时器功能-CSDN博客https://blog.csdn.net/horse_2007s/article/d…