shell循环以及实验

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

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

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

循环和遍历:

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

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

循环是操作

遍历就是输出

循环的作用是什么

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

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

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

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

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

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

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

for循环的格式

格式一

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

do

命令序列echo

done

更改密码


for user in $(cat /opt/passwd.txt)
douseradd $userecho 123456 | passwd --stdin $userdone
# 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((;;))
doecho "欢迎光临"echo "衣服500 裤子400 鞋子350 帽子150 袜子50"
read -p "输入要购买的商品{1衣服|2裤子|3鞋子|4帽子|5袜子}:" numcase $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 ]thenecho "欢迎下次光临,共消费 $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--))donum=$((($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.mzph.cn/pingmian/26770.shtml

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

相关文章

C#知识|模块化分层学习笔记

哈喽&#xff0c;你好&#xff0c;我是雷工&#xff01; 01 基本分层 典型的两层结构&#xff1a;由UI层 数据访问层 实体类构成。 其中实体类不算一层&#xff0c;本质是一个数据载体。 02 模块化分层 模块概念&#xff1a;在.NET平台中&#xff0c;模块主要是指类库项目。…

Mac下载了docker,在终端使用docker命令时用不了

问题&#xff1a;在mac使用docker的时候&#xff0c;拉取docker镜像失败 原因&#xff1a;docker是需要用app使用的 &#xff0c;所以在使用的时候必须打开这个桌面端软件才可以在终端上使用docker命令&#xff01;&#xff01;&#xff01;

Spring系统学习 -Spring IOC 的XML管理Bean之P命名空间、实现引入MySQL外部链接属性文件

P命名空间 在Spring框架中&#xff0c;P命名空间是一种用于简化XML配置文件中属性注入的方式。通过引入P命名空间&#xff0c;可以使用更简洁的语法来设置bean的属性值&#xff0c;而无需显式地使用<property>子元素。这使得XML配置文件更加简洁和易于阅读。 要在Sprin…

shell条件测试和if语句

“C:\Users\Jessica\Desktop\6.12.assets\image-20240612094159578.png”# shell条件测试和if语句 一、条件测试 1、$? 返回码 判断命令或者脚本是否执行成功&#xff08;最近的一条&#xff09; 0 true 为真就是成功 成立 非0 false 失败或者异常 2、test命令 可以进行…

「OC」UI练习(二)——照片墙

「OC」UI练习——照片墙 文章目录 「OC」UI练习——照片墙UITapGestureRecognizer介绍照片墙实现 UITapGestureRecognizer介绍 UITapGestureRecognizer是UIKit框架中的一个手势识别器类&#xff0c;用于检测用户在视图上的轻击手势。它是UIGestureRecognizer的一个子类&#x…

ROS2读源码过程中涉及到的核心点梳理解读

流控 watchdog 过滤 如何把writer跟reader匹配 依赖topic&#xff1f;QOS? datashared 如何配置 安全 何时持久化 域隔离&#xff1f; 只有在同一个域内的通信实体才能通信&#xff0c;不同域内的实体间无法进行通信 架构设计细节、扩展性&#xff1f; 代码为什么难读…

源代码防泄密经验分享之安全上网篇

场景描述&#xff1a; 随着信息技术的发展&#xff0c;越来越多的新技术产品进入到政府、军事、科研等涉密单位。这些新技术产品在给工作人员带来便利的同时&#xff0c;也给信息安全保密工作带来了许多新的不容忽视的安全隐患&#xff0c;应引起高度重视。常规的内外网隔离手…

Vue29-自定义指令:函数式

一、定义 内置指令&#xff0c;指令是vue作者定的&#xff0c;背后的操作DOM的逻辑是也是vue作者写的。 自定义指令&#xff0c;指令名自定义&#xff0c;指令背后如何去操作DOM元素&#xff0c;也是自定义。 二、需求1&#xff1a;big指令 2-1、自定义指令directive 1、写法…

美摄科技匿名化处理解决方案,包含模糊、同色、马赛克、效果遮挡等各种形式

信息安全已成为企业发展中不可忽视的重要一环&#xff0c;随着信息安全法规的日益严格和公众对个人隐私保护意识的不断提高&#xff0c;企业如何在保障业务顺畅进行的同时&#xff0c;满足信息安全和隐私保护的要求&#xff0c;成为了亟待解决的问题。美摄科技凭借其强大的技术…

