Bash 条件表达式(Bash Conditional Expressions)

Bash 条件表达式分三类:文件,文本(字符串),数值。

文件类

先看一个例子:判断文件是否存在?

#!/bin/bash
if [ -e helloworld.sh ]
then
   echo "helloworld.sh exists!"
else
   echo "helloworld.sh does not exists!"
fi

这里用到的操作符是 -e

关于文件的操作符,主要都是一元操作符,也有几个二元的,如下:

*[1]

block special file, 块设备:如果一个设备是随机(无序的)访问的,那么它就属于块设备。如:硬盘,光驱,U盘。

character special file, 字符设备:如果一个硬件设备是以字符流的方式被访问的话,那就应该将它归于字符设备。如:键盘。

(ref: http://blog.itpub.net/10522540/viewspace-198228)

*[2]

regular file, regular的意思就是不是device file, 不是socket,不是pipe,不是。。。剩下的就是regular file,比如一个text 文件,一个可执行文件,一个图片……等等。

(by sakulagi from http://bbs.chinaunix.net/thread-2251937-1-1.html)

文本类

数值类

Bash 仅支持整数(正数,负数和0),数值相关的条件操作符,都是二元操作符,列表如下:

注意在使用上表第二列等效的操作符时,符号两边的数字要有空格。

其他

参考

http://www.gnu.org/software/bash/manual/bashref.html#Bash-Conditional-Expressions