Shell脚本④循环语句for、while、until

news2024/10/2 20:27:03

目录

一.for

1. 九九乘法表

2.求1到10奇数和

3.累计加到100

(1)方法一

(2)方法2

二.while

1.猜价格小游戏

2.累加到100的方法三

三.until循环

1.累加到100方法四

四.嵌套循环

五.循环语句中break、exit和continue

1.break的使用

2.exit的使用

3.continue的使用


一.for

格式:

for 变量名 in   {list}
do
     命令
done

1. 九九乘法表

#!/bin/bash
for j in {1..9}
    do
       for i in `seq $j`
    do
	 echo -e "${i}x${j}=$[i*j] \t\c"
	 #\t tab键可以对齐
    done
	echo
done

2.求1到10奇数和

#/bin/bash
sum=0
for i in {1..10..2}
do
  sum=$[sum+i]
  let i++
done
echo "10以内的奇数和为:$sum"

3.累计加到100

(1)方法一
#!/bin/bash
sum=0
for iin {1..100}
do
sum=$[sum+i]
done
echo $sum

(2)方法2
#!/bin/bash
sum=0
for ((i=0;i<=100;i++))
do
sum=$[i+sum]
done
echo sum=$sum

二.while

格式:
while  [ 条件测试操作 ]
do                        #do代表循环的开始
    判断式/命令序列
done                     #done代表循环的结束

1.猜价格小游戏

#!/bin/bash
p=`echo $[RANDOM%1000+1]`
time=0
 
while true
do
let time++
read -p "请输入您猜测的价格(1-1000):" h
if [ $h -eq $p ]
then
echo "恭喜您猜中了,您一共猜测了$time次"
exit
elif [ $h -gt $p ]
then
echo "您猜测的价格过高"
else
echo "您猜测的价格过低"
fi
done

2.累加到100的方法三

#!/bin/bash
i=0
sum=0
while [ $i -le 100 ]
do
sum=$[i+sum]
let i++
done
echo $sum

三.until循环

格式:
until  [ 条件测试操作 ]
do
    判断式/命令序列
done

1.累加到100方法四

#!/bin/bash
sum=0
i=0
until [ $i -gt 100 ]
do
 sum=$[sum+i]
 let i++
done
echo "{1..100}的和:$sum"

四.嵌套循环

格式:
#!/bin/bash
for ((i=1;i<5;i++))
do
        echo 此${i}为外部循环
        for((j=1;j<4;j++))
        do
                echo -e "\t此${j}为内部循环"
        done
done

五.循环语句中break、exit和continue

1.break的使用

#!/bin/bash
for ((i=1;i<5;i++))
do      
        echo 此${i}为外部循环
        for((j=1;j<4;j++))
        do
            if [ $j -eq 3 ]			<------如果j的值为3
            then
                break				<------跳出当前循环(内部)
            fi  
        echo -e "\t此${j}为内部循环"
        done
done

2.exit的使用

#!/bin/bash
for ((i=1;i<5;i++))
do
        echo 此${i}为外部循环
        for((j=1;j<4;j++))
        do
            if [ $j -eq 3 ]					<------如果j的值为3
            then
                exit						<------结束当前脚本
            fi
        echo -e "\t此${j}为内部循环"
        done
done
 

3.continue的使用

#!/bin/bash
for ((i=1;i<5;i++))
do
        echo 此${i}为外部循环
        for((j=1;j<4;j++))
        do
            if [ $j -eq 2 ]					<------如果j的值为2
            then
                continue					<------中止循环中本次的命令,但不会完全中止整个循环或脚本
            fi
        echo -e "\t此${j}为内部循环"
        done
done

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

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

相关文章

网络防御——NET实验

一、实验拓扑 二、实验要求 1、生产区在工作时间&#xff08;9&#xff1a;00---18&#xff1a;00&#xff09;内可以访问服务区&#xff0c;仅可以访问http服务器&#xff1b; 2、办公区全天可以访问服务器区&#xff0c;其中&#xff0c;10.0.2.20可以访问FTP服务器和HTTP服…

Google浏览器Provisional headers are shown. Disable cache to see full headers.

Google浏览器Provisional headers are shown. Disable cache to see full headers. 问题 解决方法 勾选禁用缓存&#xff0c;刷新 成功

制造领域 物料清单(BOM)与零件明细表的区别

有许多人分不清物料清单(BOM)与零件明细表的区别,其实它们在企业的生产管理软件中起着不同的作用,各有各的特色,但是却有不尽相同。接下来我们就来区分一下吧 物料清单(BOM)&#xff0c;是详细记录一个项目所用到的所有下阶材料及相关属性&#xff0c;亦即母件与所有子件的从属…

代码随想录刷题笔记 DAY15 | 翻转二叉树 No.226 | 对称二叉树 No.101

Day 15 01. 翻转二叉树&#xff08;No. 226&#xff09; 题目链接 代码随想录题解 1.1 题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9…

代码随想录 Leetcode429. N 叉树的层序遍历

题目&#xff1a; 代码(首刷自解 2024年1月24日&#xff09;&#xff1a; /* // Definition for a Node. class Node { public:int val;vector<Node*> children;Node() {}Node(int _val) {val _val;}Node(int _val, vector<Node*> _children) {val _val;childre…

在云服务器上通过FileZilla配置FTP(通过FileZilla配置FTP升级版)

有兴趣的读者可以看看博主的博客&#xff0c;有很全面的教程 阿里云之申请云服务器–配置jdk,tomcat,安全策略–能够在他人电脑上显示本电脑的Tomcat 通过FileZilla配置FTP 修改我们的安全组&#xff0c;将21&#xff0c;和50000-50010端口添加进去 加入实例即可&#xff0c;剩…

