這是關於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