美文网首页
Linux 退出码

Linux 退出码

作者: Joening | 来源:发表于2025-12-09 13:19 被阅读0次

Linux 退出码(Exit Code)范围是 0-255,以下是常见退出码及其含义:

标准退出码

0 - 成功执行
1 - 一般错误(未分类错误)
2 - shell 内置命令使用不当
126 - 命令不可执行(权限问题)
127 - 命令未找到
128 - 无效的退出参数

信号相关退出码 (128+n)

当进程被信号终止时,退出码 = 128 + 信号编号:
130 (128+2) - 被 SIGINT 终止 (Ctrl+C)
137 (128+9) - 被 SIGKILL 终止 (强制杀死)
143 (128+15) - 被 SIGTERM 终止 (优雅终止)

常见系统错误码

64 - 命令行使用错误
65 - 数据格式错误
66 - 无法打开输入文件
70 - 内部软件错误
73 - 无法创建输出文件
74 - I/O 错误
126 - 命令不可执行
127 - 命令未找到
128 - 无效退出参数

Bash 特殊退出码

124 - timeout 命令超时
125 - timeout 命令自身失败
126 - 命令调用但不能执行
127 - 命令未找到
130 - 脚本被 Ctrl+C 终止
137 - 进程被 kill -9 终止
255 - 退出状态超出范围

编程语言常用退出码

3 - 常见于 Java 程序(通常表示异常)
254 - 命令执行失败但退出码为 0-255 之外

日志函数

#!/bin/bash

# 简单日志函数 - 适合快速使用
log() {
    local level=$1
    shift
    local message="$*"
    local timestamp=$(date '+%Y-%m-%d %H:%M:%S')
    
    case $level in
        I|INFO)    echo "[$timestamp] [INFO]    $message" ;;
        W|WARN)    echo "[$timestamp] [WARN]    $message" >&2 ;;
        E|ERROR)   echo "[$timestamp] [ERROR]   $message" >&2 ;;
        D|DEBUG)   echo "[$timestamp] [DEBUG]   $message" ;;
        S|SUCCESS) echo "[$timestamp] [SUCCESS] $message" ;;
        *)         echo "[$timestamp] [$level]  $message" ;;
    esac
}

# 快捷函数
log_info()    { log "INFO" "$@"; }
log_warn()    { log "WARN" "$@"; }
log_error()   { log "ERROR" "$@"; }
log_debug()   { log "DEBUG" "$@"; }
log_success() { log "SUCCESS" "$@"; }
log_die()     { log "ERROR" "$@"; exit 1; }

带颜色的日志函数

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

# 日志函数
log_info() {
    echo -e "${BLUE}[$(date '+%Y-%m-%d %H:%M:%S')] [INFO]${NC} $1"
}

log_success() {
    echo -e "${GREEN}[$(date '+%Y-%m-%d %H:%M:%S')] [SUCCESS]${NC} $1"
}

log_warning() {
    echo -e "${YELLOW}[$(date '+%Y-%m-%d %H:%M:%S')] [WARNING]${NC} $1"
}

log_error() {
    echo -e "${RED}[$(date '+%Y-%m-%d %H:%M:%S')] [ERROR]${NC} $1"
}

相关文章

  • 查看shell命令的exit返回码

    查看退出状态码 Linux 使用$? 变量保存上个执行的命令的退出状态码。你可以在要查看的命令之后立即查看或使用$...

  • Linux 退出状态码

    Linux通过一个专门的变量$?来保存上一条命令的退出状态码。 可以通过打印该变量查看最后一条的命令的退出情况。 ...

  • Linux退出状态码

  • Linux Shell脚本if-else语句及test命令

    Linux中的if语句根据其后紧跟的command语句的退出码是否非零进行逻辑判断,这是不同于其他编程语言的一个特...

  • TODO:Golang Linux进程退出说明

    TODO:Golang Linux进程退出说明 Golang使用os.Exit(code)进程退出导致当前程序退出...

  • LinuxCommandLine -- [脚本 if]

    状态码 范围:0 ~ 255 0: 正常退出 其他:发生异常 $? 显示上一条命令的退出状态码 true fals...

  • 进程的几种退出机制

    Linux 下进程的退出分为正常退出和异常退出两种: 1.正常退出 a. 在main()函数中执行return 。...

  • 几种进程退出方式的对比

    一、汇总 linux中进程退出分为正常退出和异常退出两种。 1、正常退出 在main函数中执行return 调用e...

  • 创建函数

    1. 创建函数 2. 函数返回值-默认的退出状态码 默认情况下,函数的退出状态码是函数中最后一个命令返回的退出状态...

  • 理解 docker 容器的退出码

    常见退出码 Exit Code 0 退出代码0表示特定容器没有附加前台进程。 该退出代码是所有其他后续退出代码的例...

网友评论

      本文标题:Linux 退出码

      本文链接:https://www.haomeiwen.com/subject/wwdkcstx.html