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

北京聚立新创网络科技有限公司 2026/09/09 20:51:55

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 标志着一切正常。


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

长安网站建设湘潭网站建设

第一章:Docker MCP 网关负载均衡的核心概述在现代微服务架构中,Docker 容器化技术与 MCP(Management Control Plane&

2026/06/30 13:10:34

网站建设价格潜江网站建设

容器存储技术:Flocker、GlusterFS、Ceph、NFS及Docker卷的深入解析1. Flocker数据持久化与迁移Flocker是一个强大的工具,可实现容器数据的持久化和迁移。下面将介绍

2026/06/30 13:42:37

郑州网站建设网站建设素材

中超联赛刚落下帷幕,转会市场的波澜却已悄然掀起。最震撼的一击来自西南——升班马云南玉昆被曝出新赛季预算高达3亿元,已锁定前浙江功勋主帅乔迪,并正全力追逐包括韦

2026/06/30 11:22:55

胶州网站建设湖北网站建设

快速体验打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容:在快马平台设计一个用于智能手环的LDO电路。要求:1. 输入电

2026/06/30 11:54:58

大连网站建设宝安网站建设

如何采集高质量音频样本用于 EmotiVoice 声音克隆?在虚拟主播深夜直播带货、AI 配音员为有声书一口气录制十小时不喘气的今天,语音合成早已不是“能说话”那么简单。用

2026/06/30 13:29:36

企业网站建设方案开县网站建设

魔兽争霸3兼容性修复工具WarcraftHelper:让经典游戏完美适配现代系统【免费下载链接】WarcraftHelperWarcraft III Helper , support 1

2026/06/30 13:19:05

黄石网站建设商业网站建设

摘要随着教育信息化的快速发展,传统的手工选课方式已无法满足高校教学管理的需求。学生选课系统作为高校教务管理的重要组成部分,能够有效解决选课流程繁琐、数据管理效率低下等问题。

2026/06/30 11:06:23

合肥网站建设网站建设要多少钱

第一章 设计背景与核心需求汽车雨刷器是保障雨天行车安全的关键部件,传统雨刷器多采用机械调速或简单继电器控制,存在调速档位少、响应滞后、无法根据雨量自动调节的问题࿰

2026/06/30 11:44:57

做网站建设网站建设要求

GTKWave崩溃终极解决方案:快速修复VCD文件解析错误【免费下载链接】gtkwaveGTKWave is a fully featured GTK+ based wave v

2026/06/30 12:20:30

西安网站建设婚纱摄影网站建设

AI原生应用函数调用:从踩坑到精通的7个高效策略副标题:用LangChain+OpenAI实践,解决90%的调用痛点摘要/引言去年我做第一个AI原生应

2026/06/30 11:17:54