【Shell语言学堂】数组练习题

数组练习

    • 1、使用数组和循环实现冒泡排序
    • 2、将冒泡排序的代码重构为2个函数,2个关系是a函数调用b函数
      • 自定义数组参数:
    • 3、声明一个存储的全整数数组,对其中的每一个值进行+10处理
    • 4、对硬盘使用空间占比的排序
    • 5、对当前目录的文件大小进行排序

1、使用数组和循环实现冒泡排序

#!/bin/bash
#定义一个数组arr
arr=(4 5 2 1 3 0)
#循环比较的轮数
for ((round=0;round<${#arr[*]}-1;round++))
do#每轮比较的次数为长度-1-轮数for ((count=0;count<${#arr[*]}-1-round;count++))do#比较前一个数和后一个数的大小if [ ${arr[count]} -gt ${arr[count+1]} ];then#交换两个数temp=${arr[count]}arr[count]=${arr[count+1]}arr[count+1]=$tempfidone
echo ${arr[*]}
done

在这里插入图片描述

2、将冒泡排序的代码重构为2个函数,2个关系是a函数调用b函数

vim mppx2.sh
#!/bin/bash
function pk {for ((count=0; count<${#arr[*]}-1-round; count++))doif [ ${arr[count]} -gt ${arr[count+1]} ];thentemp=${arr[count]}arr[count]=${arr[count+1]}arr[count+1]=$tempfidone
}function rou {
for ((round=0; round<${#arr[*]}-1; round++))dopk doneecho ${arr[*]}
}
arr=(5 2 8 1 9)
rou "${arr[@]}"

在这里插入图片描述

自定义数组参数:

#!/bin/bash
function pk {for ((count=0; count<${#arr[*]}-1-round; count++))doif [ ${arr[count]} -gt ${arr[count+1]} ];thentemp=${arr[count]}arr[count]=${arr[count+1]}arr[count+1]=$tempfidone
}function rou {
for ((round=0; round<${#arr[*]}-1; round++))dopkdoneecho ${arr[*]}
}arr=($1)
rou "${arr[@]}"

在这里插入图片描述

3、声明一个存储的全整数数组,对其中的每一个值进行+10处理

#!/bin/bash
#定义一个数组
arr=(5 2 7 1 3)
#遍历数组中的每个数for ((count=0; count<${#arr[*]}; count++))
do
#将每个数加10
arr[count]=$(echo "${arr[count]}+10"|bc)
done
echo ${arr[*]}

在这里插入图片描述

4、对硬盘使用空间占比的排序

#!/bin/bash
#查看磁盘使用空间占比,并提取各个数据
mes=$( echo -n $(df -h|awk '{print $5}') )
shuzu=$(echo ${mes#*%}|tr -d '%')
arr=($shuzu)
function pk {for ((count=0; count<${#arr[*]}-1-round; count++))doif [ ${arr[count]} -gt ${arr[count+1]} ];thentemp=${arr[count]}arr[count]=${arr[count+1]}arr[count+1]=$tempfidone
}function rou {
for ((round=0; round<${#arr[*]}-1; round++))dopkdoneecho ${arr[*]}
}
rou "${arr[@]}"

在这里插入图片描述

5、对当前目录的文件大小进行排序

#!/bin/bash
#提取文件大小
fsz=$( echo -n $(ls -l|awk '{print $5}') )arr=("$fsz")
function pk {for ((count=0; count<${#arr[*]}-1-round; count++))doif [ ${arr[count]} -gt ${arr[count+1]} ];thentemp=${arr[count]}arr[count]=${arr[count+1]}arr[count+1]=$tempfidone
}function rou {
for ((round=0; round<${#arr[*]}-1; round++))dopk doneecho ${arr[*]}
}
rou "${arr[@]}"

或者

bash mppx2.sh "$(echo -n $(ls -l|awk '{print $5}'))"

运行结果

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

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

相关文章

BFS宽度优先搜索例题(蓝桥杯)——逃跑的牛

问题描述&#xff1a; 农夫John的一头牛逃跑了&#xff0c;他想要将逃跑的牛找回来。现假设农夫John和牛的位置都在一条直线上&#xff0c;农夫John的初始位置为N&#xff08;0≤N≤100,000&#xff09;&#xff0c;牛的初始位置为K&#xff08;0≤K≤100,000&#xff09;。农夫…

多层解密,窃取重要信息!AgentTesla商业间谍木马持续活跃

何为AgentTesla&#xff1f; AgentTesla是一款“老牌”恶意软件即服务“MAAS”恶意程序&#xff0c;在过去的几年间&#xff0c;一直保持着较高的活跃度。其主要通过社工钓鱼邮件传播&#xff0c;“商贸信”和伪装航运公司钓鱼邮件是该木马经常使用的社工钓鱼方式。通过社工钓…

前端开发攻略---轻松实现排序功能:利用JavaScript创建直观的拖拽排序体验

拖拽事件主要包括以下几种&#xff1a; dragstart&#xff08;拖拽开始&#xff09;&#xff1a;当用户开始拖拽一个元素时触发&#xff0c;通常在被拖拽的元素上绑定此事件。在该事件的处理函数中&#xff0c;可以设置被拖拽元素的一些属性或数据。 drag&#xff08;拖拽移动…

从零开始写 Docker(十)---实现 mydocker logs 查看容器日志

本文为从零开始写 Docker 系列第十篇&#xff0c;实现类似 docker logs 的功能&#xff0c;使得我们能够查查看容器日志。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&#xff1a; 核心原理&#x…

MySQL一些特殊功能的索引(6/16)

特殊功能性索引 B-Tree索引&#xff1a; InnoDB的默认索引类型&#xff0c;适用于多种查询操作。 可以用于等值查询、范围查询和索引列的组合查询。 创建B-Tree索引的示例&#xff1a; CREATE INDEX index_name ON table_name (column1, column2);全文索引&#xff08;FULLTEX…

数字图像处理项目——模糊图像边缘检测算法设计及实现(论文/代码)

完整的论文代码见文章末尾 以下为部分内容 摘要 本研究旨在针对大脑核磁图像中的黑色腔体进行有效分割&#xff0c;以提供可靠的腔体定位和分析。为此&#xff0c;采用了三种常用的图像分割方法&#xff1a;8邻域区域生长法、Canny算子边缘检测和8邻域边界跟踪法。 首先&…

智算时代的基础设施如何实现可继承可演进?浪潮云海发布 InCloud OS V8 新一代架构平台

从 2023 年开始持续火爆的 AIGC 正在加速落地应用&#xff0c;为全行业带来生产生活效率的变革与升级。面对数字化转型与智能化转型&#xff0c;对于技术团队来说&#xff0c;既要根据业务与 AI 应用去部署以云为基础的 AI 算力&#xff0c;又要与已有数据和系统&#xff08;甚…

酒店大厅装水离子雾化壁炉前和装后对比

在酒店大厅装水离子雾化壁炉之前和之后&#xff0c;大厅的氛围和体验会有显著的对比&#xff1a; 装水离子雾化壁炉之前&#xff1a; 传统感&#xff1a;在壁炉安装之前&#xff0c;大厅可能会有传统的装饰或者简单的暖气设备&#xff0c;缺乏现代化的元素。这种传统感可能会…

纯css实现switch开关

代码比较简单&#xff0c;有需要直接在下边粘贴使用吧~ html: <div class"switch-box"><input id"switch" type"checkbox"><label></label></div> css&#xff1a; .switch-box {position: relative;height: 25px…

C-开发 visual Studio扩展插件介绍-格式化插件Xaml Styler、CSharpier介绍(扩展插件安装方法)

C#开发 visual Studio扩展插件介绍 扩展插件安装方法Xaml StylerCSharpier 提高C#开发效率常用的插件 扩展插件安装方法 菜单栏点击“扩展”→“管理扩展”。 打开扩展页面 右上角搜索需要安装的插件&#xff0c;然后点击下载 安装完成后&#xff0c;根据提示关闭VS进行安…

记一次小郭被挖矿后的应急响应

谨以此篇纪念我第n1次被挖矿经历。 时间&#xff1a;2024年3月18日&#xff08;星期一&#xff09; 地点&#xff1a;阿里云服务器 响应&#xff1a;确认–>抑制–>消除–>恢复–>总结 确认阶段&#xff1a; 2024年3月18日星期一早上收到了阿里云的短信和邮件…

html+javascript,用date完成,距离某一天还有多少天

图片展示: html代码 如下: <style>* {margin: 0;padding: 0;}.time-item {width: 500px;height: 45px;margin: 0 auto;}.time-item strong {background: orange;color: #fff;line-height: 100px;font-size: 40px;font-family: Arial;padding: 0 10px;margin-right: 10px…

【hive】远程remote debug hive的方法,用于hive监听器/钩子编写

背景 写hive监听器时候需要拿到hive对象但hive是在集群linux主机上运行的。通过jdbc提交的sql具体执行过程不会再idea中运行。所以如果需要拿到hive对象有可能存在两个思路&#xff1a; &#xff08;1&#xff09;想办法写个钩子或者监听器&#xff0c;将需要的内容写成json字…

最简单的ubuntu安装docker教程

本文参考自docker官方教程&#xff1a;ubuntu上安装docker 一、安装Docker 第一步&#xff1a;添加Docker官方的GPG密钥 直接复制所有代码&#xff0c;作为一行运行即可 sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/k…

Python学习从0开始——项目一day01爬虫(二)

Python学习从0开始——项目一day01爬虫&#xff08;二&#xff09; 一、解析response数据二、json转换三、文件保存四、存储json对象五、完整代码 上一篇 一、解析response数据 在已经知道我们获取图片的最终URL存在于请求响应response中&#xff0c;下一步的重点就放在解析re…

Redis-底层数据结构

Redis-底层数据结构 redisObject对象机制对象共享引用计数以及对象的消毁 动态字符串SDS链表链表的优缺点: 压缩链表ziplist的缺点 字典-Dictrehash渐进式rehash 整数集-intSet内存分布图整数集合的升级 跳表 - ZSkipList快表-quicklistlistpack redisObject对象机制 typedef s…

DP10RF001一款200MHz~960MHz 低功耗(G)FSK/OOK无线收发芯片应用无线遥控工控设备无线门禁传感器等

产品概述 DP10RF001是一款工作于200MHz~960MHz范围内的低功耗、高性能、单片集成的(G)FSK/OOK无线收发机芯片。内部集成完整的射频接收机、射频发射机、频率综合器、调制解调器&#xff0c;只需配备简单、低成本的外围器件就可以获得良好的收发性能。芯片支持灵活可设的数据包…

Jmeter从数据为查找结果集数据方法随笔

一、Jmeter连接数据库 1.下载对应数据库的驱动包到jmeter安装目录的lib下ext文件中&#xff0c;并导入到jmeter的测试计划中&#xff0c;本实例中使用的是mysql如下所示&#xff1a; 点击测试计划–>点击浏览–>选中mysql驱动jar包–>打开 2.添加线程组&#xff0c;…

毕设(三)——nb-lot与onenet通信

文章目录 一、前言二、nb-lot与onenet的连接2.1 创建产品2.2 创建设备2.3 连接2.4 发送数据 三、onenet的数据可视化 刚刚看了一个关于nb-lot的视频&#xff0c;我看到up是用onenet原生的GUI就能做到数据的显示&#xff0c;十分亮眼 主要是它能把地图也一起显示出来&#xff0c…

2024mathorcup数学建模思路教学

大家好呀&#xff0c;认证杯数学建模开始了&#xff0c;来说一下选题建议以及思路吧&#xff1a; 首先定下主基调&#xff0c; 本次mathorcup数学应用挑战赛推荐大家选择C题&#xff0c;难度方面&#xff1a;A≈B&#xff1e;D&#xff1e;C。 我们预计4.13日晚上前更新完毕…