shell循环以及实验

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

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

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

循环和遍历:

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

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

循环是操作

遍历就是输出

循环的作用是什么

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 :

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

unidbg讲解V1

前言 unidbg是什么? unidbg是一个Java项目,可以帮助我们去模拟一个安卓或IOS设备,用于去执行so文件中的算法,从而不需要再去逆向他内部的算法。最终会产出一个jar包,可以被python进行调用。 如何使用unidbg? 下载github上开源的项目:https://github.com/zhkl0228/un…

【SkiaSharp绘图02】从绘制和填充圆开始

文章目录 准备工作从绘制和填充圆开始与Window GDI的差异 准备工作 【SkiaSharp绘图】系列文章的代码都是基于在窗体中拖入一个SkiaSharp.Views.Desktop.SKGLControl控件并平铺于窗体上&#xff08;有需要的可以查看【SkiaSharp绘图01】使用SkiaSharp绘制Hello World一文&…

平板消解加热台-温度均匀,防腐蚀-实验室化学分析

DBF系列防腐电热板 是精致路合金加热板块表面经进口高纯实验级PFATeflon氟塑料防腐不粘处理&#xff0c;专为实验室设计的电加热产品&#xff0c;是样品前处理中&#xff0c;加热、消解、煮沸、蒸酸、赶酸等处理的得力助手。可以满足物理、化学、生物、环保、制药、食品、饮品…

将Firefox插件导入Edge/Chrome中

目录 前言导出火狐插件.xpi格式插件导入edge/chorme中错误示范1错误示范2修改过程manifest.jsondict文件夹修改backgroundScript.jsinjectedScript.jsdebug过程最终backgroundScript.js和injectedScript.js代码 完工阶段修改后的源码 前言 因为博主本人想在edge/chrome中使用c…

深度解析ONLYOFFICE协作空间2.5版本新功能

深度解析ONLYOFFICE协作空间2.5版本新功能 上个月&#xff0c;4月份&#xff0c;ONLYOFFICE协作空间推出了V2.5版本&#xff0c;丰富了一些很实用的新功能&#xff0c;之前已经有文章介绍过了&#xff1a; ONLYOFFICE 协作空间 2.5 现已发布https://blog.csdn.net/m0_6827469…

vscode切换Python解释器

在vscode上切换解析器解决方案&#xff1a; 1、确认自己已经安装了python环境 2、command shift p ,在这里切换即可&#xff0c;见下图&#xff1a; 3、如果状态栏也就是右下角不现实切换操作的话&#xff0c;打开设置&#xff1a;

Redis跳表

Redis跳表 跳表是一种有序数据结构&#xff0c;它通过在每个节点维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的 跳表支持平均O&#xff08;logN&#xff09;&#xff0c;最坏O&#xff08;N&#xff09;复杂度的节点查找&#xff0c;还可以通过顺序性操作…

SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】

目录 1.背景2.算法原理2.1算法思想 3.结果展示4.参考文献5.代码获取 1.背景 2016年&#xff0c;S Mirjalili受到自然界座头鲸社会行为启发&#xff0c;提出了鲸鱼优化算法&#xff08;Whale Optimization Algorithm, WOA&#xff09;。 2.算法原理 WOA模拟了座头鲸的社会行为…

[linux]如何跟踪linux 内核运行的流程呢

前面已经可以把内核编译出来&#xff0c;但是作为技术狗想看到内核是怎么运行的怎么办&#xff1f; 内核很多代码都是C语言写的&#xff0c;那简单&#xff0c;添加2行代码&#xff1a; include/linux/printk.h 529和530原来的&#xff1a; #define pr_info(fmt, ...) \ …

App UI 风格打造独特体验

App UI 风格打造独特体验

Python第二语言(十三、PySpark实战)

目录 1.开篇 2. PySpark介绍 3. PySpark基础准备 3.1 PySpark安装 3.2 掌握PySpark执行环境入口对象的构建 3.3 理解PySpark的编程模型 4. PySpark&#xff1a;RDD对象数据输入 4.1 RDD对象概念&#xff1a;PySpark支持多种数据的输入&#xff0c;完成后会返回RDD类的对…

HCIA4以太网基础VLAN与接口类型

1.VLAN基本概念 如下图&#xff0c;一台未配置的交换机&#xff0c;所有接口属于同一个广播域。那么这四台PC只要属于同一个IP子网&#xff0c;那么PC间可互相访问。同广播域中任一PC只要发送一个广播数据帧&#xff0c;那么其他三个PC都会收到&#xff0c;并且耗费资源来处理…

基于Django和Vue的商城管理系统

文章目录 前言一、系统运行结果二、相关技术简介三、系统设计四、系统测试五、总结 前言 近年来&#xff0c;互联网技术的飞速发展极大地改变了人们的生活方式。网络购物作为一种新的购物模式&#xff0c;因其方便、快捷、选择多样等优点&#xff0c;迅速普及。为了满足人们日…

FPGA+金融|硬件行情加速系统 打造极速交易场景

会议时间&#xff1a;2024年06月20日&#xff08;周四&#xff09;下午13:50 FPGA金融|硬件行情加速系统 打造极速交易场景_中科亿海微_芯有灵犀 智创未来

TF-IDF算法教程

前言 TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;是一种常用的文本分析技术&#xff0c;广泛应用于信息检索和文本挖掘领域。它是一种统计方法&#xff0c;用于评估一个词语在一个文档中的重要程度。TF-IDF的核心思想是&#xff1a;如果一个词语…

vue3之toRefs

import { reactive, toRefs } from vue;export default {setup() {// 创建一个响应式对象const state reactive({count: 0,name: Vue 3});// 使用toRefs将响应式对象的属性转换为响应式引用const refs toRefs(state);// 返回响应式引用&#xff0c;以便在模板中使用return {.…

【iOS】KVC相关总结

目录 1. 什么是KVC&#xff1f;2. 访问对象属性常用方法声明基础使用KeyPath路径多值操作 3. 访问集合属性4. 集合运算符自定义集合运算符 5. 非对象值处理访问基本数据类型访问结构体 6. 属性验证7. 设值和取值原理基本的Getter搜索模式基本的Setter搜索模式NSMutableArray搜索…

maven引入依赖时莫名报错

一般跟依赖的版本无关&#xff0c;会报出 Cannot resolve xxx 的错误。 这种情况下去IDEA的setting中找maven的仓库位置 在仓库中顺着包路径下寻找&#xff0c;可能会找到.lastUpdated 的文件&#xff0c;这样的文件一般是下载失败了&#xff0c;而且在一段时间内不再下载&…

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

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

组织创新|AI赋能敏捷实践,助力企业敏捷转型

在工业5.0时代&#xff0c;随着项目变得越来越复杂&#xff0c;对效率的需求也在增长&#xff0c;致力于敏捷转型的组织正在寻求创新的解决方案来应对常见的挑战&#xff1a;工作量不平衡、低效的任务分配和知识孤岛等等。对此&#xff0c;AI等尖端技术的潜力可以帮助实现更高效…