Как перенаправить на stdin в bash, но с задержкой между каждой строкой? - PullRequest
0 голосов
/ 26 мая 2019

Платформа, на которой я работаю, - Ubuntu 18.04.У меня есть двоичная программа (поэтому я не могу изменить программу), скажем foo, и она читает команды построчно из stdin.У меня есть команды в файле с именем 'команды', и я хочу запустить foo с перенаправлением commands на stdin.Пока я знаю, что могу сделать это, просто перенаправив вывод файла в foo, как cat commands | foo.

Однако я хотел бы дать команды одну за другой с некоторой задержкой, например, 10 секунд.Так что foo может подождать ввода на stdin и мне все равно.Как я могу сделать это в Bash?Так что, в основном, я хочу, чтобы входные данные были интерактивными, но не интерактивными, а автоматически.

1 Ответ

2 голосов
/ 26 мая 2019

С баш и петлей:

while read -r line; do echo "$line"; sleep 10; done < commands | foo
...