[Shell编程学习路线]——if条件语句(单,双,多分支结构)详细语法介绍

🏡作者主页:点击!

🛠️Shell编程专栏:点击!

⏰️创作时间:2024年6月17日7点50分

🀄️文章质量:95分


文章目录

------------前言------------

💯趣站💯

[1. 单分支 if 语句](#1. 单分支 if 语句)

示例

[2. 双分支 if 语句](#2. 双分支 if 语句)

示例

[3. 多分支 if 语句](#3. 多分支 if 语句)

示例

条件判断

[结合 bc 处理浮点数比较](#结合 bc 处理浮点数比较)


------------前言------------

条件语句是编程中的基本构建块之一,**if语句在Shell脚本中起着至关重要的作用。通过if语句,你可以根据不同的条件执行不同的代码,从而使脚本具备决策能力和灵活性。**本篇指南将详细介绍Shell中的if条件语句,包括单分支、双分支和多分支结构,帮助你掌握条件判断的基本语法和使用技巧。无论是简单的判断还是复杂的条件组合,这里都有你需要的知识。让我们一同学习如何编写更智能、更高效的Shell脚本吧!

在学习Shell编程时,掌握if条件语句是非常关键的一步。if语句能够让你根据不同的条件来控制程序的行为,从而实现更灵活、更强大的脚本。通过学习if条件语句,你将能够更好地理解和利用Shell脚本的逻辑结构,为进一步学习Shell编程打下坚实的基础。

💯趣站💯

前些天发现了一个巨牛的🤖人工智能学习网站,通俗易懂,风趣幽默,忍不住粉香一下给大家,人工智能, 机器算法等...... 点击跳转!https://www.captainbed.cn/sis/

1. 单分支 if 语句

单分支 if 语句用于在条件满足时执行一段代码,而在条件不满足时不执行任何操作。

结构

bash 复制代码
if [ condition ]; then
    # 当 condition 为真时执行的命令
fi
示例

示例 1: 判断一个数字是否为正数

bash 复制代码
#!/bin/bash

number=5

if [ $number -gt 0 ]; then
    echo "$number 是正数"
fi

实列2

例如,有些特权命令操作要求以 root用户执行,如果当前用户不是root,那么再执行这些命令就没有必要(肯定会失败),针对这种情况,在脚本中可以先判断当前用户是不是root,如果不是则报错并执行"exit 1"命令退出脚本(1表示退出后的返回状态值),而不再执行其他代码。

bash 复制代码
#!/bin/bash
if [ $USER != 'root' ];then
echo '你的权限不够'
exit 1
fi

2. 双分支 if 语句

双分支 if 语句用于在条件满足时执行一段代码,在条件不满足时执行另一段代码。

结构

bash 复制代码
if [ condition ]; then
    # 当 condition 为真时执行的命令
else
    # 当 condition 为假时执行的命令
fi
示例
  • 示例 1: 判断一个数字是正数还是非正数
bash 复制代码
#!/bin/bash
​
number=-3
​
if [ $number -gt 0 ]; then
    echo "$number 是正数"
else
    echo "$number 是非正数"
fi
复制代码
示例 2: 检查文件是否存在,如果不存在则创建文件 
bash 复制代码
#!/bin/bash

file="example.txt"

if [ -f "$file" ]; then
    echo "$file 存在"
else
    touch "$file"
    echo "$file 已创建"
fi

3. 多分支 if 语句

多分支 if 语句用于在多种条件下执行不同的代码段。可以使用 elif 来增加多个条件。

结构

bash 复制代码
if [ condition1 ]; then
    # 当 condition1 为真时执行的命令
elif [ condition2 ]; then
    # 当 condition2 为真时执行的命令
elif [ condition3 ]; then
    # 当 condition3 为真时执行的命令
else
    # 当所有条件都不满足时执行的命令
fi
示例
  • 示例 1: 判断一个数字是正数、负数还是零
bash 复制代码
#!/bin/bash

number=0

if [ $number -gt 0 ]; then
    echo "$number 是正数"
elif [ $number -lt 0 ]; then
    echo "$number 是负数"
else
    echo "$number 是零"
fi

示例 2: 检查文件的类型(普通文件、目录、其他)

bash 复制代码
#!/bin/bash

file="example.txt"

if [ -f "$file" ]; then
    echo "$file 是一个普通文件"
elif [ -d "$file" ]; then
    echo "$file 是一个目录"
else
    echo "$file 是其他类型"
fi

条件判断

if 语句中,条件判断可以使用多种测试操作符,包括但不限于:

  • 文件测试操作符:

    • -f filename:判断是否为普通文件

    • -d directory:判断是否为目录

    • -e filename:判断文件或目录是否存在

  • 数值比较操作符:

    • -eq:等于

    • -ne:不等于

    • -lt:小于

    • -le:小于或等于

    • -gt:大于

    • -ge:大于或等于

  • 字符串比较操作符:

    • =:等于

    • !=:不等于

    • -z string:字符串长度为零

    • -n string:字符串长度非零

结合 bc 处理浮点数比较

在处理浮点数比较时,可以使用 bc 进行计算和比较,例如:

bash 复制代码
#!/bin/bash

value1=4.5
value2=5.0

if (( $(echo "$value1 > $value2" | bc -l) )); then
    echo "$value1 大于 $value2"
else
    echo "$value1 不大于 $value2"
fi

"成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

相关推荐
2601_9499506313 分钟前
练题簿在线练题全流程:从资料导入到模拟考试与错题复盘
学习·考研·小程序·刷题·小程序推荐
云计算练习生15 分钟前
什么是系统调用?为什么程序访问硬件必须经过它
linux·windows·操作系统·系统调用·操作系统原理
别动我齐刘海32 分钟前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
科技研学社43 分钟前
自动化缝制升级:支撑产业海外转移,降低建厂用工门槛
人工智能·自动化
闲云野鹤在人间1 小时前
docker 入门 | 第7章 容器监控 和 第8章 容器日志 详解
运维·docker·容器·架构·云计算
亚川楼宇自控系统数据中心厂家1 小时前
IBMS 集成如何打通数据中心的子系统数据孤
运维
玄芯散人1 小时前
【筑基·059】Linux命令行入门:工程师的操作系统
linux·操作系统·命令行
半仙白桑1 小时前
内核篇第二讲:Linux exec 函数族详解
linux·linux驱动
AR-26710-1 小时前
Linux Day7——建组/用户、umask、Python脚本
linux·python
蓝速科技1 小时前
桌面双屏翻译机量产调试:三类场景兼容性破局方案丨蓝速科技
运维·数据库·人工智能·科技·技术分享