Shell编程之循环语句

目录

一、for循环

for循环实操

二、while循环

while循环实操

三、until循环命令

until循环实操


一、for循环

  • 读取不同的变量值,用来逐个执行同一组命

for 变量 in 取值列表

do

        命令序列

done

[root@localhost ~]# for i in 1 2 3 4 5
> do
> echo "第$i次唱!跳!rap 篮球!"
> done
第1次唱!跳!rap 篮球!
第2次唱!跳!rap 篮球!
第3次唱!跳!rap 篮球!
第4次唱!跳!rap 篮球!
第5次唱!跳!rap 篮球!
[root@localhost ~]# for i in {1..5}
> do
> echo "$i次鸡你太美"
> done
1次鸡你太美
2次鸡你太美
3次鸡你太美
4次鸡你太美
5次鸡你太美

for (变量-初始值;变量范围;变量的迭代方式)

do

        命令序列

done

[root@localhost ~]# for ((i=1;i<=8;i++))
> do
> echo $i
> done
1
2
3
4
5
6
7
8
[root@localhost ~]# echo $i
9

for循环实操

1.计算从1到100所有整数的和

[root@localhost ~]# chmod +x 1.sh
[root@localhost ~]# vim 1.sh
#!/bin/bash
#计算从1到100所有整数的和sum=0
for i in {1..100};
dosum=$(($i+$sum))
doneecho "$sum"[root@localhost ~]# chmod +x 1.sh
[root@localhost ~]# ./1.sh
5050
[root@localhost ~]# 

2.提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和

[root@localhost ~]# vim 2.sh
#!/bin/bash
#输入一个小于100的整数,并计算从1到该数之间所有整数的和read -p "请输入一个小于100的整数:" num
if [ $num -eq 1 ];
thenecho "和等于: $num"
sum=0
elif [ $num -gt 1 ]&& [ $num -lt 100 ];
thenfor ((i=l;i<$num; i++))
dolet sum=$sum+$idoneecho "1到$num的和为$sum"
elseecho "输入错误"
fi[root@localhost ~]# chmod +x 2.sh
[root@localhost ~]# ./2.sh
请输入一个小于100的整数:25
1到25的和为300

二、while循环

重复测试某个条件,只要条件成立则反复执行

 

[root@localhost ~]# a=1
[root@localhost ~]# while [ $a -le 8 ]
> do
> echo $a
> let a++
> done
1
2
3
4
5
6
7
8

while循环实操

计算从1到100所有整数的和

[root@localhost ~]# vim w1.sh
#!/bin/bash
#计算从1到100所有整数的和sum=0
i=0while [ $i -le 100 ]
dosum=$[ $sum + $i ]i=$[ i + 1 ]
doneecho "1-100所有整数的和为:" $sum[root@localhost ~]# chmod +x w1.sh
[root@localhost ~]# bash w1.sh
1-100所有整数的和为: 5050

 提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和

[root@localhost ~]# vim w2.sh1 #!/bin/bash2 #提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和3 4 sum=05 i=16 7 8 read -p "快点!输入一个0-100的整数: " num9  if [ $num -le 100 ];then10  while [ $i -le $num ]11 do12  sum=$[ sum + i ]13 i=$[ i + 1 ]14  done15   echo "1-$num的和为: $sum"16    else17   echo "昏头了呀你!小于100的整数"18   fi[root@localhost ~]# chmod +x w2.sh
[root@localhost ~]# bash w2.sh
快点!输入一个0-100的整数: 80
1-80的和为: 3240

三、until循环命令

重复测试某个条件,只要条件不成立则反复执行

 

until [ $i -gt 10 ];do
  echo $i
  let i++
  sum=$(($sum+$i))
done 

until循环实操

用until循环求1到100的和 

[root@localhost ~]# vim u1.sh
#!/bin/bash
#用until循环求1到100的和sum=0
i=0until [ $i -gt 100 ]
dosum=$[sum+i]let i++
doneecho "输出1到100的和:$sum"[root@localhost ~]# chmod +x u1.sh
[root@localhost ~]# bash u1.sh
输出1到100的和:5050


 

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

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

相关文章

Android PreferenceActivity可以自动设置的Activity

