shell循环以及实验

news2025/2/28 6:44:52

循环是一种重复执行的代码结构,只要满足循环的条件,会一直执行这个代码

循环条件:在一定范围之内,按照指定次数来执行循环。

循环体:在指定的次数内,执行的命令序列,只要条件满足,循环体就会一直被执行

循环和遍历:

遍历指的就是对数据结构中每个元素进行一次访问的过程,通常和循环一起使用。

访问的目的就是为了执行特定的操作

循环是操作

遍历就是输出

循环的作用是什么

1、重复执行代码,尤其是统一的,相同的,批量的操作。

2、提高代码的重复利用率

3、提高人工的效率,较少人工的干预,提高效率

4、简化程序的逻辑,降低代码出错的可能性。

for循环:用于已知循环次数的场景。

while循环:和for循环可以通用,常用与死循环

until:条件不满足才执行循环,条件不满足,不执行。

for循环的格式

格式一

for 变量名称 (前面没有$)in 范围 {}

do

命令序列echo

done

更改密码


for user in $(cat /opt/passwd.txt)
do
 useradd $user
 echo 123456 | passwd --stdin $user
 done
# sh 1.sh 
useradd:用户“xy101”已存在
更改用户 xy101 的密码 。
passwd:所有的身份验证令牌已经成功更新。
useradd:用户“xy102”已存在
更改用户 xy102 的密码 。
passwd:所有的身份验证令牌已经成功更新。
useradd:用户“xy103”已存在
更改用户 xy103 的密码 。
passwd:所有的身份验证令牌已经成功更新

格式二

类C语言格式

for ((表达式1.表达式2.表达式3))

do

echo

done

for ((i=0;i<5; i++))

表达式1:定义变量并且赋予初始值

表达式2:循环范围

表达式3:循环方式

格式三

死循环

for ((;;))

do

命令序列

done

猜数字,输入

随机数:$RANDOM

循环控制语句

break :再循环内部,执行到break命令时,会立刻跳出当前循环,并终止

continue:当执行contiune时。跳出当前循环,如果条件满足

会执行后续的循环条件

实验

循环实验

在这里插入图片描述

利用循环指令猜大小以及添加次数
在这里插入图片描述

在这里插入图片描述

例题:购物

逛淘宝选购商品,

每家商店有五种商品选购(衣服500元,裤子400元,鞋子350元,帽子150元,袜子50元),

每次选购完或不买都会提示用户是否继续逛下一家商店,

如果不再继续逛的话进行购物车结算总额。.

#!/bin/bash

#每家商店有五种商品选购,每次选购完或不买都会提示用户是否继续逛下一家商店,

如果不再继续逛的话进行购物车结算总额。

#衣服500元

#裤子400元

#鞋子300元

#帽子150元

#袜子50元

sum=0 suu=0
for((;;))
do
 echo "欢迎光临"
 echo "衣服500 裤子400 鞋子350 帽子150 袜子50"
read -p "输入要购买的商品{1衣服|2裤子|3鞋子|4帽子|5袜子}:" num

case $num in
1)
suu=500
;;
2)
suu=400
;;
3)
suu=300
;;
4)
suu=150
;;
5)
suu=50
;;
*)
sun=0
echo "欢迎下次光临 共消费 $sum元"
break
esac
sum=$(($sum+$suu))
read -p "您选择继续购物还是结算购物车{y/n}:" nuu
if [ $nuu = y ]
 then
continue
elif [ $nuu = n ]
 then
 echo "欢迎下次光临,共消费 $sum元"
break
 查看结果
# sh 11.sh 
欢迎光临
衣服500 裤子400 鞋子350 帽子150 袜子50
输入要购买的商品{1衣服|2裤子|3鞋子|4帽子|5袜子}:1
您选择继续购物还是结算购物车{y/n}:y
欢迎光临
衣服500 裤子400 鞋子350 帽子150 袜子50
输入要购买的商品{1衣服|2裤子|3鞋子|4帽子|5袜子}:2
您选择继续购物还是结算购物车{y/n}:n
欢迎下次光临,共消费 900[root@test3 opt]# sh 11.sh 
欢迎光临
衣服500 裤子400 鞋子350 帽子150 袜子50
输入要购买的商品{1衣服|2裤子|3鞋子|4帽子|5袜子}:2
您选择继续购物还是结算购物车{y/n}:n
欢迎下次光临,共消费 400

