跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Shell 脚本基础:参数校验与退出状态码解析

Shell 脚本中常用 $# 获取参数总数,结合 -ne 等比较符进行条件判断。若脚本执行失败或命令未成功,可通过 $? 获取退出状态码,0 代表成功,非 0 代表失败。掌握这些基础变量有助于编写健壮的自动化运维脚本。

1951018925发布于 2019/1/10更新于 2026/6/1027 浏览
Shell 脚本基础:参数校验与退出状态码解析

在编写 Shell 脚本时,参数的校验和状态的判断是保证脚本健壮性的关键。很多时候我们只关注了逻辑实现,却忽略了输入参数的合法性检查。

参数个数的判断

Shell 脚本中有一个特殊的变量 $#,它表示传递给脚本或函数的参数总数。比如在执行 ./script.sh arg1 时,$# 的值就是 1。如果我们希望脚本必须接收且仅接收一个参数,就可以用如下语句进行校验:

if [ $# -ne 1 ]; then
    echo "Usage: $0 <arg>"
    exit 1
fi

这里的 -ne 代表'不等于'(Not Equal)。如果参数个数不是 1,脚本就会进入错误处理流程。

常见的整数比较操作符

除了判断参数个数,脚本中经常需要对数字进行比较。以下是常用的比较符号,注意方括号内需要保留空格:

操作符含义示例
-eq等于if [ "$a" -eq "$b" ]
-ne不等于if [ "$a" -ne "$b" ]
-gt大于if [ "$a" -gt "$b" ]
-ge大于等于if [ "$a" -ge "$b" ]
-lt小于if [ "$a" -lt "$b" ]
-le小于等于if [ "$a" -le "$b" ]

对于更复杂的比较,也可以使用双括号结构,支持 <、> 等符号:

(( a < b ))
(( a >= b ))

退出状态码

最后别忘了 $? 这个变量。它记录了上一个命令执行的退出状态。通常 0 表示成功,任何非 0 值都意味着某种程度的失败。在编写自动化任务时,利用 $? 可以方便地判断前一步骤是否完成,从而决定后续流程。

目录

  1. 参数个数的判断
  2. 常见的整数比较操作符
  3. 退出状态码
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 绘画实战指南:从提示词到高质量图像生成
  • Fooocus 部署实战:本地手动配置与云平台方案对比
  • Fast-GitHub 浏览器插件安装与配置指南
  • Virt-A-Mate (VAM) 虚拟现实交互软件技术特性介绍
  • 基于 ComfyUI 工作流的 Stable Diffusion 服装替换指南
  • LightRAG - 更快更便宜的 GraphRAG 技术详解
  • Flutter pathfinding 库在 OpenHarmony 上的适配实战与性能优化
  • Flutter 三方库 flutter_dropzone 在鸿蒙端的适配实践
  • AI 产品经理学习路线:从零基础入门到精通指南
  • AI 大模型助力专利翻译,妙算翻译亮相国际论坛
  • Deepyr 在 OpenHarmony 上的适配与实战指南
  • WSL2 Ubuntu 部署 llama.cpp 指南
  • Windows 23H2 Copilot 关闭方案:任务栏隐藏与注册表禁用
  • Android 工程师面试准备指南:核心知识点与实战技巧
  • Linux 多路转接技术详解
  • Virt-A-Mate (VAM) v1.22 虚拟实境软件介绍
  • VR 多相电源架构、选型与设计要点详解
  • Java JDK 下载安装与使用全流程图文教程
  • VSCode Copilot 接入智谱 GLM-5.1 实战指南
  • Claude Code、ChatGPT 与 Copilot 的核心区别解析

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online