shell编程-shell编程-分支语句(1)

shell编程-shell编程-分支语句(1)

ID:38534607

大小:42.00 KB

页数:4页

时间:2019-06-14

shell编程-shell编程-分支语句(1)_第1页
shell编程-shell编程-分支语句(1)_第2页
shell编程-shell编程-分支语句(1)_第3页
shell编程-shell编程-分支语句(1)_第4页
资源描述:

《shell编程-shell编程-分支语句(1)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、shell编程-shell编程-分支语句(1)Shell编程-分支语句(1)目标:完成这一章,你将能够作以下事情:描述条件分支语句中返回值的作用。使用test命令来分析一个命令的返回值。在shell程序中使用if和case结构。 1.返回值 shell变量“?”中保存上一个被执行命令的返回值: 0:命令成功地执行(真)非零:命令由于出现错误而被终止(假) 例子:$true$false$echo$?$echo$?01$ls$cp$echo$?

2、Usage:cpf1f20cp[-r]f1....fnd1$echo$?$echo$?01$echo$?0UNIX操作系统的所有命令在结束的时候都会产生一个返回值。这个返回值通常被用来判断命令是正常结束(返回0)还是发生了错误(返回非零值)。通过返回的非零值还可以看出发生的是什么错误。例如,语法错误通常返回1,true命令返回的就是0,而false命令返回的是1。大多数的shell程序

3、中的判断语句都是通过分析这个返回值来进行流程控制的。shell中定义了一个特殊的变量“?”用来保存上一个命令结束后的返回值。你可以通过以下方式来观察前一个命令的返回值:echo$?当你执行一个条件判断(小于,大于,等于)的时候,返回值会指明这个条件是否为真(返回0)或者为假(返回非零)。条件判断语句会在下几节中讲述。 2.test命令语法:testexpression或者[expression]test命令对表达式进行测试,并且设置返回值。 表达式的值返回值true0false非零(通常为1)test

4、命令能够测试的对象有:整数字符串文件test命令被用来评估表达式并且产生返回值。它用参数组成逻辑表达式并且对表达式的返回值进行评估,test命令不会产生标准输出,你必须必须通过返回值来判断test命令的结果,如果表达式为真,返回值会为0,如果表达式为假,返回值为1。test命令可以被单独使用,然后你能够看到返回值,但它用的最多的还是在if和while结构中用来提供条件流程控制。test命令的也可以用[expression]来代替。这种方式可以提高可读性,特别是在处理数字或者字符串的时候。注意:在"["和"]"符号的周围必须要有

5、空格。 3.test命令之数字test语法:[numberrelationnumber]通过关系运算符来对数字进行比较关系运算符:-lt小于-le小于或者等于-gt大于-ge大于或者等于-eq等于-ne不等于例子(假设X=3):$["$X"-lt7]$["$X"-gt7]$echo$?$echo$?01test命令能被用于比较两个整数之间的数字关系,通常用[.....]语法来调用。test命令的返回值就能说明这个条件为真还是为假。当test一个变量的值

6、的时候,你应该防止变量不要为空值,例如:$[$XX-eq3]sh:test:argumentexpected如果变量XX在前面没有被赋值,XX的值会是NULL。当shell执行变量替代的时候,shell会试图执行如下语句:[-eg3]而这个语句不是一个完整的test语句,并且会导致一个语法错误。解决这个问题的一个简单的方法就是在被测试的变量的周围加上引号。["$XX"-eq3]当shell执行变量替代的时候,shell会试图执行如下语句:[""-eq3]这会确保至少有一个NULL值作为一个参数提供给这个test命令使用。注意:

7、作为一个通用的规则,你应该在所有的$变量加上双引号来避免shell发生不正确的变量的替代。4.test命令-字符串test语法:[string1=string2]判断字符串是否相等[string1!=string2]判断字符串是否不等例子;$X=abc$X=abc$["$X"="abc"]$["$X"!="abc"]$echo$?$echo$?01test命令也能够用来计较两个字符串是否相等。[...]语法通常用作字符串的比较。你已经看到在[]周围必须要有空格

8、,同时在操作符周围也必须要有空格存在。字符串操作包括:string1=string2如果string1等于string2就为真string1!=string2如果string1不等于string2就为真-zstring如果string的长度为0就

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。