condition1 -a condition2 如果条件1和条件2均成立
condition1 -o condition2 如果条件1或条件2成立
condition && run1 || run2 如果条件成立执行run1,不成立执行run2
文件属性判断
-a file 如果文件存在
-b file 如果文件存在,且该文件是区域设备文件
-c file 如果文件存在,且该文件是字符设备文件
-d file 如果文件存在,且该文件是目录
-e file 如果文件存在
-c file 如果文件存在,且该文件是一般文件
-g file 如果文件存在,且该文件设立了set group id属性
-h file 如果文件存在,且该文件是符号链接文件
-k file 如果文件存在,且该文件设立了sticky位的属性
-p file 如果文件存在,且该文件是管道文件(FIFO)
-r file 如果文件存在,且该文件具有客读属性
-s file 如果文件存在,且该文件的大小大于0
-t file 如果文件描述符是开启的,且链接了某个终端
-u file 如果文件存在,且该文件设立了set user id属性
-w file 如果文件存在,且该文件有可写入的属性
-x file 如果文件存在,且该文件有可执行的属性
-O file 如果文件存在,且该文件为有效的使用者id所拥有
-G file 如果文件存在,且该文件为有效的群组id所拥有
-L file 如果文件存在,且该文件是符号链接文件
-S file 如果文件存在,且该文件是socket文件
-N file 如果文件存在,且该文件自上次读取后,曾修改过
-file1 -nt file2 如果file1比file2新;或file1存在,但file2不存在
-file1 -ot file2 如果file1比file2旧;或file2存在,但file1不存在
-file1 -ef file2 如果file1和file2参考到相同的设备和inode编号
字符串属性判断
-z string 如果字符串长度为0(即空字符串)
-n string 如果字符串长度不为0(即非空字符串)
string 如果字符串长度不为0(即非空字符串)
string1 == string2 如果两个字符串相同
string1 = string2 如果两个字符串相同
string1 != string2 如果两个字符串不相同
string1 > string2 如果两个字符串1大于字符串2
string1 < string2 如果两个字符串1小于字符串2
算式条件判断
args1 -eq args2 如果参数1和参数2相等
args1 -ne args2 如果参数1和参数2不相等
args1 -lt args2 如果参数1小于参数2
args1 -le args2 如果参数1小于或等于参数2
args1 -gt args2 如果参数1大于参数2
args1 -ge args2 如果参数1大于或等于参数2
condition1 -o condition2 如果条件1或条件2成立
condition && run1 || run2 如果条件成立执行run1,不成立执行run2
文件属性判断
-a file 如果文件存在
-b file 如果文件存在,且该文件是区域设备文件
-c file 如果文件存在,且该文件是字符设备文件
-d file 如果文件存在,且该文件是目录
-e file 如果文件存在
-c file 如果文件存在,且该文件是一般文件
-g file 如果文件存在,且该文件设立了set group id属性
-h file 如果文件存在,且该文件是符号链接文件
-k file 如果文件存在,且该文件设立了sticky位的属性
-p file 如果文件存在,且该文件是管道文件(FIFO)
-r file 如果文件存在,且该文件具有客读属性
-s file 如果文件存在,且该文件的大小大于0
-t file 如果文件描述符是开启的,且链接了某个终端
-u file 如果文件存在,且该文件设立了set user id属性
-w file 如果文件存在,且该文件有可写入的属性
-x file 如果文件存在,且该文件有可执行的属性
-O file 如果文件存在,且该文件为有效的使用者id所拥有
-G file 如果文件存在,且该文件为有效的群组id所拥有
-L file 如果文件存在,且该文件是符号链接文件
-S file 如果文件存在,且该文件是socket文件
-N file 如果文件存在,且该文件自上次读取后,曾修改过
-file1 -nt file2 如果file1比file2新;或file1存在,但file2不存在
-file1 -ot file2 如果file1比file2旧;或file2存在,但file1不存在
-file1 -ef file2 如果file1和file2参考到相同的设备和inode编号
字符串属性判断
-z string 如果字符串长度为0(即空字符串)
-n string 如果字符串长度不为0(即非空字符串)
string 如果字符串长度不为0(即非空字符串)
string1 == string2 如果两个字符串相同
string1 = string2 如果两个字符串相同
string1 != string2 如果两个字符串不相同
string1 > string2 如果两个字符串1大于字符串2
string1 < string2 如果两个字符串1小于字符串2
算式条件判断
args1 -eq args2 如果参数1和参数2相等
args1 -ne args2 如果参数1和参数2不相等
args1 -lt args2 如果参数1小于参数2
args1 -le args2 如果参数1小于或等于参数2
args1 -gt args2 如果参数1大于参数2
args1 -ge args2 如果参数1大于或等于参数2