找回密码
 注册
搜索

13. While语句

已有 82 次阅读2014-2-2 20:56 |个人分类:SHELL编程| SHELL, 编程, While语句

下面这个脚本让Shell作一件著名的体力活:计算1+2+3+……+100

#/bin/bashsum=0

number=1

 

while test $number –le 100

do

    sum=$[ $sum + $number ]

    let number=$number+1

done

 

echo “The summary is $sum”

 

while语句的测试条件未必要使用test(或者[])命令。在Linux中,命令都是有返回值的,例如read命令在接受到用户的输入时就返回0,如果用户用快捷键Ctrl+D输入一个文件结束符,那么read命令就返回一个非0值(通常是1)。利用这个特性,可以使用任何命令来控制循环。下面这段脚本从用户接收一个大于0的数值n,并且计算1+2+……+n.

 

#! /bin/bash

 

echo –n “Enter a number(>0):”

while read n

do

sum=0

count=1

 

if [ $n –gt 0 ]

then

     while [ $count –le $n ]

     do

        sum=$[ $sum + $count ]

         let count=$count+1

     done

echo “the summary is $sum”

else

 echo “Please enter a number greater than zero”

fi

 

echo –n “Enter a number(>0):”

done

 

这段脚本不停地读入用户输入的数值,并判断这个数是否大于0。如果是,就计算从1一直加到这个数的和;如果不是就提示一条提示信息,然后继续等待用户的输入,直到用户输入快捷键Ctrl+D(代表文件结束)结束输入。下面显示这个文本的执行效果。

$ ./ a one2n

Enter a number(>0):100

The summary is 5050

Enter a number(>0):55

The summary is 1540

Enter a number(>0):-1

Please enter a number greater than zero

Enter a number(>0): <Ctrl+D>        ##这里按下快捷键Ctrl+D


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-24 06:50 , Processed in 0.029416 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部