Linux数组

目录

一.概念

(一)什么是数组?

(二)数组的表现方式

(三)数组的数据类型

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

(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.mzph.cn/news/839009.shtml

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

相关文章

python科研数据可视化之折线图

例如 : 下面的配色表画出的图很好看。选择喜欢的颜色,找到代码中颜色部分进行修改即可。 代码部分已经有详细的注释,就不一一解释了。另外,如果想要坐标轴从设定的值开始就把下面代码中的范围xlim,ylim进行注释。 imp…

设计模式12——外观模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用,主要是下面的UML图可以起到大作用,在你学习过一遍以后可能会遗忘,忘记了不要紧,只要看一眼UML图就能想起来了。同时也请大家多多指教。 外观模式(Facade&a…

javaSwing购物系统项目(文档+视频+源码)

摘要 由Java swing实现的一款简单的购物程序,数据库采用的是mysql,该项目非常简单,实现了管理员对商品类型和商品的管理及用户注册登录后浏览商品、加入购物车、购买商品等功能,旨在学习Java 图形界面开发 系统实现 我们先来管理…

CF451E: Devu and Flowers(容斥原理 + 考虑反面 + golang组合模版)

题目截图 题目翻译 题目分析 正难则反,考虑所有不符合的例子 由于n很小,所以可以状态压缩二进制遍历完全部不符合例子的组合 对于不符合的例子,假设其中第i个不符合,那么就消耗掉fi 1个球 以此类推,减剩下s2个球 这时…

《角谷猜想》

描述 谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分…

一剪梅-答赠云安客刘自果

当众网友看了笔者“边吸氧边动鼠标”的短视频之后,纷纷发来微信问候。其中我的远房亲戚,那个正在潜心写作数十万字的长篇纪实文学《川江向东流》的66岁贤弟刘自果(号云安客,亦称自果居士),发来微信鼓励我&a…

【Vue】性能优化

使用 key 对于通过循环生成的列表,应给每个列表项一个稳定且唯一的 key,这有利于在列表变动时,尽量少的删除和新增元素。 使用冻结的对象 冻结的对象(Object.freeze(obj))不会被响应化,不可变。 使用函…

【Linux】网络层——IP协议

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:Linux 目录 👉🏻IP协议基本概念👉🏻IP的协议头格式👉🏻IP协议的网段划分五类IP地址子…

mysql数据库主从复制,搭建从库

1 期望效果 假设我们现在有两个服务器,两个服务器都有数据库,然后我们命名一个叫主数据库(Master),一个叫从数据库(Slave) 数据备份和容灾:通过主从复制,可以将主数据库…

618有什么宠物空气净化器推荐?希喂FreAir Lite宠物空气净化器真实体验

一、宠物空气净化器的必要性 掉毛季又来了,猫咪的毛发满天飞,怎么办?我家里的猫咪一到换毛季就掉满地的毛发,尤其喜欢在家里奔跑打闹,结果整个房间都是毛。为了减少家里空气中的浮毛,你都做过哪些努力呢&a…

关于「公 告」根据中华人民共和国法律,Bing 在中国内地暂停 “搜索自动建议” 功能 30 天

当我看见我们大家都这样我可放心了,我打开电脑搜索图片就发生了。 当我看见我们大家都这样我可放心了,坐等攻城狮修复。

关闭以及启动ubuntu图形界面

关闭以及启动ubuntu图形界面 文章目录 关闭以及启动ubuntu图形界面1. 关闭图形界面2. 打开图形界面 如果你误杀了Xorg进程,需要重新启动图形界面,可以按照以下步骤操作: 1. 关闭图形界面 查看当前启动的图形界面: 使用下面命令…

LeetCode刷题之HOT100之比特位计数

今天把仙剑三看完了,茂茂割肉让人无法释怀,眼泪止不住的流。长卿和紫萱的分离似乎也意味着重逢,这就是他们的宿命吧。怅然若失的感觉席卷全身,哎,做题吧。 1、题目描述 2、逻辑分析 题目要求将整数从0到此元素&#…

Vue搜索防抖

源码 npm install lodash<template><div><input v-model"query" input"onInput" placeholder"输入关键字进行搜索" /><ul><li v-for"item in results" :key"item.id">{{ item.name }}</…

【GO基础】1. Go语言环境搭建

Go语言环境搭建 Go的三种安装方式Go标准包安装Windows 安装验证是否安装成功 4.Go的第一个程序 Hello World.go Go的三种安装方式 Go有多种安装方式&#xff0c;可以选择自己适合的。这里介绍三种最常见的安装方式&#xff1a; Go源码安装&#xff1a;这是一种标准的软件安装…

零门槛微调大模型:基于 Ludwig 低代码框架使用 LoRA 技术微调实践

一、Ludwig 介绍 自然语言处理 (NLP) 和人工智能 (AI) 的飞速发展催生了许多强大的模型&#xff0c;它们能够理解和生成如同人类般的文本&#xff0c;为聊天机器人、文档摘要等应用领域带来了革命性的改变。然而&#xff0c;释放这些模型的全部潜力需要针对特定用例进行微调。…

GTP版本功能说明

个人简介 &#x1f468;&#x1f3fb;‍&#x1f4bb;个人主页&#xff1a;九黎aj &#x1f3c3;&#x1f3fb;‍♂️幸福源自奋斗,平凡造就不凡 &#x1f31f;如果文章对你有用&#xff0c;麻烦关注点赞收藏走一波&#xff0c;感谢支持&#xff01; &#x1f331;欢迎订阅我的…

QTextEdit 控件上显示信息:

目录 1. 使用 append 方法: 2. 使用 setPlainText 方法 3.例子&#xff1a; 1. 使用 append 方法: 如果你希望在 QTextEdit 控件上追加显示新的信息&#xff0c;可以使用 append 方法。例如&#xff0c;当你想要追加一行新的日志信息&#xff1a; self.text_edit.append(&…

于ThinkPHP开发的赛事报名小程序

基于ThinkPHP开发的赛事报名微信小程序 功能包括 1、参赛公告 2、会员中心&#xff08;会员注册、登录、成绩查询、资料管理、参赛记录管理&#xff09; 3、个人报名和企业报名 &#xff08;身份证验证防止重复报名&#xff09; 4、培训报名 5、查询是否在库人员&#xff0c;根…

3---版本库和工作区、使用.git管理工作区的文件、HEAD指针和master的关系

一、本地仓库和工作区的概念&#xff1a; 1.1本地仓库——版本库&#xff1a; 本地仓库又称为版本库。版本库是隐藏目录.git&#xff0c;并不是.git所在的目录。版本库不属于工作区。我们不能手动操作.git目录及其中的文件&#xff0c;这样可能会直接破坏版本库。stage(暂存区…