Unix系列shell程序编写下册.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Unix系列shell程序编写下册

Unix系列shell程序编写(下) 作者:gql88 发表时间:2002/10/03 03:56pm Until语句   While语句中,只要某条件为真,则重复执行循环代码,until语句正好同while相反,该语句使循环代码重复执行,直到遇到某一条件为真才停止。 Until语句的结构如下: until command   do     command     command     … …   done   可以用until语句替换上面备份程序的while语句,完成同样的功能: until [ $ANS != Y -a $ANS != y ] for 循环   在介绍for循环之前,我们要学个非常有用的unix命令:shift。我们知道,对于位置变量或命令行参数,其个数必须是确定的,或者当Shell程序不知道其个数时,可以把所有参数一起赋值给变量$*。若用户要求Shell在不知道位置变量个数的情况下,还能逐个的把参数一一处理,也就是在$1后为$2,在$2后面为$3等。在 shift命令执行前变量$1的值在shift命令执行后就不可用了。 示例如下: #测试shift命令(x_shift.sh) until [ $# -eq 0 ] do echo 第一个参数为: $1 参数个数为: $# shift done 执行以上程序x_shift.sh: $./x_shift.sh 1 2 3 4 结果显示如下: 第一个参数为: 1 参数个数为: 3 第一个参数为: 2 参数个数为: 2 第一个参数为: 3 参数个数为: 1 第一个参数为: 4 参数个数为: 0 从上可知shift命令每执行一次,变量的个数($#)减一,而变量值提前一位,下面代码用until和shift命令计算所有命令行参数的和。 #shift上档命令的应用(x_shift2.sh) if [ $# -eq 0 ] then echo Usage:x_shift2.sh 参数 exit 1 fi sum=0 until [ $# -eq 0 ] do sum=`expr $sum + $1` shift done echo sum is: $sum 执行上述程序: $x_shift2.sh 10 20 15 其显示结果为: 45   shift命令还有另外一个重要用途,Bsh定义了9个位置变量,从$1到$9,这并不意味着用户在命令行只能使用9个参数,借助shift命令可以访问多于9个的参数。   Shift命令一次移动参数的个数由其所带的参数指定。例如当shell程序处理完前九个命令行参数后,可以使用shift 9命令把$10移到$1。   在熟悉了shift命令后,我们一起看看,Bsh程序中非常有用的for循环语句,这种循环同上面说的while和until循环不同,for语句中的循环是否执行并不由某个条件的真和假来决定,决定for循环是否继续的条件是参数表中是否还有未处理的参数。 For语句的结构如下: for variable in arg1 arg2 … argn do command command … … done 下面是for循环的简单例子: for LETTER in a b c d do echo $LETTER done 程序执行结果如下: a b c d 在上面计算参数和的例子中,我们可以用for循环,实现如下: #测试 for 程序(x_for.sh) if [ $# -eq 0 ] then    echo Usage:x_for.sh 参数… …    exit 1 fi sum=0 for I in $* do    sum=`expr $sum + $I` done echo sum is: $sum 中断循环指令   在程序循环语句中,我们有时候希望遇到某中情况时候结束本次循环执行下次循环或结束这个循环,这就涉及到两条语句:continue和break。continue命令可使程序忽略其后循环体中的其他指令,直接进行下次循环,而break命令则立刻结束循环,执行循环体后面的的语句。 #测试continue I=1 while [ $I -lt 10 ] do   if [ $I -eq 3 ]   then     continue   fi   if [ $I -eq 7 ]  

文档评论(0)

sd44055 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档