掌握Linux Shell条件判断(从零开始学Shell脚本中的if语句)

V5主机测评

在 Linux 系统中,Shell 脚本是自动化任务的重要工具。而条件判断(Conditional Statements)则是让脚本具备“智能决策”能力的关键。无论你是刚接触 Linux 的小白,还是想巩固 Shell 编程基础的用户,本文都将带你一步步理解并掌握 Linux Shell 条件判断 的核心用法。

掌握Linux Shell条件判断(从零开始学Shell脚本中的if语句)

什么是 Shell 条件判断?

简单来说,条件判断就是让脚本根据某个条件的真假来决定执行哪一段代码。比如:“如果文件存在,就删除它;否则,提示用户文件不存在。” 这种逻辑在日常运维和开发中非常常见。

基本语法:if 语句

Shell 中最常用的条件结构是 if 语句,其基本格式如下:

if [ 条件 ]then    # 条件为真时执行的命令fi  

也可以写成一行形式(适合简单判断):

if [ 条件 ]; then 命令; fi  

常用条件测试类型

Shell 支持多种条件测试,主要分为三类:

  • 文件测试:检查文件是否存在、是否可读等
  • 字符串测试:比较字符串是否相等、是否为空等
  • 数值测试:比较两个数字的大小

1. 文件测试示例

if [ -f /etc/passwd ]; then    echo "文件存在且是普通文件"fi  

常用文件测试操作符:

  • -f file:文件存在且为普通文件
  • -d dir:目录存在
  • -r file:文件可读
  • -w file:文件可写
  • -x file:文件可执行

2. 字符串测试示例

name="Linux"if [ "$name" = "Linux" ]; then    echo "欢迎使用 Linux!"fi  

注意:字符串比较要用双引号包裹变量,防止空值导致语法错误。

3. 数值测试示例

age=25if [ $age -gt 18 ]; then    echo "你已成年"fi  

常用数值比较操作符:

  • -eq:等于
  • -ne:不等于
  • -gt:大于
  • -lt:小于
  • -ge:大于等于
  • -le:小于等于

完整 if-elif-else 结构

当需要处理多个条件时,可以使用 elifelse

score=85if [ $score -ge 90 ]; then    echo "优秀"elif [ $score -ge 70 ]; then    echo "良好"else    echo "需努力"fi  

实战小例子:备份脚本

下面是一个简单的备份脚本,展示了如何结合文件测试与条件判断:

#!/bin/bashBACKUP_DIR="/backup"SOURCE_FILE="/home/user/data.txt"if [ ! -d "$BACKUP_DIR" ]; then    mkdir -p "$BACKUP_DIR"    echo "创建备份目录:$BACKUP_DIR"fiif [ -f "$SOURCE_FILE" ]; then    cp "$SOURCE_FILE" "$BACKUP_DIR/"    echo "备份成功!"else    echo "源文件不存在,无法备份。"fi  

小贴士

  • 方括号 [ ]test 命令的简写形式,前后必须有空格!
  • 现代 Shell(如 bash)也支持 [[ ]],功能更强大且更安全。
  • 善用 echo $? 查看上一条命令的退出状态(0 表示成功,非 0 表示失败)。

总结

通过本文,你已经掌握了 Linux Shell 条件判断 的基本用法,包括 Shell 脚本 if 语句bash 条件测试 的各种类型,以及如何编写实用的条件逻辑。这些知识是 Shell 编程入门 的基石,建议多动手练习,逐步提升自动化脚本编写能力。

现在,打开你的终端,新建一个 .sh 文件,试着写一个属于你自己的条件判断脚本吧!

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。