Bash 脚本中的if...then...fi

在 Bash 脚本中,if...then...fi 是最基础也是最常用的条件语句结构,类似于其他语言中的 if...else 结构。

🧱 基本语法格式

  1. if 条件
  2. then
  3. 命令1
  4. 命令2
  5. fi

✅ 示例:

  1. if [ -f /etc/passwd ]
  2. then
  3. echo "文件存在"
  4. fi
这个例子判断 /etc/passwd 是否存在并且是个普通文件。

✨ 加上 else 的格式:

  1. if 条件
  2. then
  3. 命令1
  4. else
  5. 命令2
  6. fi

示例:

  1. if [ "$USER" = "root" ]
  2. then
  3. echo "你是超级用户"
  4. else
  5. echo "你不是 root 用户"
  6. fi

🌈 多条件:if...elif...else...fi

  1. if 条件1
  2. then
  3. 命令1
  4. elif 条件2
  5. then
  6. 命令2
  7. else
  8. 命令3
  9. fi

示例:

  1. if [ "$1" = "start" ]
  2. then
  3. echo "开始服务"
  4. elif [ "$1" = "stop" ]
  5. then
  6. echo "停止服务"
  7. else
  8. echo "未知命令"
  9. fi

🧠 条件表达式说明(最常用):

表达式含义
[ -f FILE ]文件存在且是普通文件
[ -d DIR ]目录存在
[ -z STRING ]字符串长度为 0
[ STRING1 = STRING2 ]两个字符串相等
[ NUM1 -eq NUM2 ]两个整数相等
[ NUM1 -lt NUM2 ]NUM1 小于 NUM2
[ 条件 ] && [ 条件 ]多个条件 "并且"

❗注意事项:

  • 方括号两边一定要留空格,如 [ "$USER" = "root" ](否则报错)
  • fiif 的结束标志(fiif 反过来)

🔧 小脚本示例:

  1. #!/bin/bash
  2. read -p "请输入一个数字: " num
  3. if [ "$num" -gt 100 ]; then
  4. echo "大于 100"
  5. elif [ "$num" -eq 100 ]; then
  6. echo "等于 100"
  7. else
  8. echo "小于 100"
  9. fi
添加新评论