||
下面这个脚本让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
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.