Linux第七章选编.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux第七章选编

第七章;7.1 shell编程的意义;7.2 什么时候不适合使用shell?;7.3 shell 的创建;;7.4 shell变量;;#!/bin/sh myvar=”hello” echo $myvar echo “$myvar” echo ‘$myvar’ echo \$myvar exit 0 输出: hello hello $var $var;运行脚本程序主要有三种办法: 1、bash(或sh) 程序名 2、./程序名 3、点(.)程序名 ;;;;;;;;;;7.5 shell的控制结构 7.5.1 条件与test命令 在程序设计语言中,作出决策的结构称为条件。在高级语言中决策的作出是依赖于基本运算的结果;在shell语言中,作出决策所依赖的条件是所执行命令的“出口状态”。 当shell命令或程序执行成功时,它返回一个“零”出口状态(即$?为零);如果执行的命令或程序出错时,则返回一个“非零”的出口状态(即$?不为零)。 除了一般命令的出口状态外,UNIX还提供了两个命令true和false的出口状态。true的出口状态为零;而false的出口状态为非零。shell将true和false命令作为恒真和恒假条件使用。;例: 判断所给出的参数是否为一个目录。 $cat check.dir test -d $1 echo ″ $1 is a dictory ″ exit 0 echo ″ $1 is not a dictroy ″ exit 1 在上例中,使用了exit命令。它是一个shell的内部命令,用于终止shell程序的执行。该命令可带一个定义出口状态值的自变量。 例: exit(0): 终止程序的执行,并返回零值; exit(1)或exit(x): 终止程序的执行,并返回非零值; 将命令返回零出口状态称为返回“真值”; 将命令返回非零出口状态称为返回“假值”。;1. test命令 test命令是shell程序设计的条件判断中最常用的测试命令,它有两种等价的格式: test expression或[expression](注意:[ ]中的空格) 其中expression就是要测试的条件。如果test计算expression的结果为真,则返回“零”出口状态,否则返回“非零”出口状态。test命令可用于对字符串、整数及文件进行各类测试。;字符串比较运算符;2. test字符串测试表达式 例1: 两个字符串进行比较 $ user=smith $ test ″$user″= smith $ echo $? 0 $ test ″$user″ = tom $ echo $? 1;例2: 带有空格的字符串比较 $ month=″January ″ $ test ″$month″ = January $ echo $? 1 $ test $month = January $ echo $? 0 注意: shell在处理变量时,遇到有双引号将保留其内容,而省略双引号时,将滤去空格。;例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作为操作符来处理,因此出错。;例4: 带有空串(或未设置的字符串比较) $ name= $ test ″$name″ = smith $ echo $? 1 $ test $name = smith 出错! shell处理变量$name时,双引号将其括起的内容作为一个“位置持有者”来保留,并把该值传递给test,保证处理的正常执行。;例5: 带有空串的字符串比较 $ blanks=″″ $ test $blanks $ echo $? 1 $ test ″$blanks″ $ echo $? 0 shell处理变量$blanks时,将空格滤去,使其变为空串传递给test;而双引号保留 “位置持有者”的位置,其值为一个空格(空白符),传递给test。;3. 使用test测试字符串时要注意的问题 (1) 向test 传递的各自变量之间必须有空白字符,如果“=”与任一自变量之间没有空白字符就会产生错误。 (2) 在使用变量的值替换的自变量上,用双引号括起来十分必要,以保证test在变量的值为空时也能接收到该自变量,这是一种良好的shell程序设计风

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档