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

深圳市德莱亚电子有限公司 2026/09/09 17:28:12

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


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

黄冈网站建设宝安网站建设

Mac用户彻底告别NTFS读写限制:免费开源工具Nigate完全指南【免费下载链接】Free-NTFS-for-MacNigate,一款支持苹果芯片的Free NTFS f

2026/06/30 13:49:07

吉林网站建设潜江网站建设

✨目录一、系统概述和展示🎄1.1 摘要 🎈1.2 功能特性🎈1.3 技术栈🎈1.4 界面展示 🎈1.4.1 登录界面 &

2026/06/30 12:28:31

免费网站建设南充网站建设

婚纱摄影网站目录基于ssm + vue婚纱摄影网站系统一、前言二、系统功能演示三、技术选型四、其他项目参考五、代码参考六、测试参考七、最新计算机毕设选题推荐八、源码获取:基于ss

2026/06/30 13:11:04

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

VoxCPM语音克隆终极指南:零基础也能创造专属AI声音【免费下载链接】VoxCPM-0.5B项目地址: https://ai.gitcode.com/OpenBMB/VoxCPM-0.

2026/06/30 11:02:53

建设网站制作邢台网站建设

解锁阅读3.0的终极书源宝库【免费下载链接】最新1629个精品书源.json阅读3.0最新1629个精品书源.json阅读3.0项目地址: https://gitcode.com/open-sourc

2026/06/30 10:24:50

滁州网站建设大庆网站建设

第一章:3步完成Open-AutoGLM无缝对接,小白也能秒变技术高手准备工作:环境配置与依赖安装在开始对接前,确保本地已安装 Python 3

2026/06/30 12:17:00

衡水网站建设徐汇网站建设

博客写作素材:用M2FP生成AI绘画人物结构指导图🧩 M2FP 多人人体解析服务在AI绘画创作过程中,准确理解人物姿态与身体结构是提升作品质量的关键。然而&

2026/06/30 11:38:56

网站建设论坛睢宁网站建设

前端老哥的奇幻漂流:20G文件上传历险记大家好,我是那个"预算100元想造航天飞机"的陕西前端老哥。最近接了个外包,客户要求用原生JS实现20

2026/06/30 12:40:02

肇庆网站建设襄樊网站建设

PF 日志记录、监控与统计1. 引言控制网络是许多人关注的主要目标。要实现有效控制,就需要获取网络中发生的所有相关信息。幸运的是,PF 能够生成网络活动的日志数据,并且提供了丰富的选项来设置日志详细级

2026/06/30 12:24:01

合肥网站建设黄浦网站建设

如何在云服务器部署 PyTorch-CUDA-v2.7 用于大模型推理在大模型落地日益成为 AI 工程核心挑战的今天,一个常见但棘手的问题是:为什么同一个模型,

2026/06/30 13:09:04