shell 9test命令

shell中的test用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

1. 数值测试

-eq 等于为true
-ne 不等,为true
-gt 大于,为true
-ge 大于等于,为true
-lt 小于,为true
-le 小于等于,为true
#shell
#!/bin/sh
a=3
b=5
if test $a -eq $b;then
	echo "$a=$b"
else
	echo "$a!=$b"    #3!=5
fi
if test $a -gt $b;then
	echo "$a>$b"
else
	echo "$a<=$b"    #3<=5
fi
if test $a -le $b;then
	echo "$a<=$b"    #3<=5
else
	echo "$a>$b"
fi

2. 字符串测试

= 等于,为true
!= 不等,为true
-z 字符串 字符串的长度为0,为true
-n 字符串 字符串的长度不为0,为true
#shell
#!/bin/sh
a="hello"
b="world"
if test $a = $b;then
	echo "equal"
else
	echo "not equal"    not equal
fi
if test -z $a;then
	echo "字符串长度为0"
else
	echo "字符串长度不为0"    #字符串长度不为0
fi

3. 文件测试

-e 文件名 如果文件存在,则为真
-r 文件名 如果文件存在且可读,则为真
-w 文件名 如果文件存在且可写,则为真
-x 文件名 如果文件存在且可执行,则为真
-s 文件名 如果文件存在且至少有1个字符,则为真
-d 文件名 如果文件存在且是目录则为真
-f 文件名 如果文件存在且为普通文件,则为真
-c 文件名 如果文件存在且为字符型特殊文件,则为真
-b 文件名 如果文件存在且为特殊文件,则为真
#shell
#!/bin/sh
if test -e land;then
	echo "文件已存在"
else
	touch land
	echo "文件已创建"    #文件已创建
fi
if test -r land;then
	echo "文件存在且可读"    #文件存在且可读
else
	echo "文件不存在或文件不可读"
fi

4. 使用逻辑运算符 -a -o !

#shell
#!/bin/sh
if test -e land -o -e wind;then
	echo "有一个存在"    #有一个存在
else
	echo "2个都不存在"
fi
原文地址:https://www.cnblogs.com/csj2018/p/9581184.html