shell判断2.test测试

test 测试命令


格式:
中括号里面前后留空格   shell中测试结果为真,返回0,假返回1。
[ -e /etc/passwd ] && echo "passwd文件存在"


改写成if语句如下:
if -e /etc/passwd 
    then echo passwd文件存在
fi
--------------------------------------------


test 测试字符串


1.判断字符串的长度是否为0
[ -z "$var" ] && echo "为0"    注:$var 外面要加引号
2.字符串非0
[ -n "$var "] && echo "非0"
3.两个字符串长度是否相等
[ "$var1" = "$var2" ] && echo "相同"  注:= 表示两个字符串是否相同 != 表示不相同


test 测试数字


[ $integer1 -eq $integer2 ] && echo "相等"    注:数字不需要引号
不等: -ne  大于: -gt 大于等于 -ge 小于: -lt  


test 测试文件


文件存在和文件类型


-b 文件是否存在且为块设备
-c 文件是否存在且为字符设备
-d 文件是否存在且为目录
-e 文件是否存在不论类型
-f 文件是否存在且为文本文件
-h或-L 文件是否存在且为符号连接
-p 文件是否存在且为管道文件


file1 = "/etc/passwd"
file2 = "/dev/tty2"
[ -b $file2 ] $$ echo "测试成功"


测试文件的权限


-r 文件
-w 文件
-x 文件




测试文件权限


-s 是否大于0 (即是否是空文件)
-u 检测文件名是否存在且具有“SUID”权限
-g 检测文件名是否存在且具有“SGID”权限
-k 检测文件名是否存在且具有“Sticky bit”权限


文件的新旧 修改时间


file1 -nt file2  new than
file1 -ot file2  old than
-ef 判断file1与file2是否为同一个文件,可用在判断hard link上

猜你喜欢

转载自blog.csdn.net/choose_c/article/details/52892060
今日推荐