本文是Linux Shell系列教程的第(十一)篇,更多Linux Shell教程请看:Linux Shell系列教程

在上一篇Linux Shell系列教程之(十)Shell for循环中,我们已经对Shell 循环语句的for循环进行了介绍,本篇给大家介绍下Shell 中另一种循环语句:Shell while循环。

Shell while循环语法及特点

Shell while循环的语法如下所示:

while command
do
Statement(s) to be executed if command is true
done

command 为条件测试,如果传回值为0(条件测试为真),则进入循环,执行命令区域,否则不进入循环。

在执行命令的区域中,应该要有改变条件测试的命令,这样,才有机会在有限步骤后结束执行while循环(除非想要执行无穷循环)。

while循环通常用来不断执行一系列命令,也可以用来从输入文件中读取数据;

命令通常为测试条件。

Shell while循环使用举例

了解了Shell while循环的语法及特点以后,接下来通过几个例子来详细了解下Shell while循环的使用。

例子1:

COUNTER=0
while [ $COUNTER -lt 5 ]
do
COUNTER='expr $COUNTER+1'
echo $COUNTER
done

说明:如果COUNTER小于5,那么返回 true。COUNTER从0开始,每次循环处理时,COUNTER加1,直到COUNT为5后终止。

输出:

1

2

3

4

5

例子2:

#!/bin/bash
while read text
do
echo ${text}
done < /home/infile

说明:这个例子使用read在标准输入读取数据,放入变量text中,如果读到的数据非空,就进入循环。然后在循环中把该行数据显示出来。

最后一样是输入重定向,将/home/infile的内容作为此脚本的标准输入。

此脚本的输出结果就是infile文件的内容。

输出:

Hello world!

I am linuxdaxue.com!

例子3:

#!/bin/bash
declare -i i=1
declare -i sum=0
while ((i<=10))
do
let sum+=i
let ++i
done
echo $sum

说明:在这个例子中,首先声明了两个int类型的变量i和sum,然后进入下面的循环,满足条件后跳出循环。

结果:这个例子就作为留给大家的一个思考题目,大家可以自己试验下,或者关注我的微信公众号(微信号:Linuxdaxue)后,发送【shell while循环】,来查看答案。

好了,有关Shell while循环的内容今天就先给大家介绍这些。更多Linux Shell教程请看:Linux Shell系列教程


本文由Linux技术达人【daxue】发表在:Linux大学
本文固定链接:Linux Shell系列教程之(十一)Shell while循环

Linux Shell系列教程之(十一)Shell while循环的更多相关文章

  1. Linux Shell系列教程之(五)Shell字符串

    本文是Linux Shell系列教程的第(五)篇,更多shell教程请看:Linux Shell系列教程 字符串是Shell编程中最常用最有用的数据类型,今天,Linux大学网就为大家介绍一下在She ...

  2. Linux Shell系列教程之(十二)Shell until循环

    本文是Linux Shell系列教程的第(十二)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上两篇文章Linux Shell系列教程之(十)Shell for循环和Lin ...

  3. (转)Linux Shell系列教程之(十四) Shell Select教程

    本文属于<Linux Shell 系列教程>文章系列,该系列共包括以下 18 部分: Linux Shell系列教程之(一)Shell简介 Linux Shell系列教程之(二)第一个Sh ...

  4. Linux Shell系列教程

    学习Linux Shell知识,就来Linux大学网(Linuxdaxue.com)! 本系列适合Linux初学者,属于Linux入门级教程,主要介绍了Shell的分类.语法格式以及脚本的使用和编写格 ...

  5. Linux Shell系列教程之(十七) Shell文件包含

    本文是Linux Shell系列教程的第(十七)篇,更多Linux Shell教程请看:Linux Shell系列教程 通过文件包含,可以引用其他文件的内容,也可以将复杂内容分开,使程序结构更加清晰. ...

  6. Linux Shell系列教程之(十六) Shell输入输出重定向

    本文是Linux Shell系列教程的第(十六)篇,更多Linux Shell教程请看:Linux Shell系列教程 Shell中的输出和输入的重定向是在使用中经常用到的一个功能,非常实用,今天就为 ...

  7. Linux Shell系列教程之(十五) Shell函数简介

    本文是Linux Shell系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell系列教程 函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰,代码重复利用率更高 ...

  8. Linux Shell系列教程之(十四) Shell Select教程

    本文是Linux Shell系列教程的第(十四)篇,更多Linux Shell教程请看:Linux Shell系列教程 在上一篇文章:Linux Shell系列教程之(十三)Shell分支语句case ...

  9. Linux Shell系列教程之(十三)Shell分支语句case … esac教程

    本文是Linux Shell系列教程的第(十三)篇,更多Linux Shell教程请看:Linux Shell系列教程 分支语句非常实用,基本上高级语言都支持分支语句(python 没有),大多数都使 ...

随机推荐

  1. HDU 1847 Good Luck in CET-4 Everybody! 四级好运!(博弈)

    思路:先用P/N状态来找规律. N状态:1 2 4 6 8 16 P状态:3 5 因为3=1+2, 无论拿1或者2皆输.看看5,只要抽掉2就变成了3,所以是N状态.看看6,可以抽掉1 2 4,若抽1, ...

  2. 为Oracle Clusterware修改公用及私有网络接口

    出于种种原因我们可能需要为已安装的Oracle集群软件修改其使用的公用或私有网络所使用的网络接口(How to Change Interconnect/Public Interface IP or S ...

  3. 2018.4.15 Mac系统下如何使用StartUml画好需求分析的类图 (同样适用于windows)

    Mac如何使用StartUml (同样适用于windows) 左侧边栏的英文含义及其用法 关联(Association) [关联关系]:是一种拥有的关系,它使一个类知道另一个类的属性和方法:如:老师与 ...

  4. Understanding NFS Caching

    Understanding NFS Caching Filesystem caching is a great tool for improving performance, but it is im ...

  5. java基础—流

    一.JAVA流式输入/输出原理

  6. 有关SQL的一道面试题

    这是一个学生分数表 StudentName            StudySubject           SubjectScore Peter                           ...

  7. linux文件属性之linux文件删除原理

    Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除.一般来说,每个文件都有2个link计数器:i_count和i_nlink. i_count的 ...

  8. paper:synthesizable finit state machine design techniques using the new systemverilog 3.0 enhancements之onehot coding styles(index-parameter style with registered outputs)

    case语句中,对于state/next 矢量仅仅做了1-bit比较. parameter 值不是表示FSM的状态编码,而是表示state/next变量的索引.

  9. 【php】对象的比较

    对象的比较 相等的比较 ==当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等. 全等的比较 ===如果 ...

  10. 面向对象之元类(metaclass)

    一.前言: 要搞懂元类必须要搞清楚下面几件事: 类创建的时候,内部过程是什么样的,也就是我们定义类class 类名()的过程底层都干了些啥 类的调用即类的实例化过程的了解与分析 我们已经知道元类存在的 ...