某山顶上有一颗香蕉树,一只猴子第一天从树上摘了若干根香蕉,当即就吃了一半,还不过瘾,
又多吃了一根。第二天猴子又将剩下的香蕉吃了一半,禁不住诱惑,又多吃了一根香蕉。
依此类推,每天都将剩余的香蕉吃一半后再多吃一根。到了第十天,猴子发现只剩一根香蕉了,
请问这只猴子在第一天总共摘了多少根香蕉?

num=1
for((i=9;i>=1;i--))
 do
  num=$((($num+1)*2))
 echo "第${i} 开始有${num} :"
done
查看结果
# sh 22.sh 
第9 开始有4 :
第8 开始有10 :
第7 开始有22 :
第6 开始有46 :
第5 开始有94 :
第4 开始有190 :
第3 开始有382 :
第2 开始有766 :
第1 开始有1534 :

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

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

相关文章

10.GLM

智谱AI GLM 大模型家族 最强基座模型 GLM-130B GLM (General Language Model Pretraining with Autoregressive Blank Infilling) 基于自回归空白填充的通用语言模型&#xff08;GLM&#xff09;。GLM通过增加二维位置编码并允许以任意顺序预测跨度来改进空白填充预训练&…

BigDecimal的这四个大坑,你都知道吗?

BigDecimal是Java中的一个类&#xff0c;提供了更精确的数字运算&#xff0c;在金融场景中经常使用到。在使用BigDecimal的时候一定要注意&#xff0c;否则可能会付出惨重的代价。 第一&#xff1a;初始化的坑 BigDecimal a new BigDecimal(0.01); BigDecimal b new BigDec…

【源码】【Spring+SpringMVC+MyBatis】电子商城网上购物平台的设计与开发

学生成绩管理系统 系统功能开发环境开发技术前端技术后端技术 系统展示登录界面注册界面系统首页商品详情页下单界面付款界面购物车界面 源码获取↓↓↓↓&#xff1a; 源码可在后台私信联系博主或文末添加博主微信获取帮助 系统功能 登录、注册模块&#xff1a;如果用户第一次…

【智能算法应用】基于粒子群算法的多尺度Retinex图像去雾方法

目录 1.算法原理2.粒子群算法的多尺度Retinex图像去雾方法3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】粒子群算法&#xff08;PSO&#xff09;原理及实现 多尺度Retinex算法 在Retinex算法中&#xff0c;雾化图像的形成可以总结为入射光和反射光的乘积: I ( x…

用 Python 撸一个 Web 服务器-第1章:Web 开发简介

前言 Web 开发技术一直在高速发展&#xff0c;各种新奇概念与框架层出不穷&#xff0c;尤其在 Web 前端领域&#xff0c;几年前还是 jQuery 的天下&#xff0c;而如今在 Vue、React 等框架面前也显得廉颇老矣。 不过&#xff0c;虽然各种框架技术日新月异&#xff0c;但 Web …

2024 年十大关键渗透测试发现:您需要了解的内容

编辑信息技术 (IT) 专业人员在坏人之前发现公司弱点的最有效方法之一就是渗透测试。通过模拟现实世界的网络攻击&#xff0c;渗透测试&#xff08;有时称为 pentests&#xff09;可以提供有关组织安全状况的宝贵见解&#xff0c;揭示可能导致数据泄露或其他安全事件的弱点。 自…

zerotier自建moon方法

简介 使用zerotier已经有一段时间了&#xff0c;现在偶尔会出现服务器连接不上的情况。我就想自己建个moon来试试。记录一下过程&#xff0c;用作备忘录。 准备工作 准备一个有公网IP的云主机。我用的是“三丰云”&#xff0c;速度很快同时提供"免费虚拟主机"和“免费…

docker 部署nginx多级子域名(三级四级...)映射不同web项目,访问不同路径地址

一、背景 只有一台服务器&#xff0c;一个顶级域名&#xff0c;现在需要根据不同子域名访问不同web项目&#xff0c;比如 # 管理后台 cms.biacu.com# 客户端h5 h5.biacu.com# 四级域名 h5.s.biacu.com同时&#xff0c;不同web项目放在不同位置 二、 1、在云服务器上&#x…

u-boot(三) - 编译

一&#xff0c;u-boot编译过程总结 编译时的Makefile log&#xff1a; //链接得到ELF格式的u-boot arm-buildroot-linux-gnueabihf-ld.bfd -pie --gc-sections -Bstatic -Ttext 0x87800000 -o u-boot -T u-boot.lds arch/arm/cpu/armv7/start.o --start-group arch/arm/c…

雷军出手,光储充一体化赛道可太行了

