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