| 判断操作符 | 判断为真的条件 | 
| 字符串判断 |  | 
| [ stringA=stringB ] | stringA等于stringB | 
| [ stringA==stringB ] | stringA等于stringB | 
| [ stringA!=stringB ] | stringA不等于stringB | 
| [ string ] | string不为空 | 
| [ -z string ] | string长度为0 | 
| [ -n string ] | string长度不为0 | 
| 逻辑判断 |  | 
| [ stringA -a stringB ] | stringA和stringB都是真 | 
| [ stringA -o stringB ] | stringA或stringB是真 | 
| [ !string ] | string不为真 | 
| 逻辑判断(复合判断) |  | 
| [[ pattern1 && pattern2 ]] | pattern1和pattern2都是真 | 
| [[ pattern1 || pattern2 ]] | pattern1或pattern2是真 | 
| [[ !pattern ]] | pattern不为真 | 
| 整数判断 |  | 
| [ intA -eq intB ] | intA等于intB | 
| [ intA -ne intB ] | intA不等于intB | 
| [ intA -gt intB ] | intA大于intB | 
| [ intA -ge intB ] | intA大于等于intB | 
| [ intA -lt intB ] | intA小于intB | 
| [ intA -le intB ] | intA小于等于intB | 
| 文件判断中的二进制操作 |  | 
| [ fileA -nt fileB ] | fileA比fileB新 | 
| [ fileA -ot fileB ] | fileA比fileB旧 | 
| [ fileA -ef fileB ] | fileA和fileB有相同的设备或者inode值 | 
| 文件检验 |  | 
| [ -d $file ] or [[ -d $file ]] | file为目录且存在时为真 | 
| [ -e $file ] or [[ -e $file ]3] | file为文件且存在时为真 | 
| [ -f $file ] or [[ -f $file ]] | file为非目录普通文件存在时为真 | 
| [ -s $file ] or [[ -s $file ]] | file文件存在, 且长度不为0时为真 | 
| [ -L $file ] or [[ -L $file ]] | file为链接符且存在时为真 | 
| [ -r $file ] or [[ -r $file ]] | file文件存在且可读时为真 | 
| [ -w $file ] or [[ -w $file ]] | file文件存在且可写时为真 | 
| [ -x $file ] or [[ -x $file ]] | file文件存在且可执行时为真 |