Shell中的while循环

while循环的格式
  1. while expression
  2. do
  3. command
  4. command
  5. ```
  6. done
1、计数器控制的while循环
主要用于已经准确知道要输入的数据和字符串的数目。
举例
  1. 1 #!/bin/sh
  2. 2 int=1
  3. 3 while(( $int<=5 ))
  4. 4 do
  5. 5 echo $int
  6. 6 let "int++"
  7. 7 done
2、结束标记控制的while循环
主要用于不知道读入数据的个数,但是可以设置一个特殊的数据值来结束循环,该特殊值称为结束标    记,通过提示用户输入进行操作。
举例
  1. 1 #用脚本演示使用结束标记控制while循环实现猜1~10内的数
  2. 2 #!/bin/sh
  3. 3
  4. 4 echo "Please input the num (1~~10): "
  5. 5 read num
  6. 6 while [[ $num != 4 ]]
  7. 7 do
  8. 8 if [ $num -lt 4 ]
  9. 9 then
  10. 10 echo "Too small ,Try again.."
  11. 11 read num
  12. 12 elif [ $num -gt 4 ]
  13. 13 then
  14. 14 echo "Too big ,Try again.. "
  15. 15 read num
  16. 16 else
  17. 17 exit 0
  18. 18 fi
  19. 19 done
  20. 20 echo "Yes ,you are right !!"
3、标致控制的while循环
用户输入标志值来控制循环结束
举例
  1. 1 #!/bin/sh
  2. 2 echo "Please input the num:"
  3. 3 read num
  4. 4 sum=0
  5. 5 i=1
  6. 6 signal=0
  7. 7 while [[ $signal != 1 ]]
  8. 8 do
  9. 9 if [ $i -eq $num ]
  10. 10 then
  11. 11 let "signal=1"
  12. 12 let "sum+=i"
  13. 13 echo "1+2、、、+$num=$sum"
  14. 14 else
  15. 15 let "sum=sum+i"
  16. 16 let "i++"
  17. 17 fi
  18. 18 done
4、命令行控制的while循环
举例
  1. 1 #!/bin/sh
  2. 2
  3. 3 echo "Please input arguements is $# "
  4. 4 echo "What you input : "
  5. 5 while [[ $* != "" ]]
  6. 6 do
  7. 7 echo $1
  8. 8 shift
  9. 9 done

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

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

相关文章

一文玩转 EhCache 缓存框架!

Ehcache 介绍EhCache 从 Hibernate 发展而来&#xff0c;是一个纯Java的进程内缓存框架&#xff0c;具有快速、精干等特点。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存&#xff0c;Java EE和轻量级容器。它具有内存和磁盘存储&#xff0c;缓存加载器&#x…

avr uart打印_AVR | 在16x2 LCD上打印HELLO WORLD

avr uart打印We would learn the connection to the LCD first as the connections is a bit complex and here we are using an 8-bit LCD. 我们将首先学习到LCD的连接&#xff0c;因为连接有点复杂&#xff0c;这里我们使用的是8位LCD 。 Simulation 模拟 Explanation 说明…

SQLite CodeFirst、Migration 的趟坑过程 [附源码]

负二、配置说明 最近想做个东西&#xff0c;用到了SQLite&#xff0c;按照之前的方法步骤搭建的结果失败了&#xff0c;因为SQLite的版本升级了&#xff0c;导致Migration自动迁移各种报错&#xff0c;而且我查了一下自动迁移的包貌是不再更新了。——2018年1月24日 能正常使用…

linux中lvm的缩减

问题提出&#xff1a;服务器硬盘做成了lvm&#xff0c;但是/home目录空间较大&#xff0c;于是想缩减一下&#xff0c;分配给其他目录。实验环境&#xff1a;操作系统&#xff1a;redhat企业版&#xff0c;硬盘已经做成了lvm。问题解决&#xff1a;操作前的注意事项&#xff1a…

SpringBoot 过滤器、拦截器、监听器对比及使用场景!

来源 | blog.csdn.net/qq_38020915/article/details/116431612作者 | dingwen_blog一、关系图理解二、区别1.过滤器过滤器是在web应用启动的时候初始化一次, 在web应用停止的时候销毁可以对请求的URL进行过滤, 对敏感词过滤挡在拦截器的外层实现的是 javax.servlet.Filter 接口…

Java StringBuilder length()方法与示例

StringBuilder类的length()方法 (StringBuilder Class length() method) length() method is available in java.lang package. length()方法在java.lang包中可用。 length() method is used to return the length of this sequence (i.e. it counts the number of characters …

进程通信:匿名管道和命名管道

一、进程间通信方式 管道( pipe )&#xff1a;管道是一种半双工的通信方式&#xff0c;数据只能单向流动&#xff0c;而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道 (named pipe) &#xff1a; 有名管道也是半双工的通信方式&#xff0c…

Jenkins Build Radiators(构建发射源)

为什么80%的码农都做不了架构师&#xff1f;>>> information radiators&#xff08;信息发射源&#xff09;的概念通常被用在敏捷的圈子里。 据敏捷专家Alistair Cockburn所说&#xff1a; 一个信息发射源是一个贴在一个地方的显示器&#xff0c;当人们工作或路过时…

线程池是如何重复利用空闲的线程来执行任务的?

来源&#xff1a;blog.csdn.net/anhenzhufeng/article/details/88870374在Java开发中&#xff0c;经常需要创建线程去执行一些任务&#xff0c;实现起来也非常方便&#xff0c;但如果并发的线程数量很多&#xff0c;并且每个线程都是执行一个时间很短的任务就结束了&#xff0c…

strictmath_Java StrictMath nextAfter()方法与示例

strictmathStrictMath类的nextAfter()方法 (StrictMath Class nextAfter() method) Syntax: 句法&#xff1a; public static double nextAfter(double starts , double directions);public static float nextAfter(float starts , double directions);nextAfter() method is …

C# 将程序添加开机启动的三种方式

前言 最近在研究程序随系统启动&#xff0c;发现在 win7 上因为权限的问题&#xff0c;写注册表的时候总是会出现问题&#xff0c;写不进去导致的不能自动启动&#xff0c;随后决定仔细的看一看这方面的问题。 查资料过程中主要发现有三种方式可以添加到启动&#xff0c;分别…

SpringBoot 中的 3 种条件装配!

一、介绍在实际的项目开发中&#xff0c;我们往往需要根据不同的环境做出不同的配置&#xff0c;例如&#xff1a;在开发环境下&#xff0c;我们会使用内存数据库以便快速启动服务并进行开发调试&#xff0c;在test环境、生产环境&#xff0c;会使用对应环境的数据库。如果我们…

java中intvalue_Java Short类intValue()方法及示例

java中intvalue短类intValue()方法 (Short class intValue() method) intValue() method is available in java.lang package. intValue()方法在java.lang包中可用。 intValue() method is used to return the value denoted by this Short object converted to type int (by c…

C# Winform 窗体美化(目录)

最近在看 C# Winform 的窗体美化&#xff0c;发现一些很有用的美化皮肤库&#xff0c;学习过后也把一些资料整理一下。 一、IrisSkin 换肤库&#xff08;IrisSkin4&#xff09; 二、LayeredSkin 界面库&#xff08;LayeredSkinDemo&#xff09; 三、不规则窗体&#xff08;G…

图说 mysql 事务隔离级别

转载于:https://blog.51cto.com/kingbox/1657916

@Autowired报错的4种解决方案和原因分析!

作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;上图的报错信息相信大部分程序员都遇到过&#xff0c;奇怪的是虽然代码报错&#xff0c;但丝毫不影响程序的正常执行&#x…

C# Winform 窗体美化(一、IrisSkin 换肤库)

IrisSkin 换肤库 IrisSkin 是为Microsoft Visual Studio dotNET开发的最易用的界面增强dotNET(WinForm)组件包。能完全自动的为应用程序添加支持换肤功能。[百度百科] 1、文件 IrisSkin4.dll - 544 KB各种 .ssk 格式的皮肤文件&#xff08;一般在网上搜的是13个皮肤的压缩包…

java double方法_Java Double类compare()方法与示例

java double方法双类compare()方法 (Double class compare() method) compare() method is available in java.lang package. compare()方法在java.lang包中可用。 compare() method is used to check equality or inequality of the given two double values or in other word…

MySQL开发规范

命名规范> 库名、表名、字段名必须使用小写字母并采用下划线分割> 库名、表名、字段名禁止超过32个字符&#xff0c;须见名知意 * 库名、表名、字段名支持最多64个字符&#xff0c;统一规范、易于辨识以及减少传输量不要超过32> 库名、表名、字段名禁止使用MySQL…

厉害了,Spring中bean的12种定义方法!

前言在庞大的java体系中&#xff0c;spring有着举足轻重的地位&#xff0c;它给每位开发者带来了极大的便利和惊喜。我们都知道spring是创建和管理bean的工厂&#xff0c;它提供了多种定义bean的方式&#xff0c;能够满足我们日常工作中的多种业务场景。那么问题来了&#xff0…