我使用的平台是Ubuntu 18.04。我有一个二进制程序(所以我无法更改程序),比如
foo
,它会从 stdin
逐行读取命令。我的命令位于名为“commands”的文件中,我想运行 foo
并将 commands
重定向到其 stdin
。到目前为止,我知道我只需将文件的输出通过管道传输到 foo
(如 cat commands | foo
)即可做到这一点。
但是我想一一给出命令,但有一些延迟,例如10秒。所以
foo
可能会等待标准输入上的输入,我不在乎。我怎样才能在 bash 中做到这一点?所以基本上,我想以交互方式提供输入,但实际上不是交互的,它是自动的。
使用 bash 和循环:
commands | foo | while read -r line; do echo "$line"; sleep 10; done