Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【shell】shell脚本实战-while循环语句

【shell】shell脚本实战-while循环语句

作者头像
全栈程序员站长
发布于 2022-09-15 03:14:15
发布于 2022-09-15 03:14:15
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

前言

上文我们讨论了for循环的使用,在有限循环里,我们使用for循环是很方便的一件事情,今天我们来探讨下while循环

while循环语句的语法分析
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
语法格式一:
while [条件]
do
	操作
done

语法格式二:
while read line
do
	操作
done  <  file

通过read命令每次读取一行文件,文件内容有多少行,while循环多少次

注意:只有表达式为真,do和done之间的语句才会执行,表达式为假时,结束循环(即条件成立就一直执行循环)

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while true ;do
	echo 'helloword'
done
while 的使用案例
1. 循环输出1-10的数字
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

num=1

while [ $num -le 10 ]
do
	echo $num
	num=$(( $num + 1 ))
done
2. 使用while读文件并打印文件内容

用法一:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while read line
do
	echo $line
done <./a.txt

用法二:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cat ./a.txt|
while read line
do
	echo $line 
done

for实现的读取文件并着行打印

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

content=$(cat ./a.txt)
for i in $content
do
   echo $i
done
3. 输出两数相乘的效果(如下图)

此处感谢 @一只小小白丶 的建议,因为大多数人看到等号就会想到两边相等,这符合我们的教育习惯。

如果要实现图中效果可以按照如下方式做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
num=1
while [ $num -lt 10 ]
do
	sum=$(( $num * $num))
	echo "$num * $num = $num"
	((num++))

done

当然大多数人习惯了让等式两边必须相等,不相等看上去别扭,这也是义务教育的结果,也可以稍微改一下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
num=1
while [ $num -lt 10 ]
do
	sum=$(( $num * $num))
	echo "$num * $num = $sum"
	((num++))

done

这样输出的结果符合大多数人的数学习惯:

创建指定文件里的用户

指定文件 name.txt 里面包含 zhangsan lisi wangwu

name.txt 如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ecs-c13b ~]# cat name.txt 
zhangsan
lisi
wangwu

从name.txt里面遍历用户名并创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
for name in `cat /root/name.txt`
#for name in $(cat /root/a.txt)
do
        id $name &> /dev/null
        if [ $? -ne 0 ];then
                useradd $name
                echo "123456" |passwd --stdin $name &> /dev/null
                echo "user $name created"

        else
                echo "user $name is exist"
        fi
done
总结

