Получение кода завершения команды в net-ssh задача не сложная, но с первого взгляда интуитивно не очевидная (т.к. методы которые выполняют команду не возвращают его, так же нет свойств через которое этот код был бы доступен). Чтобы всё таки получить код завершения команды надо опуститься на уровень ниже.
Для этого потребуется открыть канал и выполнить команду в контексте этого канала и уже после этого из канала можно извлечь информацию о коде завершения. Выглядит это вот так:
Net::SSH.start("host", "login", :password => "password") do | ssh |
ssh.open_channel do | ch |
ch.exec("[ -d #{directory} ]") do | ch, success |
ch.on_request("exit-status") do | ch, data |
exit_code = data.read_long
end
end
end
end
Добавить новый комментарий