1 字符串判断
str1 = str2 当两个串有相同内容、长度时为真 ,=号可换成==
str1 != str2 当串str1和str2不等时为真
str1 > str2 在字典排序中,若str1比str2靠前,则返回真
str1 < str2 在字典排序中,若str1比str2靠后,则返回真
-n str1 当串的长度大于0时为真(串非空)
-z str1 当串的长度为0时为真(空串)
str1 当串str1为非空时为真
2 数字的判断
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1大于int2为真
int1 -ge int2 int1大于等于int2为真
int1 -lt int2 int1小于int2为真
int1 -le int2 int1小于等于int2为真
3 文件的判断
-e file 当file指定的文件或目录存在时返回真
-u file 当file指定的文件存在,并且SUID位为1时返回真
-g file 当file指定的文件存在,并且SGID位为1时返回真
-k file 当file指定的文件存在,并且粘滞位为1时返回真
-h/-L file 当file指定的文件存在,并且文件类型是符号链接时返回真
-p file 当file指定的文件存在,并且是管道文件时返回真
-r file 用户可读为真
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-c file 文件为字符特殊文件为真
-b file 文件为块特殊文件为真
-s file 文件大小非0时为真
-t file_description 当文件描述符指定的设备为终端时为真。比如if [ -t 0 ]返回值为真(如果没有把0重定向到其它文件)。
-S file 当文件存在,且为套接字是返回真
-O file 当file指定的文件存在,并且该文件的拥有者是当前进程的执行者时,返回真
-G file 当file指定的文件存在,并且该文件的组是当前进程执行者所在组时,返回真
file1 -nt file2 当文件file1比file2新时,返回真
file1 -ot file2 当文件file1比file2旧时,返回真
3 复杂逻辑判断
-a 与
-o 或
! 非
4 字符串操作
VAR=${varible%/*} 将varible字符串中匹配/*的子串移除,并把剩余字符串赋值给VAR变量。
var=${var:-xxxx} 如果var变量为空,则赋值为xxxx;否则保持值不变