У меня есть процесс, с которым мне постоянно приходится иметь дело.
Первую половину легко автоматизировать с помощью expect. Вторую часть я не знаю простого способа автоматизировать.
Какие-либо предложения?
К сожалению, ожидать (на любом языке) не совсем подходит для чего-то, что не является стандартным ответом экранного буфера. Я видел некоторые реализации, которые пытаются иметь дело с обновлениями положения курсора, такими как проклятия, но результаты не всегда эффективны.
Я считаю, что вам лучше потратить время на изучение того, какие операции приложение curses предоставляет вам меню для настройки вашего приложения, выполняйте эти элементы самостоятельно. Я обнаружил, что почти у каждого меню curses есть сопутствующий cli cmd или интерфейс для него.
Если вы поделитесь тем, что такое меню проклятий, сообщество сможет помочь вам с тем, что происходит в фоновом режиме. Если вы не можете, потому что это что-то домашнее, вы сможете уловить происходящее в фоновом режиме с помощью чего-то вроде strace
Надеюсь это поможет.
Взгляните на hpuifilter
утилита включена в ПРОТИВНИК. Первоначально он был написан, чтобы помочь сценариям ожидания RANCID работать с проклятыми меню переключателей HP. Тем не менее, он написан как фильтр, поэтому вы можете направить в него свое приложение curses, и оно будет выдавать открытый текст, лишенный управляющих последовательностей VT100, с которыми должно быть проще иметь дело в ожидании.