字符串比较 | 结果 |
string1 = string2 | 如果两个字符串相同则结果为真 |
string1 != string2 | 如果两个字符串不同则结果为真 |
-n string | 如果字符串不为空则结果为真 |
-z string | 如果字符串为空(一个空串)则结果为真 |
算术比较 | 结果 |
expression1 –eq expression2 | 如果两个表达式相等则结果为真 |
expression1 –ne expression2 | 如果两个表达式不等则结果为真 |
expression1 –gt expression2 | 如果expression1大于expression2则结果为真 |
expression1 –ge expression2 | 如果expression1大于或等于expression2则结果为真 |
expression1 –lt expression2 | 如果expression1小于expression2则结果为真 |
expression1 –le expression2 | 如果expression1小于或等于expression2则结果为真 |
!expression | 如果表达式为假则结果为真,反之亦然 |
文件条件测试 | 结果 |
-d file | 如果文件是一个目录则结果为真 |
-e file | 如果文件存在则结果为真。要注意的是历史上-e选项是不可移植的,所以通常使用的是-f选项 |
-f file | 如果文件是一个普通文件则结果为真 |
-g file | 如果文件的SIG位被设置则结果为真 |
-r file | 如果文件可读则结果为真 |
-s file | 如果文件的长度不为0则结果为真 |
-u file | 如果文件的SUID位被设置则结果为真 |
-w file | 如果文件可写则结果为真 |
-x file | 如果文件可执行则结果为真 |
参数扩展 | 说明 |
${param:-default} | 如果param为空,就把它设置为default的值 |
${#param} | 给出param的长度 |
${param%word} | 从param的尾部开始删除与word匹配的最小部分,然后返回剩余部分 |
${param%%word} | 从param的尾部开始删除与word匹配的最大部分,然后返回剩余部分 |
${param#word} | 从param的头部开始删除与word匹配的最小部分,然后返回剩余部分 |
${param##word} | 从param的头部开始删除与word匹配的最小部分,然后返回剩余部分 |