大文豪贤斌学长▲和即将用到Shell的人们谈谈Shell运算符( 二 )
!=检测两个字符串是否相等 , 不相等返回true 。 [$x!=$y]返回true 。
-z检测字符串长度是否为0 , 为0返回true 。 [-z$x]返回false 。
-n检测字符串长度是否为0 , 非0返回true 。 [-n$x]返回true 。
str检测字符串是否为空 , 非空返回true 。 [$x]返回true 。
字符串赋值和整数赋值没有区别 , 而shell对变量弱化了 , 因此勿把字符串比较运算符当作整数比较运算符使用 。
文件测试运算符
文件测试运算符用于检测Unix文件的各种属性 。
属性检测描述如下:
操作符说明举例
-bfile检测文件是否是块设备文件 , 如果是 , 则返回true 。 [-b$file]返回false 。
-cfile检测文件是否是字符设备文件 , 如果是 , 则返回true 。 [-c$file]返回false 。
-dfile检测文件是否是目录 , 如果是 , 则返回true 。 [-d$file]返回false 。
-ffile检测文件是否是普通文件(既非目录 , 也非设备文件) , 如果是 , 则返回true 。 [-f$file]返回true 。
-gfile检测文件是否设置了SGID位 , 如果是 , 则返回true 。 [-g$file]返回false 。
-kfile检测文件是否设置了粘着位(StickyBit) , 如果是 , 则返回true 。 [-k$file]返回false 。
-pfile检测文件是否是有名管道 , 如果是 , 则返回true 。 [-p$file]返回false 。
-ufile检测文件是否设置了SUID位 , 如果是 , 则返回true 。 [-u$file]返回false 。
-rfile检测文件是否可读 , 如果是 , 则返回true 。 [-r$file]返回true 。
-wfile检测文件是否可写 , 如果是 , 则返回true 。 [-w$file]返回true 。
-xfile检测文件是否可执行 , 如果是 , 则返回true 。 [-x$file]返回true 。
-sfile检测文件是否为空(文件大小是否大于0) , 非空返回true 。 [-s$file]返回true 。
-efile检测文件(包括目录)是否存在 , 如果是 , 则返回true 。 [-e$file]返回true 。