![]() |
|
|
|
| ||||||||||
|
在上面代码中,"*"定义了其他模式下不匹配时的默认操作。 循环语句 前面介绍的程序和所学的语句都是从头到尾成一条主线下来,或是成分支结构,在日常管理UNIX的过程中,经常要重复的做一些操作,处理批量的问题,这就涉及到了循环结构,同高级语言相似,UNIX的Shell也提供了强大的循环处理语句。 Bsh语言中有三种循环语句-while循环、until循环、for循环,下面通过具体的例子分别介绍这三种结构。 While循环 在while循环语句中,当某一条件为真时,执行指定的命令。语句的结构如下: while command do command command … … done 示例代码如下: #测试while循环小程序 x_t=1 while [ $x_t -lt 5 ] do mm=` expr $x_t * $int ` #注意""的作用 echo "$mm" x_t=` expr $x_t + 1 ` #注意expr的用法 done echo "THE WHILE IS END!n" 程序的执行结果如下: 1 4 9 16 THE WHILE IS END 在上述程序中,当变量x_t的值小于5的时候,执行while循环中的语句。在第五次循环时, [ $x_t-lt5]命令返回非零值,于是程序执行done后面的代码。 现在利用while循环,可以改进我们早些时候用的备份数据的例子,当用户指定的目录备份完毕后,使用while循环使程序执行一次可以备份多个用户指定的目录。代码如下: echo "欢迎使用备份小程序" ANS=Y while [ $ANS = Y -o $ANS = y ] do echo _ #读目录名 echo "输入要备份的目录名:c" read DIR if [ ! -d $DIR ] then echo "$DIR不是一个目录!" exit 1 fi cd $DIR echo "请选择:" echo _ echo "1 恢复数据到 $DIR" echo "2 备份$DIR的数据" echo echo "请选择:c" read CHOICE case "$CHOICE" in 1) echo "恢复中… …" cpio -i 2) echo "备份中… …" cpio -o >/dev/rmt0;; *) echo "选择无效" esac if [ $? -ne 0 ] then echo "cpio执行过程中出现问题" exit 2 fi echo "继续别的目录吗?(Y/y)c" read ANS done 在程序开始,我们给变量ANS符值为Y,根据whlie的判断条件,程序进入while循环,执行do-done中的语句,每次循环都要求用户输入ANS的值用来判断是否进行下次重复执行do-done中的语句。如果用户输入的条件不满足while语句条件,循环结束,程序执行done后 Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 【评论】【加入收藏夹】【大 中 小】【打印】【关闭】 |
| ※ 相关链接 | |
|
© CopyRight
2006-2009 xxlinux.com.Inc All Rights Reserved |
||
Powered
by xxlinux.com |
||