shell (bash)中的比较运算符

发布时间:2020-07-06编辑:脚本学堂
shell (bash)中的比较运算符,有需要的朋友拿去。

shell (bash)中的比较运算符,有需要的朋友拿去。

运算符  描述  示例

文件比较运算符
-efilename  如果filename存在,则为真  [ -e /var/log/syslog ]
-dfilename  如果filename为目录,则为真  [ -d /tmp/mydir ]
-ffilename  如果filename为常规文件,则为真  [ -f /usr/bin/grep ]
-Lfilename  如果filename为符号链接,则为真  [ -L /usr/bin/grep ]
-rfilename  如果filename可读,则为真  [ -r /var/log/syslog ]
-wfilename  如果filename可写,则为真  [ -w /var/mytmp.txt ]
-xfilename  如果filename可执行,则为真  [ -L /usr/bin/grep ]
filename1-ntfilename2  如果filename1比filename2新,则为真  [ /tmp/install/etc/services -nt /etc/services ]
filename1-otfilename2  如果filename1比filename2旧,则为真  [ /boot/bzImage -ot arch/i386/boot/bzImage ]

字符串比较运算符[size=-1](请注意引号的使用,这是防止空格扰乱代码的好方法)
-zstring  如果string长度为零,则为真  [ -z "$myvar" ]
-nstring  如果string长度非零,则为真  [ -n "$myvar" ]
string1=string2  如果string1与string2相同,则为真  [ "$myvar" = "one two three" ]
string1!=string2  如果string1与string2不同,则为真  [ "$myvar" != "one two three" ]

算术比较运算符
num1-eqnum2  等于  [ 3 -eq $mynum ]
num1-nenum2  不等于  [ 3 -ne $mynum ]
num1-ltnum2  小于  [ 3 -lt $mynum ]
num1-lenum2  小于或等于  [ 3 -le $mynum ]
num1-gtnum2  大于  [ 3 -gt $mynum ]
num1-genum2  大于或等于  [ 3 -ge $mynum ]