标签:linux
测试的结果为0或非0, 0表示真,非0表示假。
test命令
通常与if、while、until等语句一起使用。
#test 表达式
#test [ 表达式 ] //[后面后空格, ]前面有空格
文件属性测试表达式
表达式 | 说明 |
-b file | 如果文件file存在且为块设备(Block speicial),则值为真 |
-c file | 如果文件file存在且为字符设备(Character special),则值为真 |
-r file | 如果文件file存在且为只读,则值为真 |
-w file | 如果文件file存在且可写入,则值为真 |
-x file | 如果文件file存在且可执行,则值为真 |
-s file | 如果文件file存在且长度大于0,则值为真 |
-d file | 如果file是一个目录,则值为真 |
-f file | 如果文件file是一个普通文件,则值为真 |
-e file | 如果文件存在,则值为真 |
测试示例
1 #! /bin/bash 2 #filename:filee 3 echo "Please enter the file name:" 4 read FILENAME 5 if test -e $FILENAME ; then 6 ls -l $FILENAME 7 else 8 touch $FILENAME 9 fi
测试数值
选项 | 说明 |
n1 -eq n2 | n1 等于 n2,则为真 |
n1 -ne n2 | n1 不等于 n2,则为真 |
n1 -gt n2 | n1 大于 n2,则为真 |
n1 -lt n2 | n1 小于 n2,则为真 |
n1 -ge n2 | n1 大于等于 n2,则为真 |
n1 -le n2 | n1 小于等于 n2,则为真 |
测试示例
1 #! /bin/bash 2 #filename:filee 3 echo "Please enter the first number:" 4 read N1 5 echo "Please enter the second number:" 6 read N2 7 if test $N1 -eq $N2 ; then 8 echo "N1 == N2" 9 else 10 echo "N1 != N2" 11 fi
测试字符串
选项 | 说明 |
-z s1 | 如果字符串s1的长度是0,则值为真 |
-n s1 | 如果字符串s1的长度不为0,则值为真 |
s1=s2 | 如果字符串s1与字符串s2相等,则值为真 |
s1!=s2 | 如果字符串s1与字符串s2不等,则值为真 |
s1 | 如果字符串s1不是空串,则值为真 |
测试示例
1 #! /bin/bash 2 #filename:filee 3 echo "Please enter the first string:" 4 read S1 5 echo "Please enter the second string:" 6 read S2 7 if test $S1 = $S2 ; then 8 echo "S1 == S2" 9 else 10 echo "S1 != S2" 11 fi
测试逻辑运算符
逻辑操作符 | 说明 |
-a | 二进制“与”操作符 |
-o | 二进制“或”操作符 |
! | 一元“非”操作符 |
测试示例
1 #! /bin/bash 2 #filename:filee 3 echo "Please enter the first string:" 4 read S1 5 echo "Please enter the second string:" 6 read S2 7 if test $S1 = $S2 -o $S1 = "abc" ; then 8 echo "S1 == S2" 9 else 10 echo "S1 != S2" 11 fi
标签:linux
原文地址:http://yuzwei.blog.51cto.com/10126623/1858708