创新互联linux教程:4.3.3while条件循环语句

while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于for循环语句中有目标、有范围的使用场景。while循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环。while语句的语法格式如图4-21所示。

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了山南免费建站欢迎大家使用!

图4-21 while循环语句的语法格式

接下来结合使用多分支的if条件测试语句与while条件循环语句,编写一个用来猜测数值大小的脚本Guess.sh。该脚本使用$RANDOM变量来调取出一个随机的数值(范围为0~32767),将这个随机数对1000进行取余操作,并使用expr命令取得其结果,再用这个数值与用户通过read命令输入的数值进行比较判断。这个判断语句分为三种情况,分别是判断用户输入的数值是等于、大于还是小于使用expr命令取得的数值。当前,现在这些内容不是重点,我们当前要关注的是while条件循环语句中的条件测试始终为true,因此判断语句会无限执行下去,直到用户输入的数值等于expr命令取得的数值后,这两者相等之后才运行exit 0命令,终止脚本的执行。

    [root@linuxprobe ~]# vim Guess.sh
    #!/bin/bash
    PRICE=$(expr $RANDOM % 1000)
    TIMES=0
    echo "商品实际价格为0-999之间,猜猜看是多少?"
    while true
    do
    read -p "请输入您猜测的价格数目:" INT
    let TIMES++
    if [ $INT -eq $PRICE ] ; then
    echo "恭喜您答对了,实际价格是 $PRICE"
    echo "您总共猜测了 $TIMES 次"
    exit 0
    elif [ $INT -gt $PRICE ] ; then
    echo "太高了!"
    else
    echo "太低了!"
    fi
    done

在这个Guess.sh脚本中,我们添加了一些交互式的信息,从而使得用户与系统的互动性得以增强。而且每当循环到let TIMES++命令时都会让TIMES变量内的数值加1,用来统计循环总计执行了多少次。这可以让用户得知总共猜测了多少次之后,才猜对价格。

    [root@linuxprobe ~]# bash Guess.sh
    商品实际价格为0-999之间,猜猜看是多少?
    请输入您猜测的价格数目:500
    太低了!
    请输入您猜测的价格数目:800
    太高了!
    请输入您猜测的价格数目:650
    太低了!
    请输入您猜测的价格数目:720
    太高了!
    请输入您猜测的价格数目:690
    太低了!
    请输入您猜测的价格数目:700
    太高了!
    请输入您猜测的价格数目:695
    太高了!
    请输入您猜测的价格数目:692
    太高了!
    请输入您猜测的价格数目:691
    恭喜您答对了,实际价格是 691
    您总共猜测了 9 次

当前标题:创新互联linux教程:4.3.3while条件循环语句
分享URL:http://www.36103.cn/qtweb/news49/449.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联