Tôi có một loạt lệnh gọi hệ thống trong ruby chẳng hạn như lệnh sau và tôi muốn kiểm tra mã thoát của chúng đồng thời để tập lệnh của tôi thoát ra nếu lệnh đó không thành công.
system("VBoxManage createvm --name test1")
system("ruby test.rb")
Tôi muốn một cái gì đó giống như
system("VBoxManage createvm --name test1", 0)
<- trong đó tham số thứ hai kiểm tra mã thoát và xác nhận rằng lệnh gọi hệ thống đó đã thành công, và nếu không, nó sẽ phát sinh lỗi hoặc thực hiện điều gì đó tương tự.
Liệu có thể không?
Tôi đã thử một cái gì đó dọc theo dòng của điều này và nó cũng không hoạt động.
system("ruby test.rb")
system("echo $?")
hoặc là
`ruby test.rb`
exit_code = `echo $?`
if exit_code != 0
raise 'Exit code is not zero'
end
exit_code
sẽ là một chuỗi - một trong hai "0\n"
hoặc "1\n"
, vì vậy exit_code != 0
sẽ luôn luôn đúng