1、介绍 PreferenceActivity 是一个抽象类&#xff0c;继承自ListActivity ,该类封装了SharedPreferences. PreferenceActivity 提供了一些常用的设置项如,与普通组件一样&#xff0c;这些配置项既可以从XML文件创建&#xff0c;也可以从代码创建. 每一个设置项标签有一个andro…

FRP多级内网穿透实验(虚拟机多级网络环境搭建+FRP工具使用)

0x00 实验背景 最近在工作中遇到了一个指定必须使用FRP作为内网穿透工具的活动&#xff0c;由于以前没有深入分析过多层内网的实验环境&#xff0c;对多级级联转发还不是很熟悉&#xff0c;在这里简单记录一下环境搭建与实验内容。 0x01 环境搭建 环境搭建以VM为为虚拟平台&…

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版 Office LTSC 2024 for Mac 请访问原文链接&#xff1a;Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&a…

Spring Boot | Spring Boot 整合“ 邮件任务“ 实现

目录: Spring Boot 整合" 邮件任务" 实现 :一、发送 "纯文本邮件" :(1) 添加 "邮件服务" 依赖启动器(2) 添加 "邮件服务" 配置信息(3) 定制 "邮件发送服务"(4) "纯文本" 邮件发送 测试效果 二、发送 带 "附件…

Python实现WebSocket通讯与心跳控制详解

为了使用Python实现WebSocket通讯和心跳控制&#xff0c;我们通常需要一个WebSocket客户端库和一个服务器端库。这里&#xff0c;我们将使用websockets库作为服务器和客户端的示例。 安装必要的库 首先&#xff0c;你需要安装websockets库。可以使用pip进行安装&#xff1a; p…

Modbus TCP转CAN网关在不同行业中的应用以及其使用上的优势

倍讯科技Modbus TCP转CAN网关通常被用于工业自动化领域&#xff0c;特别是在需要连接现有Modbus TCP网络和CAN总线设备的场景中。以下是该网关在不同行业中的应用以及其使用上的优势&#xff1a; 1. 制造业&#xff1a; - 在制造业中&#xff0c;各种类型的设备和机器通常使用不…

PXE+Kickstart无人值守安装安装Centos7.9

文章目录 一、什么是PXE1、简介2、工作模式3、工作流程 二、什么是Kickstart1、简介2、触发方式 三、无人值守安装系统工作流程四、实验部署1、环境准备2、服务端&#xff1a;关闭防火墙和selinux3、添加一张仅主机的网卡4、配置仅主机的网卡4.1、修改网络连接名4.2、配IP地址4…

整合springboot-mybatis时,MySQL数据库无法连接问题

整合springboot-mybatis时&#xff0c;MySQL数据库无法连接问题 解决步骤 先手动停止MySQL服务&#xff0c;在cmd后的控制台输入services.msc 找到MySql停止服务 修改配置文件&#xff0c;跳过验证 修改MySQL安装目录下的my.ini配置文件&#xff0c;使登录时跳过权限检查&a…

业绩超预期外,海尔智家ESG实践再获认可

求增长&#xff0c;已成各行业面对的共同命题。 在家电赛道上&#xff0c;海尔智家的业绩表现不俗。2024一季度&#xff0c;海尔智家延续了年报稳健增长的趋势&#xff0c;继续在高基数下实现高增长&#xff0c;其利润增幅更是高达20.2&#xff05;&#xff0c;超预期。而今年…

【Web】CTFSHOW 月饼杯 题解(全)

目录 web1_此夜圆 web2_故人心 web3_莫负婵娟 web1_此夜圆 拿到源码&#xff0c;一眼字符串逃逸 本地测一测&#xff0c;成功弹出计算器 <?phpclass a {public $uname;public $password;public function __wakeup(){system(calc);} }function filter($string){retur…

Linux软件RAID:数据冗余与性能提升的完美融合

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《Linux &#xff1a;从菜鸟到飞鸟的逆袭》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、前言 1、软件RAID的概念 2、软件RAID与硬件RAID的对比…

记录一下 log4j的漏洞

目录 背景 bug的产生 bug复现 JNDI 网络安全学习路线 &#xff08;2024最新整理&#xff09; 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明&#xff1a; 背景 log4j这次的bug&#xff0c;我相信大家都已经知道了&#xff0c;仅以…