本文目录导读:

获取程序返回码(退出码/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 的返回码机制有所不同
- 最佳实践:始终检查返回码,确保程序按预期执行
选择哪种方法取决于你的具体需求和运行环境,需要我详细解释某个特定场景的实现吗?