4.9 测试语句
这里所说的测试是指对变量的大小、字符串、文件属性等内容进行判断。test命令可以用于字符串、数字、文件状态等内容的测试。本节将讲述shell的测试语句。
提示:test命令经常用于在shell脚本中与if语句连用进行条件判断。
4.9.1 文件状态测试
文件状态测试指的是对文件的权限、有无、属性、类型等内容进行判断。与其他语言不同的是,test命令的测试结果,返回0时表示测试成功。返回1时表示测试失败。表4.3是文件测试的参数列表。
表4.3 文件状态测试表
|
-d 测试文件是否是目录文件< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
-s 测试文件是否非空 |
|
-f 测试文件是否是正规文件 |
-w 测试是否可写 |
|
-L 测试文件是否是符号链接 |
-u 测试文件是否有suid位设置 |
|
-x 测试文件是否可执行 |
-r 测试文件是否可读 |
例如下面的例子使用这些测试参数,对文件的属性进行测试。
从主菜单中打开一个终端。
测试文件/windows是否是一个目录。在终端中输入下面的命令,然后按"Enter"键。
- test -d /windows
输出测试结果。$ 用于保存上一个命令的结果,可以用下面的命令进行输出。
- echo $
终端中输出结果1,表明/windows不是一个目录。
测试当前目录下的文件a.txt是否可以执行。从表4.3中可知,测试是否可以执行的参数是-x,所以输入的命令如下所示。
- test -x a.txt
按"Enter"键执行。输入echo $ 命令输出结果。
终端中显示的结果是1。表明文件a.txt是不能执行的。
提示:特殊变量$ 表示上一个命令的返回值,在shell脚本中,进程使用$ 判断上一个命令执行是否成功。如果返回值为0,则表明上一个命令执行成功,否则执行失败。