linux的test命令详解

linux的test命令详解

ID:37711197

大小:25.45 KB

页数:10页

时间:2019-05-29

linux的test命令详解_第1页
linux的test命令详解_第2页
linux的test命令详解_第3页
linux的test命令详解_第4页
linux的test命令详解_第5页
资源描述:

《linux的test命令详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、linux的test命令(转)来源:jeraylee的新浪博客   每一种条件语句的基础都是判断什么是真什么是假。是否了解其工作原理将决定您编写的是质量一般的脚本还是您将引以为荣的脚本。Shell脚本的能力时常被低估,但实际上其能力的发挥受制于脚本撰写者的能力。您了解得越多,您就越能像变戏法似地撰写一个文件来使任务自动化和简化您的管理工作。在shell脚本中进行的每一种操作(除最简单的命令编组之外)都需要检查条件。所有的shell脚本“逻辑”—广义意义下的“逻辑”—通常都可以分为以下三大类:if{conditionexists}then

2、...while{conditionexists}do...until{conditionexists}do...无论随后的操作是什么,这些基于逻辑的命令都依靠判断一种条件是否真实存在来决定后续的操作。test命令是使得在每一种情况下都能够确定要判断的条件是否存在的实用工具。因此,彻底了解这个命令对于撰写成功的shell脚本至关重要。工作原理test命令最短的定义可能是评估一个表达式;如果条件为真,则返回一个0值。如果表达式不为真,则返回一个大于0的值—也可以将其称为假值。检查最后所执行命令的状态的最简便方法是使用$?值。出于演示的目的

3、,本文中的例子全部使用了这个参数。test命令期望在命令行中找到一个参数,当shell没有为变量赋值时,则将该变量视为空。这意味着在处理脚本时,一旦脚本寻找的参数不存在,则test将报告该错误。当试图保护脚本时,您可以通过将所有参数包含在双引号中来解决这个问题。然后shell将变量展开,如果变量没有值,那么将传递一个空值给test。另一种方法是在脚本内增加一个额外检查过程来判断是否设置了命令行参数。如果没有设置命令行参数,那么脚本会告诉用户缺少参数,然后退出。我们会通过一些例子来更具体地说明所有这些内容。test和[命令虽然Linux和

4、UNIX的每个版本中都包含test命令,但该命令有一个更常用的别名—左方括号:[。test及其别名通常都可以在/usr/bin或/bin(取决于操作系统版本和供应商)中找到。当您使用左方括号而非test时,其后必须始终跟着一个空格、要评估的条件、一个空格和右方括号。右方括号不是任何东西的别名,而是表示所需评估参数的结束。条件两边的空格是必需的,这表示要调用test,以区别于同样经常使用方括号的字符/模式匹配操作。test和[的语法如下:testexpression[expression]在这两种情况下,test都评估一个表达式,然后返回

5、真或假。如果它和if、while或until命令结合使用,则您可以对程序流进行广泛的控制。不过,您无需将test命令与任何其它结构一起使用;您可以从命令行直接运行它来检查几乎任何东西的状态。因为它们彼此互为别名,所以使用test或[均需要一个表达式。表达式一般是文本、数字或文件和目录属性的比较,并且可以包含变量、常量和运算符。运算符可以是字符串运算符、整数运算符、文件运算符或布尔运算符—我们将在以下各部分依次介绍每一种运算符。test文件运算符利用这些运算符,您可以在程序中根据对文件类型的评估结果执行不同的操作:-bfile如果文件为一

6、个块特殊文件,则为真-cfile如果文件为一个字符特殊文件,则为真-dfile如果文件为一个目录,则为真-efile如果文件存在,则为真-ffile如果文件为一个普通文件,则为真-gfile如果设置了文件的SGID位,则为真-Gfile如果文件存在且归该组所有,则为真-kfile如果设置了文件的粘着位,则为真-Ofile如果文件存在并且归该用户所有,则为真-pfile如果文件为一个命名管道,则为真-rfile如果文件可读,则为真-sfile如果文件的长度不为零,则为真-Sfile如果文件为一个套接字特殊文件,则为真-tfd如果fd是一个

7、与终端相连的打开的文件描述符(fd默认为1),则为真-ufile如果设置了文件的SUID位,则为真-wfile如果文件可写,则为真-xfile如果文件可执行,则为真以下示例显示了此简单操作的运行情况:$ls-ltotal33drwxr-xr-w2rootroot1024Dec505:05LST-rw-rw-rw-1emmettusers27360Feb607:30evan-rwsrwsrwx1rootroot152Feb607:32hannahdrwxr-xr-x2emmettusers1024Feb607:31karen-rw----

8、---1emmettusers152Feb607:29kristin-rw-r--r--1emmettusers152Feb607:29spencer$$test-revan$echo$?0$test-rw

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。