shell循环语句 for while until

目录

什么是循环语句

概念

for循环

格式

while循环

格式

until 循环

格式

实验   for

(1)计算1到100的和

​编辑

(2)100以内的偶数 (从0开始到100结束,每次加2步  打印的都是偶数)

(3)100以内的奇数 (从1开始到100结束,每次加2步,打印的都是奇数)

(4)批量添加用户

    (4.1)批量删除用户

(5)测试网络段连通性

(6)批量将文件更改文件名

​编辑

1.打印 xyc

2.九九乘法表

​编辑

3.打印正方形

实验   while

(1)猜价小游戏

(2)计算1加到100的和

实验   until

(1)计算1加到100的和


什么是循环语句

概念

循环语句是一种在满足循环条件的情况下,反复执行某一段代码的流程结构。被反复执行的程序被称为循环体,它可以在合适的时候把循环判断条件改为false,从而结束循环,否则循环将一直执行下去,形成死循环。循环语句可以由循环体及循环的终止条件两部分组成。在实际问题中,有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句,一组被重复执行的语句称之为循环体

1.一定要有跳出循环的条件

2.已知循环次数(来十个新人  新建十个账号)

3.位置循环的次数,但是有一个跳出条件

for循环

格式

for  变量名  in  {list}

do 

     命令序列

done

循环次数列表跟你循环次数有关

循环列表有6个值  那么就循环6次

循环列表表现形式

while循环

格式

while 判断条件 条件成立 继续

                         条件不成立    跳出循环

do 

命令序列

done

while循环一般用于有条件判断的循环,

若判断条件为真,则进入循环,

当条件为假就跳出循环

until 循环

格式

until 条件测试操作

do

命令序列

done

until 循环与 while 循环类似,

while 循环能实现的脚本 until 同样也可以实现,

但区别是while 循环在条件为真是继续执行循环,

而 until 则是在条件为假时执行循环

实验   for

(1)计算1到100的和

sum=0;
i=0;
for i in {1..100};
do
sum=$[sum+i];
done;
echo $sum

(2)100以内的偶数 (从0开始到100结束,每次加2步  打印的都是偶数)

echo {0..100..2}

(3)100以内的奇数 (从1开始到100结束,每次加2步,打印的都是奇数)

echo {1..100..2}

(4)批量添加用户

#!/bin/bashfor i in `cat /qqq/name1.txt`
do
id $i &>/dev/null
if
[ $? -eq 0 ]
then
echo "$i 已存在 "
continue
fi
useradd $i
echo 123 |passwd $i --stdin
done

    (4.1)批量删除用户

#!/bin/bashfor i in `cat /qqq/name1.txt`
do
id $i &>/dev/null
if
[ $? -eq 1 ]
then
echo "$i 已删除 "
fi
userdel -r $i
done

(5)测试网络段连通性

#!/bin/bash
ip=192.168.17.for i in {1..254}do
{
ping  -c1 -W1 ${ip}${i} &>/dev/null
if [ $? -eq 0 ]   
then
echo ${ip}${i} >> /qqq/hoston    #可以ping通的放到hoston文件里
else
echo ${ip}$i  >> /qqq/hostoff    #不可以ping通的放到hostoff文件里fi
} &    #放入后台执行
done

(6)批量将文件更改文件名

#!/bin/bashfor i in `cat /qqq/xxx.txt`
do
touch $i     #将xxx.txt的文件独立出来
donefor i in *.JPG
do
p=`echo $i |cut -d"_" -f1`   #以_分割将_前面的提出来
n=`echo $i |cut -d"_" -f2`   #以_分割将_后面的提出来
mv $i ${n}_${p}.JPG  #重命名done

1.打印 xyc

#!/bin/bash
for i  in {1..10}
do
echo -e " xyc "
done

2.九九乘法表

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

3.打印正方形

#!/bin/bash
for j in {1..10}
do
for i  in {1..10}
do
echo -e " * \c"    ###\c换行
done
echo        ###换行
done 

实验   while

(1)猜价小游戏

#!/bin/bashm=`echo $[RANDOM%1000+1]`
t=0
special_char="*"
echo "This is $special_char"
while true
do
read -p "请输入猜的价格(1-1000内的整数):" h
let t++
if [ $h -eq $m ]
then
echo "你猜对了 商品价格是 $h 你一共猜了 $t 次"
exit
elif [ $h -gt $m ]
then
echo "你猜高了"
elseecho "你猜低了"fi
done

(2)计算1加到100的和

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

实验   until

(1)计算1加到100的和

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

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

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

相关文章

完美解决:在Ubuntu18.04下ROS Melodic基于python3的cv_bridge的一点子歪门邪道

由于在Ubuntu18.04下ROS Melodic是运行在python 2.7环境下,而我的程序需要运行在anaconda创建的python 3.x环境里,这就需要用到cv_bridge这个库,而不出意外的,各种报错,比如: from cv_bridge.boost.cv_bri…

贝锐向日葵:独家算法如何支撑不断地产品创新?

作为国民级的专业远程控制品牌,贝锐旗下的“向日葵远程控制”一直在远程控制领域不断积累创新。 近年来,远程控制软件本身开始成为企业的主流远程业务工具以及个人场景下的日常必备软件,向日葵远程控制也在不断地完善并创新产品。 比如在前…

pip安装tkinter模块失败 No matching distribution found for tkinter

我想使用Python创建一个简单的桌面应用程序, 这个应用程序依赖于tkinter, 然而,当我尝试安装过程时,出现了错误。 $ pip install tkinter ERROR: Could not find a version that satisfies the requirement tkinter (from versions: none) ERROR: No matching distributio…

泛微齐业成数电发票+乐企平台解决方案等您查收

