流程控制
if 流程控制
基本语法
-
单分支结构
if [];then fi
-
两分支结构
if [];then else fi
-
多分支结构
if [];then elif[];then elif[];then else fi
简单使用
-
文件比较
参数 说明 示例 -e 如果文件或者目录存在则为真 [-e file] -s 如果文件存在且至少有一个字符则为真 [-s file] -d 如果文件存在且为目录则为真 [-d file] -f 如果文件存在且为普通文件则为真 [-f file] -r 如果文件存在且可读则为真 [-r file] -w 如果文件存在且可写则为真 [-w file] -x 如果文件存在且可执行则为真 [-x file] -
整数比较
参数 说明 示例 -eq 等于且条件为真 [1 -eq 10] -ne 不等于则条件为真 [1 -ne 10] -gt 大雨则条件为真 [1 -gt 10] -lt 小于则条件为真 [1 -lt 10] -ge 大于等于则条件为真 [1 -ge 10] -le 小于等于则条件为真 [1 -le 10] -
字符串比较
参数 说明 示例 == 等于则条件为真 ["$a"=="$b"] != 不等于则条件为真 ["$a"!="$b"] -z 字符串长度为零则为真 [-z "$a"] -n 字符串长度不为空则为真 [-n "$a"] str1>str2 Str1>str2为真 [str1>str2] str1<str2 Str1<str2为真 [str1<str2] -
正则比较
1.单括号不支持正则比较
[ "$USER" =~ ^r ]; echo $? 输出:1
2.双中括号才可以使用正则比较
[[ "$USER" =~ ^r ]]; echo $? 输出:0
练习题
- 判断服务是否启动
- 查看内存或者磁盘使用情况,如果超过80%,则发邮件报警
- 根据学生录入成绩判断学生成绩优劣
- 判断变量是不是全是数字