shell脚本(10)-流程控制while
一、while循环介绍
while循环与for一样,一般不知道循环次数使用for,不知道循环的次数时推荐使用while
二、while语法
while [ condition ] #条件为真才会循环,条件为假,while停止循环
do
commands
done
三、while实战
1、使用while遍历文件内容
#!/usr/bin/bash while read i
do
echo "$i"
done < $1
查看运行结果:
[root@localhost test20210728]# sh while-1.sh /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
......
2、while实现账户登录判断
[root@localhost test20210728]# vim while-2.sh #!/usr/bin/bash read -p "login: " account
while [ $account != 'root' ]
do
echo "输入的账户不符合条件,请重新输入:"
read -p "login: " account
done
查看运行结果:
[root@localhost test20210728]# sh while-2.sh
login: test
输入的账户不符合条件,请重新输入:
login: root1
输入的账户不符合条件,请重新输入:
login: root
[root@localhost test20210728]#
3、while+sleep(输出1-10,且每次输出后睡眠1s)
[root@localhost test20210728]# vim while-3+sleep.sh #!/usr/bin/bash
i=1
while [ $i -lt 10 ];do
echo -n $i" "
sleep 1
i=$((i+1))
done
echo
查询运行结果:(每秒输出一个数字)
[root@localhost test20210728]# sh while-3+sleep.sh
1 2 3 4 5 6 7 8 9
4、while+break(输出1开始自增,且到5时停止)
[root@localhost test20210728]# vim while-4+break.sh #!/usr/bin/bash
i=1
while [ $i -lt 10 ];do
echo -n $i" "
if [ $i -eq 5 ];then
break
fi
i=$((i+1))
done
echo
查看运行结果:
[root@localhost test20210728]# sh while-4+break.sh
1 2 3 4 5
5、while+continue(输出1-10开始自增,且到5时跳过输出)
[root@localhost test20210728]# vim while-5+continue.sh #!/usr/bin/bash
i=0
while [ $i -lt 10 ];do
i=$((i+1))
if [ $i -eq 5 ];then
continue
fi
echo -n $i" "
done
echo
查看运行结果:
[root@localhost test20210728]# sh while-5+continue.sh
1 2 3 4 6 7 8 9 10
shell脚本(10)-流程控制while的更多相关文章
- shell脚本之流程控制
shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语 ...
- shell脚本 3 流程控制
shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...
- Shell脚本学习 - 流程控制和函数
继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...
- Shell脚本之流程控制(if、for、while)
if 判断 if语句的三种格式: (1)if (2)if else (3)if elif else 语法格式如下: #if 语法格式 if 条件 then 命令1... 命令2... fi #if e ...
- shell脚本(11)-流程控制case
一.case介绍 生产环境下,遇到要根据不同的状况执行不同的预案的情况,首先根据可能出现的情况写出对应预案,根据出现的情况来加载不同的预案 特点:根据给予的不同的代码块 二.case语法 case 变 ...
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
http://blog.csdn.net/xiaominghimi/article/details/7603003 本站文章均为李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区 ...
- Shell命令和流程控制
Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...
- Shell脚本的条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
- PHP 10 : 流程控制
原文:PHP 10 : 流程控制 感觉PHP和其他语言相似.说说PHP提供的流程控制关键字吧. 条件 ifelseelseifswitch 循环 whiledo{} while()breakconti ...
随机推荐
- 【VBA】一些判断
判断是否为空: Sub 测试() If IsEmpty(Range("A100000")) Then Debug.Print "空的" End If End S ...
- 图文并茂教你学会使用 IntelliJ IDEA 进行远程调试
1. 前言 今天线上出现了个 Bug ,而且比较坑的是涉及到微信相关的东西不能线下调试.传统方式是在代码中各种的日志 log 埋点然后重新部署进行调试,再根据 log 中的信息进行分析.如果你的 lo ...
- redis不完整的事务实现Transaction
使用场景 redis一个命令执行是单线程的,不用担心并发冲突,如果你想有几个命令想像一个命令一样,在这几个命令执行过程中不会执行别的客户端发来的命令 ,也就是原子性,就可以用 redis Transa ...
- WEB安全新玩法 [6] 防范图形验证码重复使用
在完成关键业务操作时,要求用户输入图形验证码是防范自动化攻击的一种措施.为安全起见,即使针对同一用户,在重新输入信息时也应该更新图形验证码.iFlow 业务安全加固平台可以加强这方面的处理. 某网站系 ...
- mycat高可用-安全管理-监控 看这一篇就够了
在之前的操作中,我们已经实现了mysql机器的高可用,可以动态切换master,那么如果mycat崩溃了呢?我们应该如何处理呢?所以此时就需要搭建mycat的高可用集群了. 在mycat的权威 ...
- Spring学习日记02_IOC_属性注入_其他类型属性
ICO操作Bean管理(xml注入其它类型属性) 字面量 null值 <property name="address"> <null></null&g ...
- 『无为则无心』Python序列 — 21、Python字典及其常用操作
目录 1.字典的应用场景 2.字典的概念 3.创建字典的语法 4.字典常见操作 (1)字典的增加操作 (2)字典的删除操作 (3)字典的修改 (4)字典的查找 (5)copy()复制 1.字典的应用场 ...
- 3、搭建 rsync备份服务器
yum install rsync -y rsync(873):数据同步,把一台服务器上的数据以何种权限同步到另一台服务器上,是linux 系统下的数据镜像备份工具.使用快速增量备份工具Remote ...
- json串向后台传递数值自动四舍五入的问题
业务需求:传递前台输入的数据,数量要求是小数点(多条数据) 后台服务是使用asp.net写的. 问题:反序列化JSON时总是自动四舍五入. 原因:JSON反序列化的时候数据类型是以第一条数据的类型为准 ...
- POJ 1039 直线和线段相交
题意: 题意很好理解,从左边射过来的光线,最远能经过管道到右边多少距离. 分析: 光线一定经过一个上端点和一个下端点,这一点很容易想到.然后枚举上下端点即可 #include <iostream ...