🔢

Shell 退出码

Shell/进程退出码含义速查。

本地处理 · 不上传

加载工具中…

相关:退出码 · exit code · shell · linux

Shell 退出码列出常见退出码的含义,包括通用约定与被信号终止时的编码规则。排查脚本失败时的重要线索。

使用步骤

  1. 先拿到进程的实际退出码
  2. 对照表里查该数值的含义
  3. 注意 128 以上通常表示被信号终止,减去 128 即信号号
  4. 在脚本里用条件判断分别处理这些码

使用场景

  • 理解命令失败的原因
  • 编写脚本时的错误处理
  • 排查 CI 流水线失败
  • 确认进程被何种信号终止

小贴士

  • 0 表示成功,非 0 表示失败。这个约定被所有 shell 与 CI 系统依赖,自定义脚本也应遵守。
  • 128 加信号编号表示被信号终止:137 是被 SIGKILL(常见于内存超限),143 是被 SIGTERM。
  • 127 表示命令未找到,126 表示找到但不可执行(通常是缺少执行权限)。

常见问题

退出码 137 是什么意思?

128 加 9,表示进程被 SIGKILL 杀死。最常见的原因是内存超限被 OOM Killer 终止,在容器环境中尤其常见。应检查内存限制与实际使用量。

127 和 126 有什么区别?

127 是命令根本找不到(PATH 中没有),126 是找到了但无法执行(通常缺少执行权限,或者试图执行一个目录)。前者检查拼写与 PATH,后者检查权限位。

脚本怎么正确返回退出码?

用 exit 数字 显式返回。注意 shell 函数的返回值范围是 0 到 255,超出会被取模。此外管道中默认只取最后一个命令的退出码,需要用 set -o pipefail 改变这个行为。

Shell 退出码是免费的吗?

是。本站所有工具完全免费,无需注册登录、无广告干扰,打开即用。

使用Shell 退出码,我的数据安全吗?

安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。