到目前为止,for-while-if-case,这四个常用的控制语句我们都已经探讨过了,接下来就是大量练习和综合应用的时候,操练起来把。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163959.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
shell脚本快速入门之-----循环(for、while、until)
若指定用户不在线(未登陆系统),则每10分钟(实验中为了测试效果,可改为3s)试一次,直至用户登录系统后再发送信息 用户名与消息通过为止参数传递给脚本
不吃小白菜
2020/09/03
1.2K0
shell脚本快速入门之-----循环(for、while、until)
shell循环语句
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163938.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/15
6480
shell循环语句
Linux Shell脚本编程提高
Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核,不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序.Shel编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果,下面我们会介绍Shell-Script的编写.
王瑞MVP
2022/12/28
3.3K0
Linux Shell脚本编程提高
快速掌握shell脚本的各种循环语句
Until是当条件表达式不成立时,就会进入循环,当条件表达式成立时就终止循环 #语法格式
老油条IT记
2020/09/04
7.5K0
流程控制-while循环
while在shell中也是负责循环的语句,和for一样。因为功能一样,很多人在学习和工作中的脚本遇到循环到底该使用for还是while呢?很多人不知道,就造就了有人一遇到循环就是for或者一位的while。我个人认为可以按照我说的这个思想来使用,既知道循环次数就可以用for,比如说一天需要循环24次;如果不知道代码要循环多少次,那就用while,比如我们作业中要求写的猜数字,每个人猜对一个数字的次数都是不能固定的,也是未知的。所以这样的循环我就建议大家用while了。
星哥玩云
2022/09/08
3040
shell脚本快速入门之-----shell脚本练习100例!!!
1、可以采用冒泡排序的方式。 2、双层循环,外层控制把数组中每一个元素都取出来,内层循环采用当前元素和向后的数组元素比大小,最小的值和当前元素交换的方式 3、输入成绩这一块,因为数组已经有序了,只要拿输入元素和数组中元素相比,如果数组中元素大于当前输入元素,记住当前位置,当前位置数组后面的元素都向后移一位。
不吃小白菜
2020/09/03
22.6K2
Shell while循环和until循环语句
while 循环语句的基本语法 while <条件表达式> do 指令... done 示例:显示每分钟负载情况 #!/bin/bash while true do uptime >> uptime.txt sleep 5 done 图片 系统显示时间 22:29:31 up 6 days 距上次启动开始系统运行时间 1 user 一个连接数 load average 分别表示1分钟 5分钟 15 分钟系统的平均负载 示例:打印54321 #!/bin/bash i=5
云计算小黑
2022/12/28
8980
Shell while循环和until循环语句
shell脚本编程之路3
描述:我们学过的每一种高级编程语言,都在存在流程/分支选择/循环等结构,同样shell编程中也有这是与windows上的bat编程不一样的点;shell选择分支嵌套建议不超过三层,为了执行的效率和其他人容易读懂;
全栈工程师修炼指南
2022/09/28
4770
shell脚本编程之路3
08·Shell编程-循环
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
3550
【趣学程序】Linux流程语句
linux命令流程语句 if语句 在linux中可以通过help命令查看if的格式 [root@CentOS6 shell]# help ifif: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi 解释: if 后面跟命令 ; then 如果命令成立,在这里可以在执行命令; [还可以写多个 elif 语句] [最后也可以写 else 语句] 最终以 fi 结束i
趣学程序-shaofeer
2019/07/27
6350
shell 循环语句[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163943.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/15
5120
101个shell脚本
emm。。这个脚本是因为tomcat没有自带的能够给service开机启动的脚本,我就琢磨着自己写了一个简单的启动脚本,如下:
端碗吹水
2020/09/23
1.4K0
101个shell脚本
Linux 【Shell脚本经典案例】
===============Talk is cheap, show me the code,bye-bye================
IT茂茂
2020/09/17
3.3K0
Linux 【Shell脚本经典案例】
学习笔记0615----shell脚本
每隔1分钟检查一下系统负载,当系统的负载大于10的时候,发一封邮件(监控脚本) 最小单元是任务计划 cron
嘻哈记
2020/11/24
8090
shell教程之循环语句for,while,until用法
一、for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done 之间),直到所有元素取尽为止。
Java架构师必看
2021/06/10
1.2K0
shell教程之循环语句for,while,until用法
Shell笔记3:循环结构,服务脚本设计,函数及中断控制
1.循环结构 a.for循环 语法结构及特点 for 变量名 in 值列表 do 命令序列 done
陪你听风
2021/03/31
4720
一线工作高频率使用的shell脚本汇总
哈喽大家好!我是波哥! ---- 1、检测两台服务器指定目录下的文件一致性 #!/bin/bash ###################################### 检测两台服务器指定目录下的文件一致性 ##################################### #通过对比两台服务器上文件的md5值,达到检测一致性的目的 dir=/data/web b_ip=192.168.88.10 #将指定目录下的文件全部遍历出来并作为md5sum命令的参数,进而得到所有文件的md5值,并写
IT运维技术圈
2022/06/27
3210
Linux shell脚本使用while循环执行ssh的注意事项
如果要使用ssh批量登录到其它系统上操作时,我们会采用循环的方式去处理,那么这里存在一个巨大坑,你必须要小心了。 一、场景还原: 我现在是想用一个脚本获取一定列表服务器的运行时间,首先我建立一个名字为ip.txt的IP列表(一个IP一行),再建好密钥实现不用密码直接登录。然后写脚本如下: #!/bin/bash while read ips; do echo $ips; done < ip.txt 脚本实现了逐行读取列表中的IP,但是: #!/bin/bash while read i
小小科
2018/05/03
4.1K0
Shell for循环和select循环语句
for循环格式 for 变量名 in 变量取值列表 do 指令 done 示例 打印5 4 3 2 1 5个数字 #!/bin/bash for i in 5 4 3 2 1 do echo $i done 方法二 #!/bin/bash for (( i=5;i>0;i--)) do echo $i done PS:改名命令rename命令 jpg格式的图片改成png rename ".jpg" ".png" "*.jpg" 打印九九乘法表 #!/bin/bash for num1
云计算小黑
2022/12/28
6940
shell编程中 for while until循环的使用方法及案例
Shell脚本编程中,有几种常见的循环结构,包括for循环、while循环和until循环,总的来说,循环在Shell编程中扮演着至关重要的角色,它们使得自动化任务变得更加容易,提高了效率,并且可以处理各种各样的编程需求。
神秘泣男子
2024/06/03
5050
shell编程中 for while until循环的使用方法及案例
相关推荐
shell脚本快速入门之-----循环(for、while、until)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验