一、比较字符
| 符号 | 含义 |
|---|---|
| -eq | 等于 |
| -ne | 不等于 |
| -gt | 大于 |
| -lt | 小于 |
| -le | 小于等于 |
| -ge | 大于等于 |
| -z | 空串 |
| = | 两个字符相等 |
| != | 两个字符不等 |
| -n | 非空串 |
二、条件判断
1、字符串判断
| 内容 | 解析 |
|---|---|
| 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、文件相关的if判断条件语句
| 内容 | 解析 |
|---|---|
| -r file | 用户可读为真 |
| -w file | 用户可写为真 |
| -x file | 用户可执行为真 |
| -f file | 文件为正规文件为真 |
| -d file | 文件为目录为真 |
| -c file | 文件为字符特殊文件为真 |
| -b file | 文件为块特殊文件为真 |
| -s file | 文件大小非0时为真 |
| -t file | 当文件描述符(默认为1)指定的设备为终端时为真 |
| -e file | 如果file存在为真 如:[ -e /var/log/syslog ] |
| file1-nt file2 | 如果file1比 file2新,则为真 如:[ /tmp/install/etc/services -nt /etc/services ] |
| file1-ot file2 | 如果file1比 file2旧,则为真 如:[ /boot/bzImage -ot arch/i386/boot/bzImage ] |
4、复杂逻辑判断
| 内容 | 解析 |
|---|---|
| -a | 与 |
| && | 与 |
| -o | 或 |
| ! | 非 |
|| 或
在[ ]中不能用&& ||
三、语法结构
1、单分支语句结构
if [ 条件表达式 ]; then
指令
fi
2、双分支语句结构
if [ 条件表达式 ]; then
指令一
else
指令二
fi
注意:
表达式前后必须各有一个空格,否则会执行报错。
1282

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



