1.命令简介

test 用于检查某个条件是否成立,它可以进行数值、字符串和文件三个方面的测试。本文介绍的是 GNU 版本的 test,其它版本(如 POSIX 版)的实现可能会有所不同。

2.命令格式

test
test EXPRESSION

省略表达式 EXPRESSION 默认为 false。[] 实际上是 Bash 中 test 命令的简写,即所有的 test EXPRESSION 等于 [ EXPRESSION ]。

3.选项说明

--help显示帮助信息并退出
--version显示版本信息并退出# 1.逻辑运算
! EXPRESSION逻辑非,EXPRESSION 为 false 返回 true
EXPRESSION1 -a EXPRESSION2逻辑与,两个表达式均为 true 返回 true
EXPRESSION1 -o EXPRESSION2逻辑或,两个表达式只要有一个为 true 返回 true# 2.数值间的比较
INTEGER1 -eq INTEGER2两整数是否相等
INTEGER1 -ne INTEGER2整数 INTEGER1 是否不等于 INTEGER2
INTEGER1 -gt INTEGER2整数 INTEGER1 是否大于 INTEGER2
INTEGER1 -ge INTEGER2整数 INTEGER1 是否大于等于 INTEGER2
INTEGER1 -lt INTEGER2整数 INTEGER1 是否小于 INTEGER2
INTEGER1 -le INTEGER2整数 INTEGER1 是否小于等于 INTEGER2# 3.字符串的比较
-n STRING字符串不为空返回 true
-z STRING字符串为空返回 true
STRING1 = STRING2字符串相等返回 true
STRING1 != STRING2字符串不相等返回 true# 4.文件的比较与类型判断
FILE1 -ef FILE2两个文件是否为同一个文件。主要看文件设备号与 inode 是否一致
FILE1 -nt FILE2文件 FILE1 是否比 FILE2 新(修改时间新)
FILE1 -ot FILE2文件 FILE1 是否比 FILE2 旧(修改时间旧)
-b FILE文件存在且是块(block)设备文件
-c FILE文件存在且是字符(character)设备文件
-d FILE文件存在且是目录(directory)
-e FILE文件存在(exist)返回 true
-f FILE文件存在且是普通文件
-g FILE文件存在且设置了 SGID
-G FILE文件存在且属于有效组ID
-h FILE文件存在且是软链接。同 -L
-k FILE文件存在且设置了粘着位(Sticky Bit)
-L FILE文件存在且是软链接。同 -h
-O FILE文件存在且属于有效用户ID
-p FILE文件存在且属于命名管道
-r FILE文件存在且可读
-s FILE文件存在且内容不为空
-S FILE文件存在且是一个套接字(socket)
-t FD文件描述符是在一个终端打开的
-u FILE文件存在且设置了 SUID 位
-w FILE文件存在且且可写
-x FILE文件存在且可执行

注意:
(1)test 拥有选项 --help 与 --version,但无法使用。test 将这两个选项当做非空的普通字符串进行处理,并返回 true;
(2)文件的比较与类型判断,除了 -h 与 -L,其它所有的选项都对软链接进行解引用。

4.常用示例

(1)判断数值是否相等。

test 0 -eq 0; echo $?
0

test 退出状态码等于 0 表示条件成立。

(2)判断文件是否存在。

test -e /etc/passwd; echo $?
0

test 退出状态码等于 0 表示文件存在。

(3)判断文件是否是同一个文件。

test /etc/passwd -ef /etc/shadow; echo $?
1

test 退出状态码等于 1 表示不是同一个文件。


参考文献

[1] test manual

