怎么用脚本获取程序返回码

wen 实用脚本 3

本文目录导读:

怎么用脚本获取程序返回码

  1. Bash/Shell 脚本 (Linux/macOS)
  2. 批处理脚本 (Windows CMD)
  3. PowerShell 脚本
  4. Python 脚本
  5. Node.js 脚本
  6. Perl 脚本
  7. 重要说明

获取程序返回码(退出码/Exit Code)的方法取决于你使用的操作系统和脚本语言,以下是几种常见场景的解决方案:

Bash/Shell 脚本 (Linux/macOS)

# 运行程序并获取返回码
./your_program
exit_code=$?
echo "返回码: $exit_code"
# 条件判断
if [ $? -eq 0 ]; then
    echo "执行成功"
else
    echo "执行失败,返回码: $?"
fi

批处理脚本 (Windows CMD)

@echo off
your_program.exe
echo 返回码: %ERRORLEVEL%
if %ERRORLEVEL% EQU 0 (
    echo 执行成功
) else (
    echo 执行失败,返回码: %ERRORLEVEL%
)

PowerShell 脚本

# 方法1:直接获取
$exitCode = (Start-Process -FilePath "your_program.exe" -Wait -PassThru).ExitCode
Write-Host "返回码: $exitCode"
# 方法2:使用 $LASTEXITCODE
your_program.exe
Write-Host "返回码: $LASTEXITCODE"

Python 脚本

import subprocess
import os
# 方法1:使用 subprocess.run (Python 3.5+)
result = subprocess.run(["./your_program"], capture_output=True)
exit_code = result.returncode
print(f"返回码: {exit_code}")
# 方法2:使用 os.system (返回码需要右移8位)
exit_code = os.system("./your_program") >> 8
print(f"返回码: {exit_code}")
# 方法3:使用 subprocess.Popen
process = subprocess.Popen(["./your_program"])
process.wait()
print(f"返回码: {process.returncode}")

Node.js 脚本

const { execSync } = require('child_process');
try {
    const result = execSync('./your_program');
    console.log('返回码: 0');
} catch (error) {
    console.log(`返回码: ${error.status}`);
}

Perl 脚本

my $exit_code = system("./your_program");
print "返回码: $exit_code\n";
# 或者获取实际退出码
$exit_code >>= 8;
print "实际返回码: $exit_code\n";

重要说明

  • 返回值范围:0 表示成功,非 0 表示失败(不同程序可能有不同含义)
  • 位运算:在 Unix 系统中,system() 返回的状态码需要右移 8 位才是真正的退出码
  • 跨平台注意:Windows 和 Unix/Linux 的返回码机制有所不同
  • 最佳实践:始终检查返回码,确保程序按预期执行

选择哪种方法取决于你的具体需求和运行环境,需要我详细解释某个特定场景的实现吗?

抱歉,评论功能暂时关闭!