利用 test 命令提高您的脚本编制水平_第1页
利用 test 命令提高您的脚本编制水平_第2页
利用 test 命令提高您的脚本编制水平_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页利用test命令提高您的脚本编制水平利用test命令提高您的脚本编制水平

发表于:2023-06-01来源::点击数:标签:脚本TEST命令Test编制

每一种条件语句的基础都是判断什么是真什么是假。是否了解其工作原理将决定您编写的是质量一般的脚本还是您将引以为荣的脚本。Shell脚本的能力时常被低估,但实际上其能力的发挥受制于脚本撰写者的能力。您了解得越多,您就越能像变戏法似地撰写一个文件

每一种条件语句的基础都是判断什么是真什么是假。是否了解其工作原理将决定您编写的是质量一般的脚本还是您将引以为荣的脚本。Shell脚本的能力时常被低估,但实际上其能力的发挥受制于脚本撰写者的能力。您了解得越多,您就越能像变戏法似地撰写一个文件来使任务自动化和简化您的管理工作。

在shell脚本中进行的每一种操作(除最简单的命令编组之外)都需要检查条件。所有的shell脚本“逻辑”—广义意义下的“逻辑”—通常都可以分为以下三大类:

if{conditionexists}then...while{conditionexists}do...until{conditionexists}do...

无论随后的操作是什么,这些基于逻辑的命令都依靠判断一种条件是否真实存在来决定后续的操作。test命令是使得在每一种情况下都能够确定要判断的条件是否存在的实用工具。因此,彻底了解这个命令对于撰写成功的shell脚本至关重要。

工作原理

test命令最短的定义可能是评估一个表达式;如果条件为真,则返回一个0值。如果表达式不为真,则返回一个大于0的值—也可以将其称为假值。检查最后所执行命令的状态的最简便方法是使用$?值。出于演示的目的,本文中的例子全部使用了这个参数。

test命令期望在命令行中找到一个参数,当shell没有为变量赋值时,则将该变量视为空。这意味着在处理脚本时,一旦脚本寻找的参数不存在,则test将报告该错误。

当试图保护脚本时,您可以通过将所有参数包含在双引号中来解决这个问题。然后shell将变量展开,如果变量没有值,那么将传递一个空值给test。另一种方法是在脚本内增加一个额外检查过程来判断是否设置了命令行参数。如果没有设置命令行参数,那么脚本会告诉用户缺少参数,然后退出。我们会通过一些例子来更具体地说明所有这些内容。

test和[命令

虽然Linux和UNIX的每个版本中都包含test命令,但该命令有一个更常用的别名—左方括号:[。test及其别名通常都可以在/usr/bin或/bin(取决于操作系统版本和供应商)中找到。

当您使用左方括号而非test时,其后必须始终跟着一个空格、要评估的条件、一个空格和右方括号。右方括号不是任何东西的别名,而是表示所需评估参数的结束。条件两边的空格是必需的,这表示要调用test,以区别于同样经常使用方括号的字符/模式匹配操作。

test和[的语法如下:

testexpression[expression]

在这两种情况下,test都评估一个表达式,然后返回真或假。如果它和if、while或until命令结合使用,则您可以对程序流进行广泛的控制。不过,您无需将test命令与任何其它结构一起使用;您可以从命令行直接运行它来检查几乎任何东西的状态。

因为它们彼此互为别名,所以使用test或[均需要一个表达式。表达式一般是文本、数字或文件和目录属性的比较,并且可以包含变量、常量和运算符。运算符可以

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论