Linux中的判断式

Posted 413Xiaol

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中的判断式相关的知识,希望对你有一定的参考价值。

格式一:test [参数] 判断内容
格式二:[ [参数] 判断内容 ]
  说明:
    a.格式二可以认为是格式一的缩写
    b.格式二里中括号和内容之间要有空格


基于文件的判断
-d  判断文件是否存在,并且是目录文件
-e  判断文件是否存在
-f  判断文件是否存在,并且是普通文件
-l  判断文件是否存在,并且为符号连接文件
[[email protected] temp]# test -e /etc/passwd
[[email protected] temp]# echo $?
0
[[email protected] temp]# [ -e /etc/passwd ]
[[email protected] temp]# echo $?
0
[[email protected] temp]# [ -d /root ] && echo "yes" || echo "no"
yes

 

基于文件权限的判断
-r   文件 判断文件是否存在,并且拥有读权限
-w  文件 判断文件是否存在,并且拥有写权限
-x   文件 判断文件是否存在,并且拥有执行权限
[[email protected] 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号是否一样
[[email protected] temp]# ln /xiaol/temp/data.txt /xiaol/temp/lndata.txt
[[email protected] temp]# [ /xiaol/temp/data.txt -ef /xiaol/temp/lndata.txt ] && echo "yes" || echo "no"
yes

 

两个整数之间的比较
用的是:-eq -ne -gt -lt -ge -le这些,就不多解释了
[[email protected] temp]# [ 23 -ge 22 ] && echo "yes" || echo "no"
yes

 

两个字符串之间的比较
-z 字符串  判断字符串是否为空
-n 字符串  判断支付传是否为非空
串1 == 串2  两个字符串相等
串1 != 串2   两个字符串不相等
[[email protected] temp]# a=1
[[email protected] temp]# b=2
[[email protected] temp]# [ "$a" == "$b" ] && echo "yes" || echo "no"
no

[[email protected] temp]# name=xiaol
[[email protected] temp]# [ -z "$name" ] && echo "yes" || echo "no"
no

 

多个判断一起执行
判断1 -a 判断2  逻辑与
判断1 -o 判断2  逻辑或
! 判断1       逻辑非













































以上是关于Linux中的判断式的主要内容,如果未能解决你的问题,请参考以下文章

linux bash善用判断式

Linux Shell编程 条件判断语法

条件判断式

linux shell脚本基本语法

linux shell脚本基本语法

linux shell脚本基本语法