- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shell 脚本(if test语句)
————————————————————————————————test 命令语法:test expression 或者 [expression]test命令对表达式进行评估,并且设置返回值。表达式的值 返回值true 0false 非零(通常为1)test命令能够评估的对象有:整数 字符串 文件 test命令被用来评估表达式并且产生返回值。它用参数组成逻辑表达式并且对表达式进行评估。test命令不会产生标准输出,你必须必须通过返回值来判断test命令的结果。如果表达式为真,返回值会为0,如果表达式为假,返回值为1。test命令可以被单独使用,然后你能够看到返回值,但它用的最多的还是在if和while结构中,用来提供条件流程控制。test命令的也可以用[expression]来代替。这对提高可读性有帮助,特别是在处理数字或者字符串的时候。注意:在[和]符号的周围必须要有空格。test命令之数字test语法:[ number relation number ] 通过关系运算符来对数字进行比较关系运算符:-lt ? ?小于-le 小于或者等于-gt ??大于-ge 大于或者等于-eq 等于-ne 不等于例子(假设X=3):$ [ $X -lt 7] $ [ $X -gt 7]$ echo $? $ echo $?0 1test命令能被用于比较两个整数之间的数字关系。通常用[.....]语法来调用。test命令的返回值就能说明这个条件为真还是为假。当testing一个变量的值的时候,你应该防止变量不要为空值,例如:$ [ $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进行不正确的变量的替代。test命令之字符串test语法:[ string1 = string2] 判断字符串是否相等[ string1 !=string2] 判断字符串是否不等例子;$ X=abc $ X=abc$ [ $X = abc] ? ?? ???$ [$X != abc]$ echo $? $ echo $?0 1test命令也能够用来计较两个字符串是否相等。[...] 语法通常用作字符串的比较。你已经看到在[]周围必须要有空格,同时在操作符周围也必须要有空格存在。字符串操作包括:string1 = string2 ??如果string1等于string2就为真string1 != string2 ? ???如果string1不等于string2就为真-z string 如果string的长度为0就为真-n string 如果string的长度为非零就为真string 如果string的长度为非零就为真如果变量中包含空白字符,在这里引号同样也能够保护字符串的test,,例如:$ X=yes we will$ [ $X=yes] 会导致一个语法错误shell会解释这个语法为[yes we will = yes ]$ [ $x = yes ] 正确的语法shell会解释这个语法为:[ yes we will = yes ]在执行数字比较的时候,shell会将所有的参数当成是数字;
在执行字符串比较的时候,shell会把所有的参数当成是字符串。如下例所示:$ X=03$ Y=3$ [ $X -eq $Y ] 比较数字03和数字3$ echo $?0 为真-它们是相等的数字$ [ $X = $Y ] 比较字符串“03”和字符串“3”$ echo $?1 为假-它们是不相同的字符串test命令-文件比较语法:test -option filename 通过选项对文件进行test例子:$ te
文档评论(0)