Сделайте так, чтобы программа сначала читала с канала, затем с клавиатуры

17

Рассмотрим интерактивную программу interactive. Мне приходится довольно часто запускать эту программу, и каждый раз, когда я запускаю ее, первые несколько команд совпадают. Очевидно, что вводить эти команды снова и снова - это боль. Я собрал эти команды (разделенные переводом строки) в файле cmd. Теперь я могу сделать, cat cmd | interactiveчтобы запустить команды. Проблема в том, что когда-то cmdбыл полностью прочитан, interactiveполучает EOF и завершает работу.

Что я хочу сделать, так это сначала interactiveпрочитать с конвейера (очевидно, interactive < cmdэто тоже приемлемо), а когда получено EOF, вместо этого начать чтение с клавиатуры.

Виктор Даль
источник

Ответы:

21

Просто попросите catобъединить этот файл с stdin:

cat cmd - | interactive
manatwork
источник
1
Приведенное выше решение, вероятно, является оптимальным. Если вы используете рабочий стол с графическим интерфейсом, посмотрите также на AutoKey. Это позволит вам создавать макросы, которые могут делать практически все, что вы можете делать с клавиатуры. Это немного сложно, если вам приходится ждать, пока что-то произойдет, или вам нужно получать данные с экрана, но если вы знаете python (язык, на котором закодированы его макросы), небо - это предел.
Джо