Linux 命令(95)—— test 命令相关推荐

  1. 【Linux】一步一步学Linux——who命令(95)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 附录 01. 命令概述 who命令用来打印当前登录用户信息,包含了系统的启动时间 ...

  2. linux取消上一个命令,Linux简介及最常用命令(简单易学,但能解决95%以上的问题)...

    Linux是目前应用最广泛的服务器操作系统,基于Unix,开源免费,由于系统的稳定性和安全性,市场占有率很高,几乎成为程序代码运行的最佳系统环境.linux不仅可以长时间的运行我们编写的程序代码,还可 ...

  3. Linux系统状态查看命令2

    2019独角兽企业重金招聘Python工程师标准>>> 10月24日任务 10.6 监控io性能 10.7 free命令 10.8 ps命令 10.9 查看网络状态 10.10 li ...

  4. linux怎么知道ping命令,教程方法;通过ping命令查看服务器类型(linux还是windows系列)电脑技巧-琪琪词资源网...

    琪琪词资源网-教程方法;通过ping命令查看服务器类型(linux还是windows系列)电脑技巧,以下是给大家带来的教程方法;通过ping命令查看服务器类型(linux还是windows系列),大家 ...

  5. linux公司常用基础命令必知必会一

    基础命令分为六部分来介绍,都是一些公司里常用的命令做了下汇总: ◆ 安装和登录命令: login.shutdown.halt.reboot.install.mount.umount.chsh.exit ...

  6. linux 强制结束p进程的命令,Linux常用命令之性能命令

    本文介绍Linux常用性能统计分析命令,监控进程或者系统性能.主要包括CPU(top.mpstat).内存(vmstat.free).I/O(iostat).网络性能(sar).系统日志信息(dems ...

  7. Linux 后台开发常用命令目录(更新 ing)

    文章目录 前言 帮助命令 进程与作业管理 文本查看 文本编辑 编程相关 系统管理 文件传输 网络管理 文件与目录管理 磁盘管理 权限管理 用户与组管理 备份压缩 代码版本控制 性能检测 实用工具 前言 ...

  8. 【Linux】如何查找命令及历史记录history

    如何查找命令及历史记录 文章目录 如何查找命令及历史记录 1.如何找到一个命令 2.命令的历史记录 3.一些实用的快捷键 4.小结 5.参考资料 如何找到一个命令.命令的历史记录.一些实用的快捷键.总 ...

  9. Linux命令之top命令查看服务器CPU与内存占用

    在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况.top命令可以实时动态地查看系统的整体运行情况. [1]top命令 语法格式: top(选项) 选项如下: -b:以批处 ...

  10. Linux系统使用ss命令查看端口状态

    Linux系统使用ss命令查看端口状态 Linux系统使用ss命令查看端口状态 目录 1.可用工具 2.ss帮助 2.1 选项分类说明 2.2 过滤选项family 2.3 过滤选项state 2.4 ...

最新文章

  1. matlab二值化图像_小白啃骨头之图像识别
  2. Nature回应南大花120万发特刊!被骂上热搜,南大到底委不委屈?
  3. UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb0 in position 0: invalid start byte
  4. 【今晚9点】:对话刘连响——web流媒体开发新变化
  5. trace与代码跟踪服务
  6. 浅聊在美找工作以及工作之后的感受
  7. 诺基亚手机的安全保护。--如何使你的手机丢失,被盗后依然安全。
  8. Linux系统安全概述-sudo授权-pam认证机制-对称加密-非对称加密-md5-数字证书
  9. HoloLens 2开发:三种工程部署方式
  10. 利用k-means算法实现图像自动色彩量化
  11. mysql 3.23.49,将旧的3.23.49 MySQL数据库转移到5.0.51 MySQL数据库 – 用ANSI和UTF-8编码...
  12. ThinkPHP 3.1.2 模板中的变量
  13. FlightGear
  14. LSTM神经网络图解
  15. 汉字笔画动图怎么做_隶书基本笔画教程(动态图)
  16. lldp协议代码阅读_查看链路层发现协议(LLDP)关于交换机的端口状态信息
  17. Linux下PDF转图片格式
  18. 如何辨别中标麒麟和银河麒麟
  19. 锐捷睿易:acl的制定和应用
  20. HTML + CSS3 基础入门与进阶

热门文章

  1. 倾斜摄影实景三维建模效果不好?可能有这些原因!
  2. Android_getevent工具的使用
  3. OPENCV用户手册之图像处理部分(之四):滤波器与色彩转换(中文翻译)
  4. 四种有能力取代Cookies的客户端Web存储方案
  5. C++ 无限for循环的bug
  6. iOS 播放Gif动画
  7. mac下安装node.js步骤
  8. 白话算法(1) for循环不是随便写的
  9. L3-019 代码排版 (30 分)-PAT 团体程序设计天梯赛 GPLT
  10. [Python] L1-045 宇宙无敌大招呼-PAT团体程序设计天梯赛GPLT