西门子学习笔记13 - mtqq库项目

这是我整合过后的mqtt库的下载地址 https://download.csdn.net/download/qq_61916672/89423266https://download.csdn.net/download/qq_61916672/89423266

如何开发一个直播APP:功能介绍与开发步骤详解

随着移动互联网的迅猛发展&#xff0c;直播APP已经成为人们生活中不可或缺的一部分。无论是娱乐、教育、商业还是其他领域&#xff0c;直播APP都以其独特的实时互动性和广泛的受众群体而备受欢迎。那么&#xff0c;如何开发一个直播APP呢&#xff1f;本文将详细介绍直播APP的功…

virtualbox扩展磁盘

使用virtualbox搭建虚拟机&#xff0c;如果磁盘不够用了&#xff0c;可以通过以下方式扩展。 扩容磁盘 分区扩展 查看磁盘情况 fdisk -l Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors Units sectors of 1 * 512 512 bytes Sector size (logical/phys…

【全开源】餐饮点餐小程序源码(ThinkPHP+FastAdmin+Uniapp)

&#x1f37d;️餐饮点餐小程序&#xff1a;让美食触手可及 一款基于ThinkPHPFastAdminUniapp开发的点餐小程序&#xff0c;支持单人点餐&#xff0c;还满足多人协同点餐(高级授权)&#xff0c;支持多门店管理&#xff0c;并提供先吃后付和先付后吃两种支付方式。​ &#x1…

[项目推荐]EmoLLM-心理健康大模型

EmoLLM 是一系列能够支持理解用户-支持用户-帮助用户心理健康辅导链路的开源心理健康大模型&#xff0c;由LLM指令微调而来。它旨在全面理解和促进个体、群体乃至整个社会的心理健康状态。 项目介绍 GitHub&#xff1a;https://github.com/SmartFlowAI/EmoLLM 【EmoLLM项目提供…

Go API

Go语言提供了大量的标准库&#xff0c;因此 google 公司也为这些标准库提供了相应的API文档&#xff0c;用于告诉开发者如何使用这些标准库&#xff0c;以及标准库包含的方法。官方位置&#xff1a;https://golang.org Golang中文网在线标准库文档: https://studygolang.com/p…

荣耀正式发布Magic V Flip,打造全形态折叠屏矩阵

6月13日&#xff0c;荣耀Magic V Flip科技时尚大秀在上海举行。作为荣耀旗下首款小折叠手机&#xff0c;荣耀Magic V Flip的问世标志着荣耀完成折叠屏全体系的最终部署&#xff0c;成为少数集齐现有各类折叠屏手机形态的品牌之一。 荣耀从消费者需求出发&#xff0c;以AI和折叠…

docker-compose Install it-tools

IT-Tools前言 IT-Tools是一款开源的个人工具箱,专为IT从业人员打造,支持Docker私有化部署,包含众多实用的IT工具。其功能丰富多样,涵盖二维码生成、数据格式转换、MAC地址生成等,可满足用户多样化的需求。 前提要求 安装 docker docker-compose 参考创建一键部署it-tool…

AnythingLLM 的 Docker 使用

AnythingLLM是使用大语言模型LLM的一站式简便框架。官网的介绍如下&#xff1a; AnythingLLM is the easiest to use, all-in-one AI application that can do RAG, AI Agents, and much more with no code or infrastructure headaches. 1. 使用官方docker 最方便的方法是使…

Conda安装

conda可以做到不同项目就用不同虚拟环境,这样就能做到每个项目的依赖包都是相互独立 一、windows Download Success | Anaconda 环境变量 二、nano 本次安装Archiconda的外部python版本为python3.7.1

【论文复现|智能算法改进】基于改进鲸鱼优化算法的移动机器人多目标点路径规划

目录 1.算法原理2.数学模型3.改进点4.结果展示5.参考文献6.代码获取 1.算法原理 SCI二区|鲸鱼优化算法&#xff08;WOA&#xff09;原理及实现【附完整Matlab代码】 2.数学模型 使用 A* 算法生成所有目标点之间的距离矩阵U: U [ d 1 − 1 d 1 − 2 d 1 − 3 ⋯ d 1 − i d…