У меня есть фрагмент кода, просто пытающийся выполнить script на удаленном сервере, в случае его отказа, я хотел бы сделать последующий вызов, представьте это:
require 'rubygems'
require 'net/ssh'
require 'etc'
server = 'localhost'
Net::SSH.start(server, Etc.getlogin) do |ssh|
puts (ssh.exec("true") ? 'Exit Success' : "Exit Failure")
puts (ssh.exec("false") ? 'Exit Success' : "Exit Failure")
end
Я бы ожидал (игнорируя, что stdout и stderr напечатаны в моем надуманном примере), но первая строка должна выйти с 0
, которую я ожидаю, что Ruby будет взаимодействовать как false
и отобразить "Exit Failure" (конечно, так логика ошибочна, троицу нужно перевернуть), но вторая строка должна выйти с противоположным статусом, и это не так.
Я даже не могу найти что-либо в документации о том, как это сделать, и я немного обеспокоен тем, что, возможно, я ошибаюсь?!