近年来,国家持续发布加快数字化发展、深化税收征管制度改革的纲领性政策,与组织费用管理相关的发票、单据、档案等逐步完成数字化转型;2022年,全面数字化的电子发票正式执行,现在已有33地成为数电票试点。 全国数电票…

深入剖析预约上门服务系统源码:构建高效服务的代码之旅

在本文中,我们将深入研究预约上门服务系统的源码,透过代码的层层剖析,揭示系统背后的技术奥秘。我们将关注系统的核心功能,并通过代码示例演示其实现过程,为读者提供一个深度技术解读的体验。 1. 技术栈选择&#xf…

教育机构拒绝“数据陷阱”,群硕将英孚新一代教学管理系统搬上桌

为什么小机构年年担心招生不够,英孚却令学生家长趋之若鹜? 区别就在教学管理方式。为了更好地管理分布全球的校区、学生和老师,英孚应用了一套教学管理系统,帮助学校管理学员,帮老师智慧排课,帮助家长记录…

Spring框架学习 -- 读取和存储Bean对象

目录 🚀🚀 回顾 getBean()方法的使用 根据name来获取对象 再谈getBean() (1) 配置扫描路径 (2) 添加注解 ① spring注解简介 ② 对类注解的使用 ③ 注解Bean对象的命名问题 ④ 方法加Bean注解 (3) Bean 注解的重命名 (4) 获取Bean对象 -- …

基于YOLO模型建筑工地个人防护设备目标检测

使用安全装备可以保护他们免受建筑工地的意外事故。据统计,每年有数以万计的工人在建筑工地受到严重伤害,造成终生困难。然而,通过自我监控来确保工人穿戴个人防护装备非常重要。在这方面,需要一个准确和快速的系统来检测工人是否…

微信小程序其他环境都能显示在正式环境显示不出来

踩坑日记 用了uni.getImageInfo 用了uni.getImageInfo 本地开发环境,测试环境全都可以,就是更新到正式环境不显示。后面看代码百度了这个api发现图片所涉及的地址需要在小程序配置download域名白名单 https://uniapp.dcloud.net.cn/api/media/image.ht…

地埋式积水监测仪厂家批发,实时监测路面积水

地埋式积水监测仪是针对城市内涝推出的积水信息监测采集设备,采用超声波传感技术和超声波抗干扰功能,对路面的积水进行实时精准的监测。该设备能够在零下-5℃至高温70℃的严寒酷暑环境下可靠运行。它对城市道路积水进行实时监测并上报到监测系统之中&…

线上问题排查实例分析|关于 Redis 内存泄漏

Redis 作为高性能的 key-value 内存型数据库,普遍使用在对性能要求较高的系统中,同时也是滴滴内部的内存使用大户。本文从 KV 团队对线上 Redis 内存泄漏定位的时间线维度,简要介绍 Linux 上内存泄漏的问题定位思路和工具。 16:30 问题暴露 业…

电动机保护方式

3.3.1、电动机温度保护 温度保护是利用安装在电动机内部的温度继电器或变换器来实现的。当电动机达到一定温度时继电器动作,通过控制电路断开电动机的主电路。对于单相小容量电动机,可以用继电器直接断开动力电路。 根据温度传感器的不同可以分为&…

【Proteus仿真】【51单片机】篮球比赛计分器

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用声光报警模块、动态数码管模块、按键模块等。 主要功能: 系统运行后,数码管显示比赛时间和AB队得分;系统还未开…

数据中心运维管理:从人工到智能需要走几步?

一切的变化来自于数据中心规模、复杂度、设备多样性的挑战,将运维平台的重要性推向历史高点。 此外,基于业务连续性方面的考虑,分布式数据中心成为越来越多客户的选择。 一、数据中心面临的挑战 运维管理分散,缺乏统一的管理 I…

Win11和NewBing浏览器100%开启Copilot的方法

严格按以下步骤来,100%开启免费的AI: 1.系统升级到Win11最新版(不要用家庭版,推荐专业版) 升级完成之后的系统信息(时间截至2023.11.22) 版本号:23H2 操作系统版本:226…

MySQL数据库_01

Web后端开发_02 数据库介绍 什么是数据库? 数据库:DataBase(DB),是存储和管理数据的仓库 数据库管理系统:DataBase Management System (DBMS),操纵和管理数据库的大型软件。SQL:St…

java学习part08权限

1.权限表格 外部类都是公有和缺省,因为其他两种对于外部类没有意义 一些内部成分都各种权限都可以 2.如何体现java封装性 答,通过权限控制,保证哪些可以给人看到,哪些不能

手持式无线通信频谱分析仪 MS2713E

MS2713E 手持式无线通信频谱分析仪 安立手持式无线通信频谱分析仪 MS2713E 旨在处理最恶劣的现场条件,使您能够监控、定位、识别和分析各种蜂窝、2G/3G/4G、陆地移动无线电、Wi-Fi 和广播信号。多功能 Spectrum Master 在定位和识别宽频率范围内的信号时&#xff0…

3D人脸扫描设备助力企业家数字人复刻,打破商业边界

京都薇薇推出数字人VN,以京都薇薇董事长为原型制作,赋能品牌直播、短片宣传、线上面诊等活动,进一步增强消费者对品牌的交互体验,把元宇宙与品牌相融合,推动品牌线上服务与线下服务实现数字一体化,打造一个…

小白也看的懂的爬取视频操作

1.获取一段视频 可以直接从抖音下,也可以从b站上爬取(注意法律谢谢) 保护原创 b站的视频 直接复制网址链接到哔哩哔哩(bilibili)视频解析下载 - 保存B站视频到手机、电脑 去就好了,