这是关于ruby system command check exit code的后续问题。我想运行命令以获取其输出以及退出代码。目前,我在代码中使用的是:外部命令如何将其输出和退出状态返回给Ruby?
rv = `#{cmd} 2>&1`
但这只能捕获输出,并
rv = system(cmd)
只捕获的退出代码。如何实现两者?
这是关于ruby system command check exit code的后续问题。我想运行命令以获取其输出以及退出代码。目前,我在代码中使用的是:外部命令如何将其输出和退出状态返回给Ruby?
rv = `#{cmd} 2>&1`
但这只能捕获输出,并
rv = system(cmd)
只捕获的退出代码。如何实现两者?
检查$?.exitstatus
退出代码。
欲了解更多信息,请参阅http://www.ruby-doc.org/core-2.1.0/Process/Status.html
$?
如果您的 使用反引号system()或%{},将访问上次系统执行的命令的状态。然后您可以访问退出状态 和pid属性。
所以,你可以做rv = system(cmd)
,做status = $?.exitstatus
。
反引号将捕获从你的命令的输出。例如,到输出存储在RV变量:
rv = `echo Error: EX_USAGE; exit 64`
#=> "Error: EX_USAGE\n"
您可以询问过程exit status内置$?变量或来自Process::Status对象。例如,要获取最后一个反拨命令的退出状态:
$?.exitstatus
#=> 64