雷军出手&#xff0c;特斯拉、宁德时代、奥能电源持续加码&#xff0c;光储充一体化赛道可太行了 近几年&#xff0c;各地光储充一体化项目遍地开花&#xff0c;正式投入运营的新闻接连不断。被视为全球能源转型重要驱动力的光储充一体化&#xff0c;已成为各大企业竞相入局的新…

放弃Venn-Upset-花瓣图,拥抱二分网络

写在前面 让点随机排布在一个区域&#xff0c;保证点之间不重叠,并且将点的图层放到最上层&#xff0c;保证节点最清晰&#xff0c;然后边可以进行透明化&#xff0c;更加突出节点的位置。这里我新构建了布局函数 PolyRdmNotdCirG 来做这个随机排布。调用的是packcircles包的算…

现代X86汇编-C和ASM混合编程举例

端午假期安装好了vs c2022,并写了个简单的汇编代码&#xff0c;证明MASM真的可以运行。今天需要搞一个实实在在的C和ASM混合编程的例子&#xff0c;因为用纯汇编的求伯君写WPS的时代一去不复返了。个别关键函数用汇编&#xff0c;充分发挥CPU的特色功能&#xff0c;偶尔还是需要…

论文阅读:H-ViT,一种用于医学图像配准的层级化ViT

来自CVPR的一篇文章&#xff0c;https://openaccess.thecvf.com/content/CVPR2024/papers/Ghahremani_H-ViT_A_Hierarchical_Vision_Transformer_for_Deformable_Image_Registration_CVPR_2024_paper.pdf 用CNNTransformer混合模型做图像配准。可变形图像配准是一种在相同视场…

计算机体系结构重点学习

从外部I/O与上层应用交互的整体软硬件过程 上层应用发出I/O请求&#xff1a;上层应用程序&#xff0c;如一个文本编辑器、网络浏览器或者任何软件应用&#xff0c;需要读取或写入数据时&#xff0c;会通过调用操作系统提供的API&#xff08;如文件操作API、网络操作API等&…

CATIA P3 V5-6R 中文版软件下载安装 达索CATIA三维设计软件获取

CATIA的建模和装配能力堪称业界翘楚。其强大的建模工具能够轻松应对各种复杂的几何形状和结构&#xff0c;帮助设计师们快速构建出精准的产品模型。同时&#xff0c;装配模块则能够实现零部件的快速装配&#xff0c;大大提高了设计效率。 在分析和仿真方面&#xff0c;CATIA同样…

基于python多光谱遥感数据处理、图像分类、定量评估及机器学习

原文链接&#xff1a;基于python多光谱遥感数据处理、图像分类、定量评估及机器学习 普通数码相机记录了红、绿、蓝三种波长的光&#xff0c;多光谱成像技术除了记录这三种波长光之外&#xff0c;还可以记录其他波长&#xff08;例如&#xff1a;近红外、热红外等&#xff09;光…

【技术】MySQL 8.4 免安装版配置

MySQL 8.4 免安装版配置 官网下载压缩包解压文件创建配置文件初始化数据库安装MySQL服务链接数据库修改密码 官网下载压缩包 从MySQL官网下载压缩包&#xff0c;官网&#xff1a;https://www.mysql.com/ 头部菜单点击【DOWNLOADS】&#xff0c;跳转到下载页面。在页面底部点击…

如何通过逆向分析法挖掘真实需求?

逆向分析法从现有问题或现象出发&#xff0c;反向追溯其根本原因&#xff0c;以揭示隐藏需求和潜在问题。此方法有助于深入理解用户的真实需求&#xff0c;提高需求分析质量和效率&#xff0c;优化用户体验&#xff0c;提高用户满意度和忠诚度。如果缺乏逆行分析法&#xff0c;…

4.1 Python 字符串类型常用操作及内置方法

0. 序列类型 序列是一种数据存储方式, 用来存储一系列的数据. 在内存中, 序列使用连续的内存空间用来存放多个值.序列类型的变量存储序列对象的地址, 而不是直接存在值的地址. 序列对象保存索引和对象的绑定关系.s ABCDprint(id(s), type(s), s) # _ 2050757126000 &…

电商开发者必读:微店商品详情API接口全解析

微店作为一个流行的电商平台&#xff0c;提供了丰富的API接口供开发者使用。详细介绍商品详情API接口的使用方法&#xff0c;帮助开发者快速获取商品信息&#xff0c;实现商品信息的自动化展示和管理。 1. 接口简介 微店商品详情API接口允许开发者通过商品ID获取商品的详细信…