Я начинаю думать, что мои навыки поиска не хватает.
Я пытаюсь найти какие-либо статьи о том, как с Groovy, открыть интерактивный процесс, прочитать его вывод и затем записать в процесс в зависимости от выходного текста. Все, что я могу найти, это как печатать, читать и писать с файлами. Ничего о том, как писать в интерактивный процесс.
- Процесс запрашивает пароль
- Введите пароль для обработки
Что-то вроде этого, если возможно:
def process = "some-command.sh".execute()
process.in.eachLine { line ->
if (line.contains("enter password")) {
process.out.write("myPassword")
}
}
Это здесь работает чтение из процесса вывода:
def process = "some-command.sh".execute()
process.in.eachLine { line ->
println line
}
Хотя он останавливается, когда процесс запрашивает ввод. Не выводится строка с вопросом.
Редактировать: выяснил, почему он не печатал строку с запросом пароля. Это была не новая линия. Вопрос был простой печать (не println). Как читать, когда еще нет новой строки?
Мне сказали, что можно использовать функцию ожидаемого, но я ищу решение, которое не требует зависимости.