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/bash

for 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/bash

for 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/bash

for i in `cat /qqq/xxx.txt`
do
touch $i     #将xxx.txt的文件独立出来
done

for 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/bash

m=`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 "你猜高了"
else

echo "你猜低了"

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

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

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

相关文章

maxwell采集数据到kafka报错

问题: 启动maxwell后出现数据更新后就出现以下报错。 13:29:14,727 ERROR MaxwellKafkaProducer - TimeoutException Position[BinlogPosition[binlog.000002:12215591], lastHeartbeat1700717043797] -- maxWellData: medical:consultation:[(id,212)] 13:29:14,7…

DNS协议、ICMP协议、NAT技术

文章目录 一.DNS协议1.DNS背景2.域名简介3.域名解析过程4.使用dig工具分析DNS过程 二.ICMP协议1.ICMP功能2.ICMP协议格式3.ping命令4.一个值得注意的坑5.traceroute命令 三.NAT技术1.NAT技术背景2.NAT IP转换过程3.NAPT4.NAT技术的缺陷5.NAT和代理服务器 四.网络协议总结1.应用…

微信运营神器:从群发到批量添加,让你的微信营销更轻松

在这个数字化时代,微信已经成为了我们生活中不可或缺的一部分。对于许多企业和个人来说,微信营销也是非常重要的一部分。但是,微信营销并不是一件容易的事情,需要花费大量的时间和精力。为了解决这个问题,今天我们将向…

C语言——接受一个整形值(无符号),使用函数的递归,按照顺序打印他的每一位。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void print(int n) {if(n>9){print(n/10);}printf("%d ",n%10); }int main() {unsigned int num 0;scanf("%d", &num);print(num);return 0; }

JavaScript 如何拷贝对像(Object)或者数组(Array)

目录 JavaScript数据拷贝类型 浅拷贝 深拷贝 举例&#xff1a; 浅拷贝 数组 对象 深拷贝 lodash cloneDeep使用示例 自定义深拷贝方法示例 JSON.parse() 和 JSON.stringify()使用示例 JavaScript数据拷贝类型 浅拷贝 数组可以使用Array.prototype.slice()方法 …

高通Camera HAL3: CamX、Chi-CDK要点

目录 一、概述 二、目录 三、CamX组件之前的关系 一、概述 高通CamX架构是高通实现的相机HAL3架构&#xff0c;被各OEM厂商广泛采用。 二、目录 代码位于vendor/qcom/proprietary下&#xff1a; camx&#xff1a;通用功能性接口的代码实现集合chi-cdk&#xff1a;可定制化…

排查光模块故障原因,少不了这2条命令!

光模块故障定位常用命令 根据光模块的告警信息查找故障原因&#xff1a; display interface transceiver查看光模块光功率是否正常 display interface transceiver verbose根据光模块的告警信息查找故障原因 执行命令display interface transceiver查看“Alarm information”…

【鸿蒙应用ArkTS开发系列】- 云开发入门实战二 实现省市地区联动地址选择器组件(上)

目录 概述 云数据库开发 一、创建云数据库的对象类型。 二、预置数据&#xff08;为对象类型添加数据条目&#xff09;。 三、部署云数据库 云函数实现业务逻辑 一、创建云函数 二、云函数目录讲解 三、创建resources目录 四、获取云端凭据 五、导出之前创建的元数据…

redis之cluster集群

1、redis-cluster集群&#xff1a;redis3.0引入的分布式存储方案 2、集群&#xff1a;由多个node节点组成&#xff0c;redis数据分布在这些节点之中 &#xff08;1&#xff09;在集群之中也分主节点和从节点 &#xff08;2&#xff09;自带哨兵模式 3、redis-cluster集群的…

thinkphp6 不支持:redis错误

起因&#xff1a; 使用 redis 时候&#xff0c;thinkphp 报错。 解决方法&#xff1a; 打开 php.ini 文件&#xff0c;增加 extensionphp_redis.dll 即可

「 系统设计 」 为什么要做架构分层?

「 系统设计 」 为什么要做架构分层&#xff1f; 参考&鸣谢 3.设计模式之分层思维&#xff1a;为什么要做代码分层架构&#xff1f; 从零开始学架构&#xff08;八&#xff09;分层架构和设计模式 架构模式之分层架构总结 文章目录 「 系统设计 」 为什么要做架构分层&…

PLC通过lora网关采集温室大棚温湿度数据

概述: 运用lora网关远程控制大棚内风机&#xff0c;日光灯&#xff0c;温湿度传感器等设备。可以实现远程获取现场环境的空气温湿度、土壤水分温度、二氧化碳浓度、光照强度可以自动控制温室湿帘风机、喷淋滴灌、加温补光等设备&#xff0c;并向远程计算机端推送实时数据&…

安卓手机便签APP用哪个,手机上好用的便签APP是什么

在日常生活及工作方面&#xff0c;总是有许多做不完的事情需要大家来处理&#xff0c;当多项任务堆叠交叉在一起时&#xff0c;很容易漏掉一些项目&#xff0c;这时候大家会借助经常携带的手机来记录容易忘记的事情&#xff0c;如手机上的闹钟、定时提醒软件都可以用来记录待办…

Python生产、消费Kafka

如果想通过docker安装kafka&#xff0c;可参考 Docker安装Kafka 生产者 import json import time import tracebackfrom datetime import datetime from kafka import KafkaProducer from kafka.errors import kafka_errorsproducer KafkaProducer(bootstrap_servers[localho…

复费率电表和预付费电表有哪些区别?

随着科技的发展和能源管理的日益严格&#xff0c;电表技术也在不断更新换代。复费率电表和预付费电表作为两种主流的智能电表&#xff0c;各自具有独特的优势和应用场景。接下来&#xff0c;小编来为大家详细解析这两种电表的区别及其应用场景。 一、复费率电表 1.定义及工作原…

基于STM32的电影院安全系统的设计与实现(论文+源码)

1.系统设计 本次基于STM32F4的电影院安全系统的设计与实现&#xff0c;以STM32F4单片机为核心控制器&#xff0c;配合人体红外传感器&#xff0c;烟雾传感器&#xff0c;甲醛传感器等硬件设施&#xff0c;实现了对电影院内环境的检测&#xff0c;当出现异常则会通过蜂鸣器和LE…

拼多多商品详情数据接口(Pinduoduo.item_get)

拼多多商品详情数据接口是一种程序化的接口&#xff0c;通过这个接口&#xff0c;商家或开发者可以使用自己的编程技能&#xff0c;对拼多多平台上的商品信息进行查询、获取和更新。这个接口允许商家根据自身的需求&#xff0c;获取商品的详细信息&#xff0c;例如价格、库存、…

Harmony 应用开发之size 脚本

作者&#xff1a;麦客奥德彪 在应用开发中&#xff0c;最终呈现在用户面前的UI&#xff0c;是用户能否继续使用应用的强力依据之一&#xff0c;在之前的开发中&#xff0c;Android 屏幕碎片化严重&#xff0c;所以出现了很多尺寸适配方案。 最小宽适配、百分比适配等等。 还有一…

【论文】Bao:一种用于现代多核嵌入式系统的轻型静态分区管理程序

Bao&#xff1a;一种用于现代多核嵌入式系统的轻型静态分区管理程序 个人学习过程中 Bao Hypervisor 论文翻译&#xff08;借助翻译工具个人校对&#xff09;&#xff0c;仅供学习使用&#xff0c;由于个人对一些技术专有名词不够熟悉&#xff0c;翻译不当的地方欢迎指出 论文地…

windows11下安装Tensor RT,并在conda虚拟环境下使用

建议仔细读一读NVIDIA官方出的安装教程&#xff0c;里面有windows、linux等安装教程&#xff0c;非常详细&#xff0c;这里再做一下简要总结。 TensorRT主要有三种安装模式、五种安装方式 毫无疑问&#xff0c;在windows系统中&#xff0c;我们只能选择zip安装。 安装tensorR…