que tienen un fragmento de código, simplemente tratando de ejecutar una secuencia de comandos en un servidor remoto, en el caso de que no, me gustaría hacer una llamada de seguimiento, imaginar esto:¿Cómo obtener el estado de salida con la biblioteca Ruby's Net :: SSH?
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
I esperaría (ignorando que stdout y stderr están impresos en mi ejemplo artificial) - pero la primera línea debería salir con 0
, que esperaría que Ruby interpegara como false
y muestre "Fallo de salida" (claro, la lógica es incorrecta, el ternario necesita para voltear) - pero la segunda línea debe salir con el estado opuesto, y no es así.
Ni siquiera puedo encontrar nada en la documentación sobre cómo hacer esto, y estoy un poco preocupado de que pueda estar haciendo mal?
Wow, eso es genial. Gracias. – sarnold
flitzwald, eso es increíble. ¡Ojalá pudiera agregar retrospectivamente una recompensa o algo así! ¡Muchas gracias! –
Muchas gracias. Funciona perfectamente Esto debería estar en Net :: SSH. –