- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UNIXShell语言及其程序设计-Read
第五章 Shell的控制结构 条件和 test 命令 if 结构 case 结构 for 结构 while 结构 until 结构 循环体中的其它命令 5.1 条件与 test 命令 ? 简单条件 在高级语言中判断条件依赖于运算的结果,而 Shell语言依赖条件是命令执行的“出口状态”。 Shell命令的“出口状态”($?): 成功:0 、 true 失败:x 、 false (x 为非0数值) 例:判断指定目录是否存在, 并显示相应信息。 # cat checkdir test -d $1 echo “$1 is a dictory” exit 0 echo “$1 is not a dictroy” exit 1 5.1 条件与 test 命令(续1) ? test 命令 test 命令可用于对字符串、整数及文件进行各 类测试。其命令格式如下: test expression 或 [ expression ] 注意 [ ] 中的空格) expression 是测试的条件,计算结果: 为真,则返回“零”出口状态, 为假,否则返回“非零” 出口状态。 例:判断当前上机用户人数是否多于10 ? # test `who | wc -l ` -gt 10 # echo $? 5.1 条件与 test 命令(续2) ? test 字符串测试表达式 5.1 条件与 test 命令(续3) 例1:两个字符串进行比较 # user=smith # test $user = smith # echo $? 0 例2:查找指定的文件或目录 # cat search test $1 || { echo err: no parameter ; \ exit 1; } find . -name $1 -print 5.1 条件与 test 命令(续4) 例2:带有空格的字符串比较 # month=January # test $month = January # echo $? 1 # test $month = January # echo $? 0 区别:Shell在处理变量时,遇到有双引号将保留其内容,而省略双引号时,将滤去空格。 5.1 条件与 test 命令(续7) 例3:带有空格的字符串比较 # a=testing string # test $a = testing string # echo $? 0 # test $a = testing string test: unknown operator string Shell处理变量 $a 时,将其进行变量替换,然 后将结果(testing string)传递给test,而test将string 作为操作符来处理,因此出错。 5.1 条件与 test 命令(续8) 例4:带有空串(或未设置的字符串比较) # name= # test $name = smith # echo $? 1 # test $name = smith test: argument expected Shell处理变量$name时,双引号将其括起 的内容作为一个“位置持有者”来保留,并把该 值传递给test,保证处理的正常执行。 5.1 条件与 test 命令(续9) 例4:带有空串的字符串比较 # blanks= # test $blanks # echo $? 1 # test $blanks # echo $? 0 Shell处理变量$blanks时,将空格滤去,使其 变为空串传递给test;而双引号保留 “位置持有 者”的位置,其值为一个空格(空白符),传递 给test。 5.1 条件与 test 命令(续10) 例4:带有算符的字符串比较 # symvar== # test -z $symvar test: argument expected 出错的原因是“=”运算符比“-z”运算符的优先级 要高,因此,test 命令期望在等号之后要有一个自变量。 为避免上述问题的发生,可用下面命令形式替换
您可能关注的文档
- P运输学大意题精析.DOC
- PNBR用途改性酚醛树脂制备摩擦材料如刹车片离合器等.PPT
- pò-在线新华字典-汉文学网.PDF
- QJB系列的潜水搅拌器潜水推进器描述用途A潜水搅拌器潜水.DOC
- p型氮化镓紫外光发光二极体Meshedp-GaNLED.PPT
- QQ米-高雄私立凤山麦米伦幼儿园.DOC
- QoS语音波动问题故障排除-Cisco.PDF
- QX56前后差速器异常磨损.PDF
- QC步骤展开对策.PPT
- QAM的编码规则和星座图-ITU.DOC
- 2023学年诸暨中学高三年级第二学期3月第二次模拟考试(政治)公开课教案教学设计课件资料.docx
- 运动的合成与分解(二)公开课教案教学设计课件资料.pptx
- 近五年浙江省各地图形的翻折(轴对称)原题公开课教案教学设计课件资料.doc
- 如何做教师-2019-11-13-中关村一小相关公开课教案教学设计课件资料.pptx
- 生活中的圆周运动 (水平面)正式版公开课教案教学设计课件资料.pptx
- 专题10 条件概率与全概率公式公开课教案教学设计课件资料.docx
- 金华市东阳市2019学年第二学期期末测试卷公开课教案教学设计课件资料.doc
- 5 琥珀(第二课时)【慕课堂版】公开课教案教学设计课件资料.pptx
- 项目五 打印米老鼠模型公开课教案教学设计课件资料.ppt
- (打印版)9月25日地理周练公开课教案教学设计课件资料.docx
文档评论(0)