时间:2022-10-31 09:30
linux系统下test命令是什么呢?下面是test命令的具体介绍:
1、test命令功能:用来检查文件和比较值。
2、test命令使用:
判断表达式:
if test (表达式为真)
if test !表达式为假
test 表达式1 –a 表达式2 两个表达式都为真
test 表达式1 –o 表达式2 两个表达式有一个为真
判断字符串:
test –n 字符串 字符串的长度非零
test –z 字符串 字符串的长度为零
test 字符串1=字符串2 字符串相等
test 字符串1!=字符串2 字符串不等
判断整数
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
判断文件
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 文件存在并且可执行
3、工作原理:
test 命令最短的定义可能是评估一个表达式;如果条件为真,则返回一个 0 值。如果表达式不为真,则返回一个大于 0 的值 — 也可以将其称为假值。检查最后所执行命令的状态的最简便方法是使用 $? 值。出于演示的目的,本文中的例子全部使用了这个参数。
test 命令期望在命令行中找到一个参数,当 shell 没有为变量赋值时,则将该变量视为空。这意味着在处理脚本时,一旦脚本寻找的参数不存在,则 test 将报告该错误。
当试图保护脚本时,您可以通过将所有参数包含在双引号中来解决这个问题。然后 shell 将变量展开,如果变量没有值,那么将传递一个空值给 test。另一种方法是在脚本内增加一个额外检查过程来判断是否设置了命令行参数。如果没有设置命令行参数,那么脚本会告诉用户缺少参数,然后退出。
4、test 文件运算符
利用这些运算符,可以在程序中根据对文件类型的评估结果执行不同的操作:
-b file 如果文件为一个块特殊文件,则为真
-c file 如果文件为一个字符特殊文件,则为真
-d file 如果文件为一个目录,则为真
-e file 如果文件存在,则为真
-f file 如果文件为一个普通文件,则为真
-g file 如果设置了文件的 SGID 位,则为真
-G file 如果文件存在且归该组所有,则为真
-k file 如果设置了文件的粘着位,则为真
-O file 如果文件存在并且归该用户所有,则为真
-p file 如果文件为一个命名管道,则为真
-r file 如果文件可读,则为真
-s file 如果文件的长度不为零,则为真
-S file 如果文件为一个套接字特殊文件,则为真
-t fd 如果 fd 是一个与终端相连的打开的文件描述符(fd 默认为 1),则为真
-u file 如果设置了文件的 SUID 位,则为真
-w file 如果文件可写,则为真
-x file 如果文件可执行,则为真
以上就是小编今天的分享了,希望可以帮助到大家。