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 ...
随机推荐
- POI导出Excel时下拉列表值超过255的问题(String literals in formulas can't be bigger than 255 characters ASCII)
//创建Excel工作薄对象 Workbook workbook = new HSSFWorkbook(); //生成一个表格 设置:页签 Sheet sheet = workbook.createS ...
- 如何使用 Python 统计分析 access 日志?
一.前言 性能场景中的业务模型建立是性能测试工作中非常重要的一部分.而在我们真实的项目中,业务模型跟线上的业务模型不一样的情况实在是太多了.原因可能多种多样,这些原因大大降低了性能测试的价值. 今天的 ...
- 05:JS(01)
内容概要 JavaScript编程语言开头 数值类型 字符类型 布尔值 null与undefined 对象 数组 自定义对象 流程控制 函数 内置对象 时间对象 正则对象 JSON对象 BOM操作(j ...
- 「题解」黑暗塔 wizard
本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题意简述 给定 \(y\),求 \(\varphi(x)=y\) 中 \(x\) 的个数和最大值. \(1\leq y\leq 10 ...
- starter自动转配流程以及@Import注解使用
本文主要内容包括三个部分,第一部分主要介绍@Import注解的三种使用方法,第二部分主要介绍自定义starter的两种形式,第三部分主要介绍Springboot自动装配Bean的大致流程,第四部分主要 ...
- 【dp】10-15题解 snake vs block
snake vs block 题目描述 Tgopknight最近迷上了一款叫做Snake vs Block的游戏,他总觉得他自己玩出的不是最优解,但是他忙于享受游戏的乐趣,只好请你帮忙找出最优解. S ...
- hive学习笔记之五:分桶
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- .Net Core Host 之详解
简介: 开发使用有三年经验了,想趁这个机会把net core的知识点梳理一下,也更好的研究一下.NET 5给我们带来的变化. 主机的概念: 一个主机是封装了应用程序的资源,比如一个对象: 依赖注入 ( ...
- 9.4、安装zabbix(2)
8.从节点安装: (1)安装zabbix-agent: 1)下载zabbix-agent并安装: mkdir -p /tools/ cd /tools/ wget https://mirrors.tu ...
- flex PopUpManager createPopUp方式弹出窗口
createPopUp:是上来先设置好弹出方式,然后在new出来一个TitleWindow的对象,然后通过此对象设置他的变现形式. addPopUp:是先new出来对象,设置好表现形式,然后在选择弹出 ...