Я использую задачу SSHEXEC ant для запуска SSH-скрипта с удаленной линией Linux.Ответы на запросы оболочки из задачи Ant SSH (SSHEXEC)
Это работало нормально, пока я не попробую вызвать сценарий ksh, который запрашивает пользователя для ввода. Сценарий изменяет текущего пользователя (например, su). Он запрашивает у пользователя change_request_id и change_request_reason. Таким образом, с помощью этой команды, как правило, в оболочке будет выглядеть следующим образом:
change_user deploy_user
Please enter the changes request number for doing this: 1234
Please enter the changes request reason: Because I can
<deploy_user>
Но когда я запускаю эти команды из SSHEXEC, он получает в первой строке «Пожалуйста, введите изменения запросить номер для этого:» и останавливается. Несмотря на то, что я передаю ответ на этот запрос через SSHEXEC, он все еще застрял здесь.
К сожалению, у нас нет доступа для замены или копирования сценария оболочки change_user.
Мне было интересно, был ли какой-то способ использовать SSHEXEC, который посылал бы быстрые ответы с помощью команды.
Любая помощь будет оценена по достоинству.
Спасибо, Уильям. Ваше решение выглядит идеально, но когда я его попробовал, он сломался, так как скрипт, который я запускаю, меняет текущего пользователя, поэтому перед его завершением будут ошибки. Помимо этой проблемы, ваше решение действительно позволяет мне отвечать на приглашения на скрипт. Я думаю, теперь дело в том, чтобы обойти эту проблему с изменениями! Приветствия. – Ben
Вы можете настроить sudo для запуска этой команды в качестве другого пользователя - например. префикс/path/to/change_request_cmd с помощью sudo -u otheruser и настройте/etc/sudoers, чтобы разрешить это без пароля. –