基本格式:
test expression

expression为test命令构造的表达式。
这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式
返回值:
test命令或者返回0(真) 或者返回1(假).

test可理解的表达式类型分为四类:

  • 表达式判断
  • 字符串比较
  • 数字比较
  • 文件比较

1)判断表达式

if test  (表达式为真)
if test !表达式为假
test 表达式1 –a 表达式 2                两个表达式都为真
test 表达式1 –o 表达式2                 两个表达式有一个为真

2)判断字符串

test –n 字符串                          字符串的长度非零
test –z 字符串                           字符串的长度为零
test 字符串1=字符串 2          字符串相等
test 字符串1 !=字符串2         字符串不等

3)判断整数

test 整数1 –eq 整数2                       整数相等
test 整数 1 –ge 整数2                      整数1大于等于整数2
test 整数1 –gt 整数 2                       整数1大于整数2
test 整数1 –le 整数 2                       整数1小于等于整数2
test 整数1 –lt 整数 2                         整数1小于整数2
test 整数1 –ne 整数 2                      整数1不等于整数2

4)判断文件

test  File1 –ef  File2                            两个文件具有同样的设备号和i结点号
test  File1 –nt  File2                            文件1比文件2 新
test  File1 –ot  File2                            文件1比文件2 旧
test –b File            文件存在并且是块设备文件
test –c File            文件存在并且是字符设备文件
test –d File            文件存在并且是目录
test –e File            文件存在
test –f File            文件存在并且是正规文件
test –g File            文件存在并且是设置了组ID
test –G File            文件存在并且属于有效组ID
test –h File            文件存在并且是一个符号链接(同-L)
test –k File             文件存在并且设置了sticky位
test –b File            文件存在并且是块设备文件
test –L File            文件存在并且是一个符号链接(同-h)
test –o File            文件存在并且属于有效用户ID
test –p File            文件存在并且是一个命名管道
test –r File            文件存在并且可读
test –s File            文件存在并且是一个套接字
test –t FD                文件描述符是在一个终端打开的
test –u File            文件存在并且设置了它的set-user-id位
test –w File            文件存在并且可写
test –x File            文件存在并且可执行

test xxx 可以简写成 [  xxx  ] 的形式。

注意:在使用"["简写test时,左中括号后面的空格和右括号前面的空格是必需的,如果没有空格,Shell不可能辨别表达式何时开始何时结束.

也就是说

test option file

可以全部改写成:

[ option file ]

例如:

test –w File
 
改写成

[ –w File ]

【示例】

//判断第一个参数是否为空字符串,不空则打印
if test -n "$1"
then
echo "$1"
fi

测试,放到文件当中
#!/bin/sh

if test -n "$1"
then
echo "$1"
fi

执行
chmod +x test.sh
./test.sh www.linuxpig.com

Linux shell 的 test 命令用法详解的更多相关文章

  1. Linux Shell脚本入门--wget 命令用法详解

    Linux Shell脚本入门--wget 命令用法详解 wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括Windows在内的各个平台上.它有以下功能 ...

  2. Linux下find命令用法详解

    Linux下find命令用法详解   学神VIP烟火 学神IT教育:XueGod-IT   最负责任的线上直播教育平台   本文作者为VIP学员 烟火   第一部分:根据文件名查找   1.在当前目录 ...

  3. (转)linux paste命令用法详解

    linux paste命令用法详解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用于合并文件的列. 功能说明:合并文件 ...

  4. Ubuntu kill命令用法详解

    转自:Ubuntu kill命令用法详解 1. kill   作用:根据进程号杀死进程   用法: kill [信号代码] 进程ID   root@fcola:/# ps -ef | grep sen ...

  5. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  6. (转)shell中test命令方法详解

    test命令用法.功能:检查文件和比较值 shell中test命令方法详解 原文:https://www.cnblogs.com/guanyf/p/7553940.html 1)判断表达式 if te ...

  7. [转帖]强大的strace命令用法详解

    强大的strace命令用法详解 文章转自: https://www.linuxidc.com/Linux/2018-01/150654.htm strace是什么? 按照strace官网的描述, st ...

  8. lsof 命令用法详解

    lsof 命令用法详解 作用 用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP.UDP).找回/恢复删除的文件.是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所 ...

  9. (转)Shell中read的用法详解

    Shell中read的用法详解 原文:http://blog.csdn.net/jerry_1126/article/details/77406500 read的常用用法如下: read -[pstn ...

随机推荐

  1. sql注入数据库修复方法

    1.第一种情况是 需要将指定的 注入字符串全部替换掉(仅替换注入的字符串为空) declare @delStr nvarchar(500) set @delStr='<script src=ht ...

  2. Ubuntu包管理命令 dpkg、apt和aptitude

    起初GNU/Linux系统中仅仅有.tar.gz.用户 必须自己编译他们想使用的每个程序.在Debian出现之後,人们觉得有必要在系统 中加入一种机 制用来管理 安装在计算机上的软件包.人们将这套系统 ...

  3. E514:write error(file system full?)

    vi编辑某文件,保存时报错,提示:E514: write error (file system full?)---写入错误,磁盘满了? 查看磁盘空间:df -h根目录磁盘空间已满,used%100. ...

  4. AE分级渲染

    分级渲染classbreakrenderer位于carto类库中,进行分级渲染时,首先要将相应图层按照某一Field分级.可使用esrisystem类库中的iclassifyGEN类的classify ...

  5. Android Studio 导入Eclipse工程

    eclipse:workspace对应多个project:而android studio是project对应多个module:故,在android studio中的工程project实际上是eclip ...

  6. textarea 的最大高度以及最小高度

    <script type="text/javascript"> $(function(){ $("#textarea3").textareaAuto ...

  7. linux下python多版本共存

    为何要安装python,linux下不是已经集成了python吗? 大多数linux系统都集成了python,但是他们的版本太低了.不能满足我们的需求,尤其是好多系统居然仍停留在 python2.6. ...

  8. [Head First Python]5. summary

    1- "原地"排序-转换后替换 >>> list = [2,1,3] >>> list.sort() >>> list [1, ...

  9. 使用jekyll主题

    github上面有很多基于jekyll的主题 https://github.com/theme4jekyll 使用起来也非常方便.直接clone到本地 这些主题,包括了很多模板,在新建博客的时候可以在 ...

  10. 苹果开发证书相关BLOG与Delphi IOS环境安装(超详细)

    注:有好的资源,请添加了上传,上传后,通知管理员,删除旧文件,累积相关的学习资源,方便新手学习 一.相关论坛http://www.2ccc.com/ delphi 合子 www.2pascal.com ...