shell--while循环

1.基本语法

while [ 条件表达式 ]
do语句语句
done

示例:循环输出 1~10这几个数

[root@openEuler ~]# cat while1.sh 
#!/bin/bashi=1
while [ $i -le 10 ]
doecho $ilet i++
done

示例:使用 exec 读取指定文件的内容并循环输出。

# 第一步创建文件及内容
[root@openEuler ~]# cat > myfile << EOF
> open
> openlab
> openlab123
> linux
> readhat
> EOF
[root@openEuler ~]# cat myfile 
open
openlab
openlab123
linux
readhat
# 第二步:编写脚本来实现文件读取并循环输出
[root@openEuler ~]# cat while2.sh 
#!/bin/bashexec < myfilewhile read line
doecho $line
done
[root@openEuler ~]# bash while2.sh 
open
openlab
openlab123
linux
readhat

使用另一种方式来读取文件:

[root@openEuler ~]# cat while3.sh 
#!/bin/bashwhile read line
doecho $line
done < myfile
[root@openEuler ~]# bash while3.sh 
open
openlab
openlab123
linux
readhat

2.无限循环

在 while 的表达式中,可以指定以下几个特殊值:

  • true 它会一直循环,而且它的状态返码是 0

  • false 它不做任何事,表示成功,状态码为 0

  • : 它的作用与 true 相同,都是进行无限循环

示例:

[root@openEuler ~]# while true ; do echo 123123 ; done   #会一直循环[root@openEuler ~]# while false ; do echo 123123 ; done
[root@openEuler ~]# echo $?
0[root@openEuler ~]# while : ; do echo 123123 ; done

3.使用示例

[root@openEuler ~]# cat while4.sh 
#!/bin/bashprice=$[ $RANDOM % 100 ]
time=0while true
doread -p 'Please enter product price [0-99]: ' inputlet time++if [ $input -eq $price ]; thenecho 'Good luck, you guessed it.'echo 'You have guessed $time times.'exit 0elif [ $input -gt $price ]; thenecho "$input is to high"elseecho "$input is to low"fiif [ $time -eq 5 ]; thenecho "You have guessed is 5 times. exit"exit 1fi
done
[root@openEuler ~]# bash while4.sh 
Please enter product price [0-99]: 50
50 is to low
Please enter product price [0-99]: 80
80 is to high
Please enter product price [0-99]: 70
70 is to high
Please enter product price [0-99]: 60
60 is to low
Please enter product price [0-99]: 65
65 is to low
You have guessed is 5 times. exit
[root@openEuler ~]# 

示例:使用while读取文件

# 1. 创建文件
[root@openEuler ~]# cat ips
192.168.72.131  22
192.168.72.132  23
192.168.72.133  22# 2. 编写脚本 
[root@openEuler ~]# cat while6.sh 
#!/bin/bashwhile read line
doIP=`echo $line|cut -d" " -f1`   # 也可以使用awk来实现,如:IP=`echo $line|awk '{print $1}'`PORT=$(echo $line|cut -d " " -f 2)echo "IP:$IP, PORT:${PORT}"
done < ips# 3. 运行测试
[root@openEuler ~]# bash while6.sh 
IP:192.168.72.131, PORT:22
IP:192.168.72.132, PORT:23
IP:192.168.72.133, PORT:22

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

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

相关文章

ADOP带您了解CWDM模块和DWDM模块

CWDM&#xff08;Coarse Wavelength Division Multiplexing&#xff0c;粗波分复用&#xff09;和DWDM&#xff08;Dense Wavelength Division Multiplexing&#xff0c;密集波分复用&#xff09;是两种常见的光模块技术&#xff0c;用于在光纤中同时传输多个信号。让我们来看看…

Webfunny前端监控如何接入飞书单点登录(SSO)

Hello&#xff0c;大家好&#xff0c;欢迎使用**webfunny前端监控和埋点平台**。今天我们将介绍一下如何接入飞书的登录系统。 友情提示&#xff1a;如果飞书侧已经配置好了&#xff0c;可以直接跳到第六步阅读。 一、创建飞书网页项目 进入飞书开发者后台&#xff0c;创建企…

大话设计模式-装饰器模式

大话设计模式书中&#xff0c;作者举了一个穿衣服的例子来为我们引入装饰器模式。 概念 定义 装饰模式在书中的定义是&#xff1a;动态地给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式比生成子类更灵活。 这句话直接去理解可能会有点抽象&#…

7个因素影响小红书账号权重

1、原创 小红薯对原创内容给予了较高的权重和推荐度。如果笔记的原创度低于60%&#xff0c;平台会对其权重大幅降低&#xff0c;这意味着笔记可能会被限流&#xff0c;即在用户的推荐流中很少出现。 2、转化率 当你发布一篇笔记后&#xff0c;平台会根据标签将其推送给一小部分…

如何进行JVM的调优

进行Java虚拟机&#xff08;JVM&#xff09;的调优是一项关键的工作&#xff0c;旨在优化JVM的性能&#xff0c;提高应用程序的响应速度和吞吐量&#xff0c;并确保系统的稳定运行。JVM调优通常涉及到调整堆大小、选择合适的垃圾收集器、监控运行时性能以及分析内存泄漏等方面。…

