这是关于ruby系统命令检查退出码的后续问题。我想运行命令以获取其输出和退出码。目前我在代码中使用的是:
rv = `#{cmd} 2>&1`
但是这只能捕获输出,而且
rv = system(cmd)
只捕获退出代码。如何实现两者兼备?
这是关于ruby系统命令检查退出码的后续问题。我想运行命令以获取其输出和退出码。目前我在代码中使用的是:
rv = `#{cmd} 2>&1`
rv = system(cmd)
只捕获退出代码。如何实现两者兼备?
反引号将捕获您的命令输出。例如,要将输出存储在rv变量中:
rv = `echo Error: EX_USAGE; exit 64`
#=> "Error: EX_USAGE\n"
$?.exitstatus
#=> 64
$?
可以访问上一次执行的系统命令的状态,如果使用反引号、system() 或 %{}。然后可以访问 exitstatus 和 pid 属性。
因此,您可以执行 rv = system(cmd)
,并执行 status = $?.exitstatus
。