【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]=$temp
		fi
	done
echo ${arr[*]}
done

在这里插入图片描述

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

vim mppx2.sh
#!/bin/bash
function pk {
  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]=$temp
            fi
        done
}

function rou {
for ((round=0; round<${#arr[*]}-1; round++))
   do
	pk 
   done
   echo ${arr[*]}
}
arr=(5 2 8 1 9)
rou "${arr[@]}"

在这里插入图片描述

自定义数组参数:

#!/bin/bash
function pk {
  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]=$temp
            fi
        done
}

function rou {
for ((round=0; round<${#arr[*]}-1; round++))
   do
        pk
   done
   echo ${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++))
        do
            if [ ${arr[count]} -gt ${arr[count+1]} ];then
                temp=${arr[count]}
                arr[count]=${arr[count+1]}
                arr[count+1]=$temp
            fi
        done
}

function rou {
for ((round=0; round<${#arr[*]}-1; round++))
   do
        pk
   done
   echo ${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++))
        do
            if [ ${arr[count]} -gt ${arr[count+1]} ];then
                temp=${arr[count]}
                arr[count]=${arr[count+1]}
                arr[count+1]=$temp
            fi
        done
}

function rou {
for ((round=0; round<${#arr[*]}-1; round++))
   do
	pk 
   done
   echo ${arr[*]}
}
rou "${arr[@]}"

或者

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

运行结果

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

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

相关文章

小型企业网络安全指南

许多小型企业刚刚起步&#xff0c;没有大公司所拥有的相同资源来保护其数据。他们不仅可能没有资金来支持多样化的安全计划&#xff0c;而且也可能没有人力或时间。 网络犯罪分子知道小型企业缺乏这些资源&#xff0c;并利用这些资源来谋取利益。遭受网络攻击后&#xff0c;小…

7、configMap

1、configMap是什么 类似与pod的配置中心&#xff0c;不会因为pod的创建销毁&#xff0c;相关配置发生改变 pod定义硬编码意味着需要有效区分⽣产环境与开发过程中的pod 定义。为了能在多个环境下复⽤pod的定义&#xff0c;需要将配置从pod定义描 述中解耦出来。 2、向容器中…

2024年MathorCup数模竞赛C题超详细解题思路

妈妈杯本次比赛报名队伍号高达12500&#xff0c;这也就意味着大概一万只队伍参加报名&#xff0c;仅仅在报名人数这一项&#xff0c;妈妈杯已经成为美赛国赛之后的第三大竞赛。C题作为本次竞赛最简单也最容易获奖的题目&#xff0c;本文将给大家带来手把手超详细解题思路。 注…

【Git教程】(十二)工作流之项目设置 — 何时使用工作流,工作流的结构,项目设置概述、执行过程及其实现 ~

Git教程 工作流之项目设置 1️⃣ 何时使用工作流2️⃣ 工作流的结构3️⃣ 概述4️⃣ 使用要求5️⃣ 执行过程及其实现5.1 基于项目目录创建一个新的版本库5.2 以文件访问的方式共享版本库5.3 用 Git daemon 来共享版本库5.4 用 HTTP 协议来共享版本库5.5 用 SSH 协议来共享版…

KubeSphere 社区双周报|2024.03.29-04.11

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2024.03.29-04.11…

【服务器部署篇】Linux下Jenkins安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

✌2024/4/1—力扣—按摩师✌

代码实现&#xff1a; 思路&#xff1a;打家劫舍题 int massage(int *nums, int numsSize) {if (nums NULL || numsSize 0) {return 0;}if (numsSize 1) {return nums[0];}int dp[numsSize];memset(dp, 0, sizeof(dp));dp[0] nums[0];dp[1] (nums[0] < nums[1] ? nums…

【网络初识】网络相关概念详解

一.局域网VS广域网 局域网 局域网:Local Area Network~简称LAN.指在某一特定区域内由多台计算机组成的互联网组。局域网内的主机之间能方便的进行网络通信&#xff0c;又称为内网.局域网和局域网之间在没有连接的情况下&#xff0c;是无法通信的。局域网的组建方式: 基于网线…

Docker 集成 redis,并在nacos进行配置时需要注意点

安装redis镜像 docker pull redis:6.0.6redis配置文件 创建相关配置文件 mkdir /apps/redis cd /apps/redis touch redis.conf vim redis.confredis.conf内容&#xff1a; #开启保护 protected-mode yes #开启远程连接 bind 0.0.0.0 #自定义密码 port 6379 timeout 0 # 900s内…

网络协议学习——以太网协议

目录 ​编辑 一&#xff0c;以太网简介 二&#xff0c;以太网通信的过程 为什么不用IP地址&#xff1f; 过程 MAC帧 MAC帧的字段介绍 ARP协议 传输过程的一些问题 RARP协议 提高效率 三&#xff0c;其他问题 ARP诈骗问题 URL解析过程 一&#xff0c;以太网简介 …

【优选算法专栏】专题十:哈希表(一)

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

【线段树 有序映射】715. Range 模块

算法可以发掘本质&#xff0c;如&#xff1a; 一&#xff0c;若干师傅和徒弟互有好感&#xff0c;有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二&#xff0c;有无限多1X2和2X1的骨牌&#xff0c;某个棋盘若干格子坏了&#xff0c;如何在没有坏…

谷歌pixel6/7pro等手机WiFi不能上网,显示网络连接受限

近期在项目中遇到一个机型出现的问题,先对项目代码进行排查,发现别的设备都能正常运行,就开始来排查机型的问题,特意写出来方便后续查看,也方便其它开发者来自查。 设备机型:Pixel 6a 设备安卓版本:13 该方法无需root,只需要电脑设备安装adb(即Android Debug Bridge…

计算机网络---第九天

以太网交换机的工作原理 以太网定义&#xff1a; 定义&#xff1a;输出标准Ethernet2类型帧的网络 以太网特征&#xff1a; 特征&#xff1a;多路访问&#xff0c;广播式的网络 mac地址: 每台设备都有一个唯一的物理地址&#xff0c;全球唯一 48位长度&#xff0c;16禁止…

数显IC/点阵数显驱动芯片/抗干扰数显驱动-VK1Q60 QFN16L 8×4点阵

产品品牌&#xff1a;永嘉微电/VINKA 产品型号&#xff1a;VK1Q60 封装形式&#xff1a;QFN16L 概述 VK1Q60是一种带键盘扫描电路接口的 LED 驱动控制专用芯片&#xff0c;内部集成有数据锁存 器、LED 驱动、键盘扫描等电路。SEG脚接LED阳极&#xff0c;GRID脚接LED阴极&…

GPT-4 Turbo with Vision 提高‮写了‬作、数学、逻‮推辑‬理和编码能力

新版 GPT-4 Turbo 今‮开天‬始现‮向已‬所有付费 ChatGPT 用‮开户‬放。GPT-4 Turbo提高‮写了‬作、数学、逻‮推辑‬理和编码能力。具有128k上下文窗口&#xff0c;可以处理超过300页的文本&#xff0c;输出‮度速‬更快。 现‮已在‬经开始‮续陆‬推送&#xff0c;如果…

「seata」分布式事务seata部署及应用

「seata」分布式事务seata部署及应用 seata 版本一、部署seata服务1、配置config.txt文件中的属性值2、为seata服务单独创建一个nacos命名空间3、利用脚本上传配置文件到nacos4、配置seata服务的application.yml6、执行数据库脚本5、使用脚本启动seata服务 二、配置并启动微服务…

品牌发言稿怎么写?媒介盒子分享

品牌发言稿的重要性不言而喻&#xff0c;它不仅代表着品牌形象&#xff0c;更是沟通品牌与消费者、合作伙伴的桥梁。如何撰写一篇高质量的品牌发言稿&#xff0c;成为许多品牌关注的焦点。今天媒介盒子来和大家聊聊&#xff1a;品牌发言稿怎么写。 一、 发言稿写作技巧 1.结构…

MQTT的学习

近期构建物联网平台&#xff0c;学习到MQTT&#xff0c;这里使用的是uniapp作为连接MQTT broker的&#xff0c;这里使用的是国产的EMQX。 MQTT的认识 MQTT 协议入门&#xff1a;基础知识和快速教程 | EMQ&#xff08;简单的认识&#xff09; 创建 MQTT 连接时如何设置参数&am…

UI自动化测试案例

备注:本文为博主原创文章,未经博主允许禁止转载。如有问题,欢迎指正。 个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力) 笔记目录:笔记本~笔记目录_airtest和selenium那个好用-CSDN博客 个人随笔:工作总结随笔_8、以前工作中都接触过哪…