Возвращение к “stdin” после перенаправления файла к конкретной программе

Я должен достигнуть использования специфического эффекта bashсредства перенаправления.

Я знаю, что могу перенаправить файл к стандартному входу некоторой программы:

[user@host]$ application < file.txt

Вещь, я хотел бы знать, может я восстанавливать управление входом этой программы после того, как содержание файла было передано ему. Другими словами, я хотел бы выполнить команду, подобную вышеупомянутому, и затем, вместо завершения приложения, я захочу, чтобы это ожидало дальнейших команд от стандартного входа (клавиатура).

Поскольку я пишу этот вопрос, мне пришло в голову, что я мог, вероятно, записать другое приложение (или сценарий), который будет в первой записи некоторые данные к стандартному выводу и затем действовать как эхо, как:

[user@host]$ stdin_proxy.sh | application

Это работало бы и является там каким-либо лучшим способом сделать так? Существует набор учебных руководств Googleable, охватывающих эту проблему, но они все составляют один совет - "вновь открыли stdin после того, как содержание файла было считано". Hovewer, у меня нет доступа к исходному коду application.

5
задан 23.11.2010, 01:12

1 ответ

cat может сделать это достаточно легко.

cat file.txt - | application

Обратите внимание, что это не будет дурачить приложение, заставляя думать, что оно на самом деле подключено к терминалу; Вам будет нужно unbuffer для этого.

6
ответ дан 07.12.2019, 17:39

Теги

Похожие вопросы