- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shell编程-shell编程-分支语句(1)
Shell编程-分支语句(1)
目标:
完成这一章,你将能够作以下事情:
描述条件分支语句中返回值的作用。
使用test命令来分析一个命令的返回值。
在shell程序中使用if和case结构。
?1.返回值
?shell变量“?”中保存上一个被执行命令的返回值:
?0: 命令成功地执行(真)
非零:命令由于出现错误而被终止(假)
?例子:
$ true $ false
$ echo $? $ echo $?
0 1
$ ls $ cp
$ echo $? Usage: cp f1 f2
0 cp [-r] f1 ....fn d1
$ echo $?$echo $?
0 1
$echo $?
0
UNIX操作系统的所有命令在结束的时候都会产生一个返回值。这个返回值通常被用来判断命令是正常结束(返回0)还是发生了错误(返回非零值)。通过返回的非零值还可以看出发生的是什么错误。例如,语法错误通常返回1,true命令返回的就是0,而false命令返回的是1。
大多数的shell程序中的判断语句都是通过分析这个返回值来进行流程控制的。shell中定义了一个特殊的变量“?”用来保存上一个命令结束后的返回值。
你可以通过以下方式来观察前一个命令的返回值:
echo $?
当你执行一个条件判断(小于,大于,等于)的时候,返回值会指明这个条件是否为真(返回0)或者为假(返回非零)。
条件判断语句会在下几节中讲述。
?2.test 命令
语法:
test expression 或者 [expression]
test命令对表达式进行测试,并且设置返回值。
?表达式的值 返回值
true0
false 非零(通常为1)
test命令能够测试的对象有:
整数
字符串
文件
test命令被用来评估表达式并且产生返回值。它用参数组成逻辑表达式并且对表达式的返回值进行评估,test命令不会产生标准输出,你必须必须通过返回值来判断test命令的结果,如果表达式为真,返回值会为0,如果表达式为假,返回值为1。
test命令可以被单独使用,然后你能够看到返回值,但它用的最多的还是在if和while结构中用来提供条件流程控制。
test命令的也可以用[expression]来代替。这种方式可以提高可读性,特别是在处理数字或者字符串的时候。
注意:在[和]符号的周围必须要有空格。
?3.test命令之数字test
语法:
[ number relation number ]通过关系运算符来对数字进行比较
关系运算符:
-lt 小于
-le 小于或者等于
-gt 大于
-ge 大于或者等于
-eq 等于
-ne 不等于
例子(假设X=3):
$ [ $X -lt 7]$ [ $X -gt 7]
$ echo $? $ echo $?
0 1
test命令能被用于比较两个整数之间的数字关系,通常用[.....]语法来调用。test命令的返回值就能说明这个条件为真还是为假。
当test一个变量的值的时候,你应该防止变量不要为空值,例如:
$ [ $XX -eq 3]
sh: test:argument expected
如果变量XX在前面没有被赋值,XX的值会是NULL。当shell执行变量替代的时候,shell会试图执行如下语句:
[ -eg 3]
而这个语句不是一个完整的test语句,并且会导致一个语法错误。解决这个问题的一个简单的方法就是在被测试的变量的周围加上引号。
[ $XX -eq 3]
当shell执行变量替代的时候,shell会试图执行如下语句:
[ -eq 3]
这会确保至少有一个NULL值作为一个参数提供给这个test命令使用。
注意:作为一个通用的规则,你应该在所有的$变量加上双引号来避免shell发生不正确的变量的替代。
4.test命令-字符串test
语法:
[ string1 = string2] 判断字符串是否相等
[ string1 !=string2] 判断字符串是否不等
例子;
$ X=abc $ X=abc
$ [ $X = abc] $ [$X != abc]
$ echo $? $ echo $?
0 1
test命令也能够用来计较两个字符串是否相等。
您可能关注的文档
最近下载
- 03 八年级上册(下)-部编版初中语文文言文对比阅读(解析版).docx VIP
- 寿光模式课件.pptx
- (高清版)DG∕TJ 08-2038-2021 建筑围护结构节能现场检测技术标准.docx VIP
- 苏少版四年级上册音乐 2.2丰收之歌 打麦号子 课件(共21张PPT)(含音频+视频).ppt VIP
- Siemens西门子工业SINUMERIK Integrate Create MyHMI 3GL (安装) SINUMERIK Integrate Create MyHMI 3GL (安装)使用手册.pdf
- 产业园物业管理的重点和难点.docx VIP
- 大学竞选心理委员ppt模板.pptx VIP
- 2025年南京市中考语文试题卷(含答案解析).docx
- 药物疗法 口服给药法(基础护理课件).pptx
- 2025年京东常温奶行业白皮书doc.docx VIP
文档评论(0)