Linux:shell脚本:基础使用(9)《数组》
数组就是一组数据类型相同集合
定义
数组名=(元素内容…………)
如果没有元素内容就是空
arr1=()
# 定义了一个空数组
arr2=(1 2 3 4 5 6 )
# 定义了一个元素是整形的数组
arr3=("hello" "world" "你好" "世界")
# 定义了一个元素为字符串的数组
输出数组内容
输出数组单个内容可以通过下标,比如arr2
arr2 :1 2 3 4 5 6
下标:0 1 2 3 4 5
下标是从0开始的
[root@localhost ~]# echo $arr1
[root@localhost ~]#
# 这个没有因为我定义arr1是一个空数组
[root@localhost ~]# echo $arr2
1
[root@localhost ~]## 直接使用数组名只输出了第一个下标为0的
[root@localhost ~]# echo ${arr2[1]}
2
[root@localhost ~]# echo ${arr2[2]}
3
[root@localhost ~]# echo ${arr2[3]}
4
[root@localhost ~]# echo ${arr2[4]}
5
[root@localhost ~]# echo ${arr2[5]}
6
[root@localhost ~]# echo ${arr2[*]}
1 2 3 4 5 6
[root@localhost ~]# # 通过下表进行一个输出arr2
[root@localhost ~]# echo ${arr3[0]}
hello
[root@localhost ~]# echo ${arr3[1]}
world
[root@localhost ~]# echo ${arr3[2]}
你好
[root@localhost ~]# echo ${arr3[3]}
世界
[root@localhost ~]# echo ${arr3[4]}[root@localhost ~]# echo ${arr3[*]}
hello world 你好 世界
[root@localhost ~]# # 通过下标去访问arr3的数组
输出数组全部内容
[root@localhost ~]# echo ${arr2[*]}
1 2 3 4 5 6
[root@localhost ~]# echo ${arr3[*]}
hello world 你好 世界 [root@localhost ~]# for i in ${arr3[*]};do echo $i;done
hello
world
你好
世界[root@localhost ~]# for i in ${arr2[*]};do echo $i;done
1
2
3
4
5
6
[root@localhost ~]# # 可以通过这样去遍历出全部的数组
获取数组的长度
[root@localhost ~]# echo ${#arr2[*]}
6
[root@localhost ~]# echo ${#arr3[*]}
4
[root@localhost ~]# # 这样就可以统计出数组内有多少个元素
修改添加替换数组元素
数组赋值格式:数组名[下标]=值,如果下标不存在,则新增数组元素; 下标已有,则覆盖值。
[root@localhost ~]# echo ${arr2[*]}
1 2 3 4 5 6
[root@localhost ~]# arr2[1]=2222
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6
[root@localhost ~]#
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6
[root@localhost ~]# arr2[6]=7777
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]#
数组分片
${数组名[*或@]:起始位:长度},截取部分数组,返回字符串,中间用空格分隔;将结果使用“()”,则得到新的切片数组。
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]# echo ${arr2[*]:0:2}
1 2222
# 意思是从0开始,往后数2个[root@localhost ~]# echo ${arr2[*]:2:2}
3 4
# 意思是从第2个开始,往后数2个[root@localhost ~]# echo ${arr2[*]:6:1}
7777
# 从6开始往后数1个,也就是当前的[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# arr4=$(echo ${arr2[*]:6:1})
[root@localhost ~]# echo $arr4
7777
[root@localhost ~]#
数组替换元素
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]# echo ${arr2[*]/2222/2}
1 2 3 4 5 6 7777
[root@localhost ~]# echo ${arr2[*]/7777/7}
1 2222 3 4 5 6 7
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# arr5=$(echo ${arr2[*]/2222/2})
[root@localhost ~]# echo $arr5
1 2 3 4 5 6 7777
数组删除元素
[root@localhost ~]# echo ${arr2[*]}
1 2222 3 4 5 6 7777
[root@localhost ~]# unset arr2[0]
[root@localhost ~]# echo ${arr2[*]}
2222 3 4 5 6 7777
[root@localhost ~]#
删除成功
相关文章:
Linux:shell脚本:基础使用(9)《数组》
数组就是一组数据类型相同集合 定义 数组名(元素内容…………) 如果没有元素内容就是空 arr1() # 定义了一个空数组 arr2(1 2 3 4 5 6 ) # 定义了一个元素是整形的数组 arr3("hello" "world" "你好" "世界") # 定义了一个元素为字符…...
TCP高并发服务器简介(select、poll、epoll实现与区别)
select、poll、epoll三者的实现: select实现TCP高并发服务器的流程: 一、创建套接字(socket函数):二、填充服务器的网络信息结构体:三、套接字和服务器的网络信息结构体进行绑定(bind函数&…...
Linux中的软件包管理器yum
目录 1.什么是软件包 2.关于 rzsz 3.查看软件包 4.如何安装软件 5.如何卸载软件 1.什么是软件包 ● 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. ● 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理…...
如何使用支付宝沙箱环境本地配置模拟支付并结合内网穿透远程调试
文章目录 前言1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂ÿ…...
解决子元素的click事件会触发父元素的dbclick事件
解决子元素的click事件会触发父元素的dbclick事件 方案一:方案二:方案三:方案一方案二综合案例如下: 方案一: 错误思路:通过阻止子元素click事件的冒泡,阻止父元素的dbclick 正确思路ÿ…...
算法训练营Day38(动态规划1)
动态规划理论基础 动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。 区别 动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心&…...
基于Harris角点的多视角图像全景拼接算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 Harris角点检测 4.2 图像配准 4.3 图像变换和拼接 4.4 全景图像优化 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 function [ImageB…...
数学建模--PageRank算法的Python实现
文章目录 1. P a g e R a n k PageRank PageRank算法背景2. P a g e R a n k PageRank PageRank算法基础2.1. P a g e R a n k PageRank PageRank问题描述2.2.有向图模型2.3.随机游走模型 3. P a g e R a n k PageRank PageRank算法定义3.1. P a g e R a n k PageRank PageRank…...
samba服务搭建,并将共享目录映射到windows
系统版本:centos7 1、centos 安装samba yum -y install samba 2、查看安装信息 rpm -qa |grep samba 3、设置开机自启动 systemctl enable smb.service systemctl enable nmb.service 4、设置samba服务器配置文件 sudo vi /etc/samba/smb.conf 注意&#…...
golang 中使用 statik 将静态资源编译进二进制文件中
现在的很多程序都会提供一个 Dashboard 类似的页面用于查看程序状态并进行一些管理的功能,通常都不会很复杂,但是其中用到的图片和网页的一些静态资源,如果需要用户额外存放在一个目录,也不是很方便,如果能打包进程序发…...
北京住总集团携手云轴科技ZStack获行业云平台领航者创新实践奖
为进一步促进行业企业上云、用数、赋智发展,落实国家政策,加速云计算应用从互联网拓展至政务、金融、交通、电信等行业,推动以云计算为核心的数字产业创新,1月18日中国信息通信研究院主办的“企业上云用云专项行动会—行业云平台研…...
【漏洞攻击之文件上传条件竞争】
漏洞攻击之文件上传条件竞争 wzsc_文件上传漏洞现象与分析思路编写攻击脚本和重放措施中国蚁剑拿flag wzsc_文件上传 漏洞现象与分析 只有一个upload前端标签元素,并且上传任意文件都会跳转到upload.php页面,判定是一个apache容器,开始扫描…...
Buttton样式设置background属性失效的问题
最近遇到一个之前没有遇见的问题,就是在添加Button控件的时候发现对其设置background时没有效果,原因是AndroidStudio升级后默认按钮就是主题色,一个比较简单的方法是将Button改为android.widget.Button,对比效果如下:…...
使用vue-pdf插件加载pdf
安装: // 安装这个版本,其它版本会有千奇百怪的错,这个版本和4.0.0都是可以的 cnpm install vue-pdf4.2.0// 安装pdfjs-dist cnpm install pdfjs-dist2.5.207 使用: // 我的css样式是pxToRem,友友们使用可能样式会有…...
BP蓝图映射到C++笔记1
教程链接:示例1:CompleteQuest - 将蓝图转换为C (epicgames.com) 1.常用的引用需要记住,如图所示。 2.蓝图中可以调用C函数,也可以实现C函数 BlueprintImplementableEvent:C只创建,不实现,在蓝图中实现 B…...
龙芯+RT-Thread+LVGL实战笔记(30)——电子琴演奏
【写在前面】正值期末,笔者工作繁忙,因此本系列教程的更新频率有所放缓,还望订阅本专栏的朋友理解,请勿催更。笔者在此也简要声明几点: 有些硬件模块笔者并没有,如LED点阵、压力传感模块、RFID模块等,因此这些模块的相关任务暂时无法给出经过验证的代码。其实,教程进行…...
Python Process创建进程(2种方法)详解
虽然使用 os.fork() 方法可以启动多个进程,但这种方式显然不适合 Windows,而 Python 是跨平台的语言,所以 Python 绝不能仅仅局限于 Windows 系统,因此 Python 也提供了其他方式在 Windows 下创建新进程。 Python 在 multiproces…...
树莓派4B 使用树莓派官方烧录器烧录ubuntu20.04.5 排坑
问题描述: 使用树莓派官方烧录器烧录ubuntu并且在烧录器中设置了电脑热点,但是无法连接WIFI。重启后也无效。 排坑: 1.首先打开/boot中的network-config,发现烧录器设置的密码是乱码,重新设置; 2.有博主说…...
鸿蒙开发(五)鸿蒙UI开发概览
从用户角度来讲,一个软件拥有好看的UI,那是锦上添花的事情。再精确的算法,再厉害的策略,最终都得通过UI展现给用户并且跟用户交互。那么,本篇一起学习下鸿蒙开发UI基础知识,认识下各种基本控件以及使用方式…...
应用层—HTTP详解(抓包工具、报文格式、构造http等……)
文章目录 HTTP1. 抓包工具的使用1.1 配置信息1.2 观察数据 2. 分析 https 抓包结果3. HTTP请求详解3.1 认识 URL3.1.1 URL 基本格式3.1.2 查询字符串 (query string)3.1.3 关于 URL Encode 3.2 认识 http 方法3.2.1 [经典问题] Get 和 Post 主要的区别是什么?&#…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
