Захват STDIN / STDERR / STDOUT процесса после его запуска, используя командную строку?

Спасибо! Мой пример: Я начал длительный интерактивный процесс 'configure' (скажем, под 'screen'), а затем понял, что мне нужно всегда отвечать 'no', пока я не увижу определенное ключевое слово. Кажется пустой тратой времени делать это вручную (не говоря уже о том, что я могу легко пропустить ключевое слово...)

Таким образом, похоже, я хочу направить (копию) STDERR / STDOUT в фильтр, а также иметь возможность инжектировать в STDIN (консольного) процесса, ПОСЛЕ того, как он был запущен, используя командную строку? Есть ли готовое решение?

Следующие инструменты, похоже, помогут. Для перехвата вывода используйте

strace -ewrite -p $PID

Он не очень чистый (показывает строки типа: write(#,) ), но работает! Но правильно ли он обрабатывает UTF8?

Чтобы перенаправить вывод, сделайте что-то вроде

printf '..input..' >/dev/pts/33

Но неясно, как найти нужное устройство...

8
задан Vadim Kotov 5 March 2018 в 11:34
поделиться