文件比较运算符ide
-e filename 若是 filename存在,则为真 [ -e /var/log/syslog ]spa
-d filename 若是 filename为目录,则为真 [ -d /tmp/mydir ]three
-f filename 若是 filename为常规文件,则为真 [ -f /usr/bin/grep ]字符串
-L filename 若是 filename为符号连接,则为真 [ -L /usr/bin/grep ]get
-r filename 若是 filename可读,则为真 [ -r /var/log/syslog ]string
-w filename 若是 filename可写,则为真 [ -w /var/mytmp.txt ]it
-x filename 若是 filename可执行,则为真 [ -L /usr/bin/grep ]io
filename1 -nt filename2 若是 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ]class
filename1 -ot filename2 若是 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]file
文件类型有:d表示目录、-表示为普通文件、c表示为字符串设备(鼠标、键盘)、l表示软链接/硬连接、b块设备(光盘、硬盘)、s为用来通讯的=====【一样适用以上比较】
字符串比较运算符 (请注意引号的使用,这是防止空格扰乱代码的好方法)
-z string 若是 string长度为零,则为真 [ -z "$myvar" ]
-n string 若是 string长度非零,则为真 [ -n "$myvar" ]
string1 = string2 若是 string1与 string2相同,则为真 [ "$myvar" = "one two three" ]
string1 != string2 若是 string1与 string2不一样,则为真 [ "$myvar" != "one two three" ]
算术比较运算符
num1 -eq num2 等于 [ 3 -eq $mynum ]
num1 -ne num2 不等于 [ 3 -ne $mynum ]
num1 -lt num2 小于 [ 3 -lt $mynum ]
num1 -le num2 小于或等于 [ 3 -le $mynum ]
num1 -gt num2 大于 [ 3 -gt $mynum ]
num1 -ge num2 大于或等于 [ 3 -ge $mynum ]