🔢
Shell 退出码
Shell/进程退出码含义速查。
本地处理 · 不上传
加载工具中…
相关:退出码 · exit code · shell · linux
Shell 退出码列出常见退出码的含义,包括通用约定与被信号终止时的编码规则。排查脚本失败时的重要线索。
使用步骤
- 先拿到进程的实际退出码
- 对照表里查该数值的含义
- 注意 128 以上通常表示被信号终止,减去 128 即信号号
- 在脚本里用条件判断分别处理这些码
使用场景
- 理解命令失败的原因
- 编写脚本时的错误处理
- 排查 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 退出码,我的数据安全吗?
安全。该工具在你的浏览器本地完成处理,输入内容不会上传到服务器,隐私更有保障。