欢迎来到天天文库
浏览记录
ID:38534861
大小:43.00 KB
页数:4页
时间:2019-06-14
《shell编程-shell编程-循环语句(1)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、shell编程-shell编程-循环语句(1) shell编程之循环语句(1)目标:完成这一章,你将能够作以下事情:使用while语句在条件为真的时候重复地执行一段代码。使用until语句重复执行一段代码直到条件为真。使用交互性的for语句进行循环控制。1.循环的简单介绍目标:重复的执行一段命令列表。控制;基于一个关键命令的返回值。三种格式:while...do...doneuntil...do...donefor...do...done循环语句让你可以重复执行一个命令列表,而决定是继续循
2、环还是跳出循环是基于一个命令的返回值。test命令常常被用来控制一个循环是否继续。与分支语句不同的是,在分支语句中开始一个分支语句的关键字和结束一个分支语句的关键字是相反的(if/fi和case/esac),循环语句由一个关键字和一些条件开始,循环体整个用do/done来包围起来。2.使用let来进行算术计算语法:letexpressionor((expression))例子:$x=10$x=12$y=2$let"x<10"$letx=x+2$echo$?$echo$x
3、112$((x>10))$let"x=x/(y+1)"$echo$?$echo$x$04$if((x>10))$((x=x+1))>thenechoxgreater$echo$x>elseechoxnotgreater5fixgreater循环语句通常使用一个增长的数字变量来进行控制。使用let命令,可以在shell脚本中使用算术表达式。这个命令允许使用长的整数运算。在上例中,expr
4、ession代表一个shell变量的算术表达式和能够被shell识别的操作符,而(())可以替let命令。shell能够识别的表达式如下所示:操作符描述-减去!逻辑相反*/%乘,除,余数+-加,减<=>=<>关系比较==!=等于不等于=赋值括号能够被用作改变表达式中计算的顺序,就像在let"x=x/(y+1)"中一样注意双引号被用来忽略括号的特殊含义。同样如果你希望使用空格来分隔操作符和操作符的时候,就必须使用双引号,或者(())语句:let"
5、x=x+(y/2)"或者((x=x+(y/2)))当使用逻辑和关系操作符,(!,<=,>=,<,>,++,~=),的时候,shell会返回一个代码变量,?会反映结果是真还是假,再一次说明,必须使用双引号来防止shell将大于和小于运算符当作I/O重定向。3.while语句重复执行循环体,直到条件为真语法:whilelistAdolistBdone例子:$cattest_whileX=1while((X<=10))doechohelloXis$XletX=X+1done$test_whilehe
6、lloXis1helloXis2...helloXis10while语句是shell提供的一种循环机制,当条件为真的时候它允许循环体中的命令(listB)继续执行。条件判断是通过listA中最后一个命令的返回值来进行。通常一个test或者let命令被用作控制循环的执行,但是任何命令都能被用来产生一个返回值。上面的例子中使用的是test命令可以用let命令来代替,如下:$X=1$while[$x-le10]>do>echohelloXis$X>letX=X+1>done命令执行的过程如下:1.listA中的命令被执行。2.如果li
7、stA中的最后一个命令的返回值为0(真),执行listB。3.回到第一步。4.如果listA中的最后一个命令的返回值不为0(假),跳到下面done关键字后的第一个命令。提醒:注意while循环会无穷执行下去,因为有一些循环的控制命令的返回值永远为真。$catwhile_infinitewhiletruedoechohellodone$while_infinitehellohello...ctrl+c4.while结构举例例A:例B如果ans为yes就重复执行当有命令行参数时重复
8、执行ans=yeswhile(($#!=0))whiledo["$ans"=yes]iftest-d$1do
此文档下载收益归作者所有