1.test命令基本用法
test命令可以用来判断两个条件是否成功,如:
#! /bin/sh
if test $# = 0
then
printf "arguments is empty.\n"
exit 1
fi
其中,
if test $# = 0
表示输入参数的数量为0,没有输入参数时,会打印出提示:arguments is empty.
当然,如果是想判断输入参数的数量不为0,可以这样
if ! test $# = 0
test命令有另外一种形式 [ ... ],效果与 test ... 是一样的。
if test "$str1" = "$str2"
then
...
if
或者
if [ "$str1" = "$str2" ]
then
...
fi
2.test命令的表达式
运算符 如果........则为真
string string是null
-b file file是块设备文件
-c file file是字符设备文件
-d file file是目录
-e file file存在
-f file file为一般文件
-g file file有设置它的setgid位
-h file file是一符号连接
-L file file是一符号连接(等同于 -h)
-n string string是非null
-p file file是一命名的管道(FIFO文件)
-r file file是可读的
-S file file是socket
-s file file不是空的
-t n 文件描述符n指向一终端
-u file file有设置它的setuid位
-w file file是可写入的
-x file file是可执行的,或file是可被查找的目录
-z string string为null
s1 = s2 字符串s1与s2相同
s1 != s2 字符串s1与s2不相同
n1 -eq n2 整数n1 等于 n2
n1 -ne n2 整数n1 不等于 n2
n1 -lt n2 整数n1 小于 n2
n1 -gt n2 整数n1 大于 n2
n1 -le n2 整数n1 小于或等于 n2
n1 -ge n2 整数n1 大于或等于 n2