探索Java设计模式:状态模式

深入理解与实践Java设计模式之状态模式 一、简要介绍 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为。状态模式通过引入状态类来封装与状态相关的行为&#xff0c;并使上下文对象&#xff08;即拥有…

华为校招机试 - 扑克牌消除(20240417)

题目描述 从一副扑克牌中随机抽取 n 张牌组成一个序列,规定连续 3 张相同牌号的卡牌可以消除,剩余卡牌按照当前顺序重新合并成新的序列后继续消除,重复以上步骤直到无法消除,最后请输出结束后剩余的卡牌序列。 注:存在连续 4 张相同牌号的情况,消除后剩余一张。 输入描…

数据结构-KMP算法

KMP算法 简单的模式匹配算法 定义:子串的定位操作通常称为串的模式匹配,他求的是子串在主串中的位置过程 逐个字符比较 从主串指针 i 对应的字符和模式串指针 j 对应的字符开始&#xff0c;依次比较它们是否相等。若相等&#xff0c;则同时移动 i 和 j 向右一位&#xff0c;继续…

C语言本身不难,难得是应用场景很多

你学了C语言多半是要做项目的&#xff0c;这个过程中C语言是远远不够的&#xff0c;你把这部分难度加到C语言上&#xff0c;自然就难了在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区…

【python】如何通过python来发送短信

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

MySQL-多表设计

黑马程序员JavaWeb开发教程 文章目录 一、一对多&#xff08;多对一&#xff09;二、一对一三、多对多 项目开发中&#xff0c;在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xf…

【日志】CSDN-AI助手升级日志

CSDN-AI助手升级日志 2023/04/05上线 支持点赞、收藏回访 关注回访&#xff08;对方至少有一条博客的记录&#xff09; 评论回访 私信检测到群发消息自动三连 OR 通过私信指令三连触发 bug优化 优化检测模式&#xff0c;防止出现多触发情况 为了防止操作额度不够&#xff0c…

虚拟局域网PPTP配置与验证

虚拟局域网PPTP配置与验证 前言PPTP服务侧安装配置REF 前言 虚拟专用网&#xff08;Virtual Private Network&#xff0c;VPN&#xff09;是一种通过公共网络建立安全的连接的技术。它能够在不同的地理位置之间建立私密的通信通道&#xff0c;实现远程访问网络资源的安全性和隐…

2024.4.21周报

目录 摘要 Abstract 文献阅读&#xff1a;Next Item Recommendation with Self-Attentive Metric Learning 问题及方法 论文贡献 方法论 序列感知的推荐系统 神经注意模型 模型&#xff1a;ATTREC 序列推荐 基于Self-Attention的用户短期兴趣建模 用户长期兴趣建模…

JSS作业

JSS作业&#xff1a; 1: <script>var cnt parseInt(window.prompt("请输入打印的行数&#xff1a;"));for (var i 1; i < cnt; i){for (var j 1; j < i; j){document.write("*")}document.write("<br>")} </script>…

量化交易:多因子选股结合布林带择时

哈喽,大家好,我是木头左! 多因子选股策略是一种基于多个财务指标来筛选股票的方法。这种策略认为,通过综合考虑多个因素,可以更全面地评估一家公司的价值和盈利潜力。 感兴趣的朋友,可以在下方公号内回复:001,即可获取源码,共同交流! 策略的基本原理 在本策略中,我…

区块链 | OpenSea:Toward Achieving Anonymous NFT Trading 一文的改进方案

&#x1f951;原文&#xff1a; Toward Achieving Anonymous NFT Trading &#x1f951;吐槽&#xff1a; 这论文怎么老有描述不清、前后不一致的地方&#x1f607; 正文 在本节中&#xff0c;我们将具体展示我们方案的构建。我们将基于一个示例来描述我们方案的工作流程&…

【MongoDB】数据的自动过期,TTL索引

文章目录 1. 前言2.概念与使用2.1.使用方式2.2.数组中包含日期字段2.3.设置具体的过期时间点2.4.额外的过滤条件 3.总结 1. 前言 在近期的工作中&#xff0c;使用了MongoDB来保存了一些日志数据&#xff0c;但是这些日志数据具有一定的时效性&#xff0c;也就是按照业务的需要…

mac可以玩steam吗 mac安装steam教程 苹果电脑能打steam游戏吗 苹果电脑怎么安装windows 苹果mac电脑配置AI功能的M4芯片

众所周知&#xff0c;Steam作为一个热门的游戏平台&#xff0c;深受国内外玩家的喜爱&#xff0c;平台中包含了无数的游戏&#xff0c;在作战时玩家们能够与朋友们互动聊天&#xff0c;还能匹配好友组队&#xff0c;同时还能增进与同伴的默契度。 但是最近有玩家们提问说&#…

MySQL数据库中备份和查询

总所周知我们用到的数据有可能丢失&#xff0c;那么我们就可以通过备份把数据找回&#xff0c;如何操作&#xff1a;请先看下面讲解 备份&#xff1a; 导出&#xff1a; 先对数据库进行备份&#xff0c;然后提取备份文件中的SQL语句 这就是我们导出数据&#xff0c;导出了就有…