【拔刀吧少年】之shell数组
数组
- 一、数组
- 1、数组的定义方法
- 2、数组包括的数据类型
- 3、获取数组长度
- 4、获取数据列表
- 5、读取某索引赋值
- 6、数组遍历
- 7、数组切片
- 8、数组替换
- 9、数组删除
- 10、数组追加元素
- 二、数组排序算法
- 1、冒泡算法
- 2、直接排序法
- 3、反转排序
一、数组
1、数组的定义方法
①、方式一:
②、方式二:
③、方式三:
④、方式四:
2、数组包括的数据类型
数值类型
字符类型(字符串):使用" "或’ '定义,防止元素当中有空格,元素按空格分割。
3、获取数组长度
4、获取数据列表
5、读取某索引赋值
6、数组遍历
7、数组切片
8、数组替换
9、数组删除
10、数组追加元素
方法一:按照索引进行逐个添加
array_name[index]=value
方法二:按照最大索引值进行向后添加
array_name[${#array_name[@]}]=value
方法三:使用原数组的元素进行重新赋值
array_name=("${array_name[@]}" value1 value2 … valueN)
注:
双引号不能省略,否则数组中存在包含空格的元素时会按空格将元素拆分成多个
不能将“@”替换为“”,如果替换为“”,不加双引号时与“@”的表现一致,加双引号时,会将数组array_name中的所有元素作为一个元素添加到数组中
方法四:
array_name+=(value1 value2 … valueN)
注:待添加元素必须用“()”包围起来,并且多个元素用空格分隔
11、向函数传递数组参数
二、数组排序算法
1、冒泡算法
类似气泡上涌的动作,会将数据在数组中从小到大或者从大到小不断的向前移动
。
基本思想:
冒泡排序的基本思想是对比相邻的两个元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。
算法思路:
冒泡算法由双层循环实现,其中外部循环用于控制排序轮数,一般为要排序的数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序了。而内部循环主要用于对比数组中每个相邻元素的大小,以确定是否交换位置,对比和交换次数随排序轮数而减少。
2、直接排序法
3、反转排序
以相反的顺序把原有数组的内容重新排序
基本思想:
把数组最后一个元素与第一个元素替换。倒数第二个元素与第二个元素替换,以此类推,直到把所有的数组元素反转替换完。
【拔刀吧少年】之shell数组相关推荐
- 【拔刀吧少年】之shell函数
函数 一.shell函数定义 二.格式 三.函数返回值 四.函数传参 五.函数变量的作用范围 六.递归 1.阶乘 2.递归查目录 七.创建函数库 总结 一.shell函数定义 将命令序列按格式写在一起 ...
- 【拔刀吧少年】之shell编程规范与变量
shell编程规范与变量 一.Shell脚本概述 1.shell脚本的概念 2.shell脚本应用场景 3.shell的作用--命令翻译器,"翻译官"(`又称命令的组合`) 二.用 ...
- 【拔刀吧少年】之awk文本和数据处理编程语言
AWK 1. 什么是awk 2. 基本格式 3. 工作原理 4. 常见的内建变量(可直接用) 5. 按行输出文本 6. 按字段输出文本 7. 通过管道.双引号调用shell命令 8. 小案例 :awk ...
- 【拔刀吧少年】之Expect 自动化控制和测试 Here Document 免交互
免交互 一.Here Document免交互 1.1 概述 1.2 语法格式 1.3 简单案例 1.4 支持变量替换 1.5 多行注释 1.6 完成自动划分磁盘免交互 二.Expect进行免交互 2. ...
- 【拔刀吧少年】之sort uniq tr cut eval常用命令
sort uniq tr cut eval 一.排序命令--sort 1.格式 2.常用选项 二.去除重复行操作命令--uniq 1.格式 2.常用选项 3.示例 三.字符转换命令--tr 1.格式 ...
- 【拔刀吧少年】之sed编辑器
sed 一.sed编辑器 二.sed编辑器工作流程 1.读取 2.执行 3.显示 三.命令格式 四.常用选项 五.常用操作 六.使用地址 七.删除行 八.替换 1.格式 2.4种替换标记 九.插入 一 ...
- 【拔刀吧少年】之循环三兄弟for while until
循环三兄弟 一.echo命令 – 输出字符串或提取Shell变量的值 1.格式 2.常用参数 3.常用的转义字符 二.循环语句 1.for循环结构 2.while循环语句结构(迭代) 3.until ...
- 【拔刀吧少年】之正则表达式
序言 正则表达式 通常用于判断语句中,用于检查某一字符串是否满足某一格式 正则表达式是由普通字符与元字符组成 普通字符包括大小写字母.数字.标点符号及一些其他符号 元字符是指在正则表达式中具有特殊意义 ...
- 【拔刀吧少年】之条件语句
条件语句 一 .条件测试 1.test命令 2.文件测试 3.逻辑测试 4.整数值比较 5.字符串比较 二.if条件语句 1.单分支 2.双分支 3.多分支 4.例题 三.case语句结构 总结 一 ...
最新文章
- 5分钟解析Facebook最新推荐算法
- 待研究金华的存储过程
- SpringCloud Zuul(一)之介绍
- AUTOSAR从入门到精通100讲(二十六)-AutoSar之微控制器抽象层MCAL
- python super详解_Python super 详解
- 判断两个时间段是否重叠的算法
- Java学习笔记-枚举类
- c语言程序设计第六章习题答案,C语言程序设计(第2版) 刘克威,张凌晓著 习题答案-第六章...
- 【转】学术论文写作方法
- 再次领先全国,第一只波士顿机器狗落户上海,等你来撸
- 给小白程序员的建议!
- 基于Python的招聘推荐与薪资预测系统的设计与实现
- 小明身高180cm,小刚身高165cm,计算两人的身高差
- win10操作系统 64位 原版 百度网盘下载
- 字符串排序算法:低位优先排序(LSD)
- 测不准原理主要指向微观
- M87 黑洞照片的捕捉背后,这个程序媛功不可没
- 计算机软件优化,系统优化
- 构建你的第一个Android应用
- 阿里云ONS / RocketMQ的定时消息 / 延时消息
热门文章
- mysql空间释放_linux 空间释放,mysql数据库空间释放
- php composer内存不足,composer 安装插件提示内存不足等问题
- php 获取下拉框选中的文本,jQuery如何获取select选择的文本与值?(代码示例)...
- matlab 边界连续,matlab的边界问题
- Spring Cloud Zuul The 'Access-Control-Allow-Origin' header contains multiple values
- 从零开始搭建spring-cloud(0) --springboot与springcloud的关系
- 别再问我如何双击打开.ipynb文件了!
- 一个小小指针,竟把Linux内核攻陷了!
- Python小知识 | 这些技能你不会?(终章)
- ddos发包机原理_简单的DDOS发包学习思路大家可以在去写