當我做類似如下:獲取系統調用的錯誤輸出?
output = `identify some_file`
output == "Output of identify"
但是,當...
output = `identify non_existant_file`
output != "Error output of identify"
我怎樣才能得到系統調用的錯誤輸出?
當我做類似如下:獲取系統調用的錯誤輸出?
output = `identify some_file`
output == "Output of identify"
但是,當...
output = `identify non_existant_file`
output != "Error output of identify"
我怎樣才能得到系統調用的錯誤輸出?
您可以使用Open3.popen3
。
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/open3/rdoc/Open3.html#method-c-popen3
popen3(* CMD,&塊)點擊展開源
開放標準輸入,stdout和stderr流並啓動外部可執行。
Open3.popen3([env,] cmd... [, opts]) {|stdin, stdout, stderr, wait_thr|
pid = wait_thr.pid # pid of the started process.
...
exit_status = wait_thr.value # Process::Status object returned.
}
我找到了答案。輸出被髮送到stderr。這樣我就可以添加以下內容在命令的最後重定向錯誤輸出到標準輸出:
output = `identify any_file 2>&1`
output == "Error or output of identify"