首页 > 代码库 > Linux中的判断式
Linux中的判断式
格式一:test [参数] 判断内容
格式二:[ [参数] 判断内容 ]
说明:
a.格式二可以认为是格式一的缩写
b.格式二里中括号和内容之间要有空格
基于文件的判断
-d 判断文件是否存在,并且是目录文件
-e 判断文件是否存在
-f 判断文件是否存在,并且是普通文件
-l 判断文件是否存在,并且为符号连接文件
[root@localhost temp]# test -e /etc/passwd
[root@localhost temp]# echo $?
0
[root@localhost temp]# [ -e /etc/passwd ]
[root@localhost temp]# echo $?
0
[root@localhost temp]# [ -d /root ] && echo "yes" || echo "no"
yes
基于文件权限的判断
-r 文件 判断文件是否存在,并且拥有读权限
-w 文件 判断文件是否存在,并且拥有写权限
-x 文件 判断文件是否存在,并且拥有执行权限
[root@localhost temp]# [ -r data.txt ] && echo "yes" || echo "no"
yes
两个文件之间的比较
文件1 -nt 文件2 文件1的修改时间比文件2新
文件1 -ot 文件2 文件1的修改时间比文件2晚
文件1 -ef 文件2 文件1和文件2的inode号是否一样
[root@localhost temp]# ln /xiaol/temp/data.txt /xiaol/temp/lndata.txt
[root@localhost temp]# [ /xiaol/temp/data.txt -ef /xiaol/temp/lndata.txt ] && echo "yes" || echo "no"
yes
两个整数之间的比较
用的是:-eq -ne -gt -lt -ge -le这些,就不多解释了
[root@localhost temp]# [ 23 -ge 22 ] && echo "yes" || echo "no"
yes
两个字符串之间的比较
-z 字符串 判断字符串是否为空
-n 字符串 判断支付传是否为非空
串1 == 串2 两个字符串相等
串1 != 串2 两个字符串不相等
[root@localhost temp]# a=1
[root@localhost temp]# b=2
[root@localhost temp]# [ "$a" == "$b" ] && echo "yes" || echo "no"
no
[root@localhost temp]# name=xiaol
[root@localhost temp]# [ -z "$name" ] && echo "yes" || echo "no"
no
多个判断一起执行
判断1 -a 判断2 逻辑与
判断1 -o 判断2 逻辑或
! 判断1 逻辑非
Linux中的判断式