怎样使用CSS技术美化网页?(知识点2)

知识引入 引入CSS样式表 CSS提供了行内式、内嵌式、外链式、导入式四种引入方式&#xff0c;具体介绍如下。 行内式 行内式也被称为内联样式&#xff0c;是通过标签的style属性来设置标签的样式&#xff0c;其基本语法格式如下。 <标签名 style“属性&#xff1a;属性值…

Denoising diffusion implicit models 阅读笔记2

Denoising diffusion probabilistic models (DDPMs)从马尔科夫链中采样生成样本&#xff0c;需要迭代多次&#xff0c;速度较慢。Denoising diffusion implicit models (DDIMs)的提出是为了在复用DDPM训练的网络的前提下&#xff0c;加速采样过程。 加速采样的基本思路是&#…

Shell脚本⑤函数与数组

一.函数 封装的可重复利用的具有特定功能的代码 格式&#xff1a; 方法一&#xff1a; [function] 函数名 (){ 命令序列 [return x] #使用return或者exit可以显式的结束函数 } 方法二&#xff1a; 函数名(){ 命令序列 } 1.函数的调用方法 &#xff08;1&…

【Flink】记录Flink 任务单独设置配置文件而不使用集群默认配置的一次实践

前言 我们的大数据环境是 CDP 环境。该环境已经默认添加了Flink on Yarn 的客户端配置。 我们的 Flink 任务类型是 Flink on Yarn 的任务。 默认的配置文件是在 /etc/flink/conf 目录下。如今我们的需求是个别任务提供的配置仅用于配置执行参数&#xff0c;例如影响作业的配置…

python 基础知识点(蓝桥杯python科目个人复习计划24)

今日复习内容&#xff1a;基础算法中的模拟 1.模拟题 &#xff08;1&#xff09;定义&#xff1a;直接按照题目含义模拟即可&#xff0c;一般不涉及算法。 &#xff08;2&#xff09;注意&#xff1a;读懂题&#xff1a;理清楚题目流程&#xff1b; 代码和步骤一一对应&…

爷爷问:IPv6为什么还没有完全替换掉IPv4 ?区别是什么?

首先IPV6之所以提出&#xff0c;很大一部分原因是IPV4的地址不够用了&#xff0c;再出现新设备就没得地址分配&#xff0c;所以才会提出新的IP版本以满足分配需求。在对IPV6进行一个基本了解后来看看两者的区别。 IPV6基本了解 1.层次化的地址结构 地址长度为128bit&#xf…

鸿蒙ArkUI开发-实现增删Tab页签

场景介绍 部分应用在使用过程中需要自定义添加或删除标签的场景&#xff0c;比如在浏览器中的顶部标签栏中需要新打开或关闭网页页签&#xff0c;而这种场景与Tabs组件效果类似&#xff0c;但Tabs组件不提供增加或删除页签的功能&#xff0c;不能自由的增加删除页签&#xff0…

Java编程的利器:Pair和Triple无缝解决多值返回问题,助力编写高效代码

在实际编码中&#xff0c;经常会遇到一个方法需要返回多个值的情况&#xff0c;你编写一个方法&#xff0c;需要同时返回某个操作的结果和一些相关的附加信息。使用传统的方式&#xff0c;你可能需要创建一个包含这些信息的自定义类或者使用集合&#xff08;如 Map&#xff09;…

系统引导程序 Boot Loader——学习笔记

基于嵌入式Linux 的完整系统软件由三个部分组成&#xff1a;系统引导程序、Linux 操作系统内核和文件系统。 系统引导程序 Boot Loader 是系统加电后运行的第一段软件代码&#xff0c;它的作用是加载操作系统或者其他程序到内存中&#xff0c;并将控制权交给它们。 Boot Load…

代码随想录算法训练营第16天 | 104.二叉树的最大深度, 111.二叉树的最小深度 ,222.完全二叉树的节点个数

二叉树理论基础&#xff1a; https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE 104.二叉树的最大深度 题目链接&#xff1a;https://leetcode.cn/problems/maximum-depth-…

Mediasoup Demo-v3笔记(三)——Mediasoup库介绍

Mediasoup基本概念 Worker &#xff1a; 每一个worker就是一个进程&#xff08;节点&#xff09;&#xff0c;进程和进程之间可以通信Router&#xff1a;每一个Router就是一个房间的概念Producer&#xff1a;每一个发出声音和视频的流都是一个ProducerConsumer&#xff1a;每一…

Confluence 的文章导入到 YouTrack KB 中

YouTrack 是有一个 KB 的&#xff0c;我们可以吧 Confluence 的文章全部导入到 YouTrack 的 KB 中。 首先&#xff0c;你需要具有管理员权限&#xff0c;然后选择导入。 然后可以在打开的界面中新增一个导入。 在新增导入中输入 Confluence 在随后的界面中输入你 Confluence …

浅谈ICMP协议

ICMP(Internet Control Message Protocol) 网络控制消息协议是网络层的协议&#xff0c;所谓控制&#xff0c;指的是通过下发指令来判断是否当前主机可达目标主机及不可达时的错误报告。通常使用ping命令和traceroute命令来使用。 ping命令:检测到目标主机是否可达、 tracerout…

SQL语句创建一个简单的银行数据库

目录 一、银行业务E-R图 二、数据库模型图 转换关系模型后&#xff1a; 三、创建数据库 3.1 创建银行业务数据库 四、创建表 4.1 创建客户信息表 4.2 创建银行卡信息表 4.3 创建交易信息表 4.4 创建存款类型表 结果如下&#xff1a; ​编辑 五、插入适量数据 5.1…