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

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

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

1951018925发布于 2019/1/10更新于 2026/10/2496 浏览
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. 退出状态码

更多推荐文章

查看全部
  • C++ STL 有序关联容器详解:set、map 及其变体用法
  • 程序员发现以太坊关键漏洞获赏 1272 万元
  • Python 读取图片 EXIF 信息解析拍摄地理位置与时间
  • DeepSeek 团队揭秘:清北应届生撑起大模型技术
  • C++ 动态规划:第 N 个泰波那契数与三步问题
  • 现代前端 UI 工作流:利用 AI 技能提升设计落地效率
  • UI UX Pro Max:AI 驱动的现代前端 UI 工作流实战
  • 大模型 RAG 架构落地的十大核心挑战
  • 图论寻路算法:深度优先搜索 (DFS) 实现
  • DeepSeek 使用完全指南:10 个高效对话与隐藏技巧
  • 基于改进蝙蝠优化算法的无人机 3D 路径规划研究
  • Windows 安装 Docker Desktop 详细指南
  • 基于 OpenClaw 与飞书构建 AI 新闻推送机器人
  • 基于本地大语言模型与 LangChain 构建免费 AI 搜索问答助手
  • JavaScript 贪吃蛇游戏开发实战:移动逻辑与渲染优化
  • 基于 Jetson 与 OpenClaw 搭建飞书远程交互系统
  • C# WinForm 调用 HeyGem 核心算法 DLL 封装实践
  • Llama 3.1 本地部署与远程访问配置指南
  • C++ 二叉搜索树:原理与增删查实现详解
  • Llama-Factory 集成 Wandb 监控:跨团队训练协作

相关免费在线工具

  • 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