专业网站建设容桂网站建设

无锡右丰嘉美时装有限公司 2026/09/09 17:30:41

Shell 中的判断语句(Conditionals)是控制脚本逻辑的核心。虽然它的功能和 Python 的if类似,但语法结构非常严谨,尤其是空格的要求极其严格。

我们可以把 Shell 的判断语句拆解为:结构比较符文件检查三个部分。


1. 基础语法结构

Shell 的if语句必须以if开头,以fi(if 的反写)结尾。

if[条件];then# 条件为真时执行elif[其他条件];then# 其他条件为真时执行else# 以上都不满足时执行fi

⚠️ 致命细节:[之后和]之前必须有空格

  • 错误:if [$a==$b]
  • 正确:if [ $a == $b ]

2. 数值比较(重点:不同于 Python)

在 Shell 的[ ]表达式中,数字比较不使用><,而是使用字母缩写:

符号含义对应英文Python 对应
-eq等于equal==
-ne不等于notequal!=
-gt大于greaterthan>
-ge大于等于greaterequal>=
-lt小于lessthan<
-le小于等于lessequal<=

例子:

if[$NUM_DEVICES-gt1];thenecho"正在使用多卡训练"fi

3. 字符串比较

字符串比较则使用我们熟悉的符号:

  • ===:等于(注意两边空格)
  • !=:不等于
  • -z:判断字符串是否为(常用语检查变量是否定义)

例子:

if[-z"$EXP_NAME"];thenecho"错误:实验名称不能为空!"exit1fi

4. 文件检查(Shell 的拿手好戏)

这是你在train.sh中最常用的功能,专门用来判断磁盘上的文件状态:

选项作用
-f判断是否为文件且存在 (file)
-d判断是否为目录且存在 (directory)
-e判断是否存在(exists),不管是文件还是目录
-r/-w/-x判断是否有读/写/执行权限

例子(结合你的需求):

# 判断 stats.json 是否存在if[-f"stats.json"];thenecho"文件已找到"elseecho"文件不存在"fi

5. 逻辑组合

如果你需要同时判断两个条件,可以使用:

  • -a(and):逻辑与
  • -o(or):逻辑或

或者使用更现代的[[ ]](双中括号)结构,它支持&&||

# 如果是文件 并且 变量 a 大于 10if[[-f"$FILE"&&$a-gt10]];thenecho"满足双重条件"fi

6. 一个“潜规则”:$?

在 Shell 中,每条命令执行完都会返回一个状态码,存储在$?中。

  • 0:代表成功(True)
  • 非 0:代表失败(False)

这和 Python 的逻辑(0 为假,非 0 为真)是完全相反的,因为在系统层面,报错码通常是 1, 2, 3…,而 0 标志着一切正常。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

泰安网站建设中国建设部网站

它是一个开源框架,内置了完善的代理(Agent)架构,并且可以和各种模型、工具、外部系统无缝集成——你只需要写很少的代码,就能搭出

2026/06/30 14:09:39

医疗网站建设湖南营销型网站建设

Campus-iMaoTai智能预约系统:告别手动抢购烦恼,实现全自动化茅台预约【免费下载链接】campus-imaotaii茅台app自动预约,每日自动预约

2026/06/30 12:04:29

深圳网站建设宿迁网站建设

Windows Defender终极移除指南:3步彻底禁用系统安全组件【免费下载链接】windows-defender-removerA tool which is uses to re

2026/06/30 11:24:55

学校网站建设浙江网站建设

Lychee照片管理终极指南:打造你的私人云相册【免费下载链接】LycheeA great looking and easy-to-use photo-management-system

2026/06/30 12:32:32

网站建设哪家公司好湖南营销型网站建设

Kotaemon支持方言识别与应答尝试在智能客服系统日益普及的今天,一个现实问题逐渐浮现:当用户操着一口浓重的粤语、闽南话或四川方言拨通银行热线时,AI 能否

2026/06/30 12:28:31

网站建设费用布吉网站建设

全网页截图解决方案:告别传统截图的局限性【免费下载链接】full-page-screen-capture-chrome-extensionOne-click full page scre

2026/06/30 13:42:37

海淀网站建设恩施网站建设

兼容是对企业历史投资的尊重是确保业务平稳过渡的基石然而这仅仅是故事的起点在数字化转型的深水区,企业对数据库的需求早已超越“语法兼容”的基础诉求。无论是核心业务系统的稳定运行,

2026/06/30 13:42:07

网站建设费用网站规划与建设

Path of Building PoE2珠宝构建:从实战案例到思维升级的完整路径【免费下载链接】PathOfBuilding-PoE2项目地址: https://gitcode.com

2026/06/30 11:34:26

深圳网站建设公司网站建设知识

Cadence许可证心跳机制分析与超时优化设置你是不是在使用Cadence过程中,遇到了许可证过期导致无法正常使用的情况?别着急,今天我们就来聊聊这个常见的问

2026/06/30 14:08:09

房产网站建设网站建设网站建设

1.面向对象vs面向过程如果是制作普通的计算器,我们可以面面俱到的把每一个可能会出现的计算过程通过代码来全部实现,但是,随着东西越来越复杂,比如

2026/06/30 09:58:17