shell(三)if流程控制

流程控制

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%,则发邮件报警
  • 根据学生录入成绩判断学生成绩优劣
  • 判断变量是不是全是数字
原文地址:https://www.cnblogs.com/codeBang/p/12046125.html