मेरे पास रूबी में सिस्टम कॉल का एक गुच्छा है जैसे कि निम्न और मैं अपने एक्जिट कोड को एक साथ जांचना चाहता हूं ताकि मेरी कमांड विफल हो जाए।रूबी सिस्टम कमांड चेक आउट एक्जिट कोड
system("VBoxManage createvm --name test1")
system("ruby test.rb")
मैं चाहता हूँ की तरह
system("VBoxManage createvm --name test1", 0)
< कुछ - जहां दूसरा पैरामीटर बाहर निकलने के कोड की जाँच करता है और पुष्टि की है कि कि सिस्टम कॉल सफल रहा था, और यदि नहीं, तो यह एक त्रुटि को बढ़ाने या घटाने के बारे में कुछ करना होगा उस तरह।
क्या यह संभव है?
मैंने इस के साथ कुछ करने की कोशिश की है और यह भी काम नहीं करता है।
system("ruby test.rb")
system("echo $?")
या
`ruby test.rb`
exit_code = `echo $?`
if exit_code != 0
raise 'Exit code is not zero'
end
[% x का उपयोग कर पकड़ने कमांड लाइन त्रुटियों] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/4771930/catching-command-line-errors-using-x) –
ऊपर में उदाहरण के लिए, 'exit_code' एक स्ट्रिंग होगा - या तो '" 0 \ n "' या '" 1 \ n "', इसलिए' exit_code! = 0' हमेशा सत्य होगा – dgmstuart