shell中经常会使用到条件测试的语句,常见的条件测试语句如下:
| 条件语句 | 说明 |
|---|---|
| test 条件表达式 | test和条件表达式之间至少有一个空格 |
| [ 条件表达式 ] | []和条件表达式之间至两边各少有一个空格,和test等价 ,&&、||,>、< 不可以运用在[],可以使用-a、-o、-gt、-lt |
| [[ 条件表达式 ]] | [[]] 和条件表达式之间至两边各少有一个空格 ,&&、||,>、< 可以运用在[[]] |
| ((条件表达式)) | (())和条件表达式之间不需要空格 |
常用文件测试语句
| 条件语句 | 说明 |
|---|---|
| -d | d表示directory,判断目录是否存在,存在条件满足 |
| -f | f表示文件,文件是否存在 |
| -e | e表示exists,判断文件是否存在,这里不区分是文件还是文件件 |
| -r | r表示read,文件存在且可读 |
| -s | s表示size,文件存在且大小不为0 |
| -w | w表示write,文件存在且可写 |
| -x | x表示executable,文件存在且可执行 |
| -L | L表示Line,文件存在并且是链接文件 |
| f1 -nt f2 | nt表示newer than,文件f1比文件f2新则为真,根据文件的修改时间来计算新旧 |
| f1 -ot f2 | ot表示为older than,文件f1比文件f2旧为真 |
整数比较:
| 在 []、test和[[]]使用的比较符号 | 在(())和[[]]使用 | 说明 |
|---|---|---|
| -eq | == 或 = | 相等,eq表示equal |
| -ne | != | 不相等,ne表示 not equal |
| -gt | > | 大于,gt表示greater than |
| -ge | >= | 大于等于,ge表示greater equal |
| -lt | < | 小于,lt表示less than |
| -le | <= | 小于等于,le表示 less equal |
逻辑操作符:
| 在 []、test使用的比较符号 | 在(())和[[]]使用 | 说明 |
|---|---|---|
| -a | && | and,与,两边条件成立结果为true |
| -o | || | or,或,两边条件成立一个,结果为true |
| ! | ! | not,非,两边条件相反,结果为true |
本文深入讲解了Shell中常用的条件测试语句,包括文件测试、整数比较和逻辑操作符的用法,如[-d, -f, -r, -s, -w, -x, -L, f1-ntf2, f1-otf2, -eq, -ne, -gt, -ge, -lt, -le, -a, -o, !],以及在不同条件表达式([, test, [[, ((])中的适用性。
461

被折叠的 条评论
为什么被折叠?



