如何重定向到 bash 中的标准输入但每行之间有延迟?
How to redirect to stdin in bash but with a delay between each line?
我工作的平台是Ubuntu 18.04。我有一个二进制程序(所以我不能更改程序)说 foo
并且它从 stdin
逐行读取命令。我在一个名为 'commands' 的文件中有命令,我想 运行 foo
重定向 commands
到它的 stdin
。到目前为止,我知道我可以通过简单地将文件的输出通过管道传输到 foo
(如 cat commands | foo
)来做到这一点。
但是我想一个一个地发出命令,但要有一些延迟,例如10 秒。所以 foo
可能会等待 stdin 上的输入,我不在乎。我怎样才能在 bash 中做到这一点?所以基本上,我想以交互方式提供输入,但实际上不是交互的,它是自动的。
带有 bash 和一个循环:
while read -r line; do echo "$line"; sleep 10; done < commands | foo
我工作的平台是Ubuntu 18.04。我有一个二进制程序(所以我不能更改程序)说 foo
并且它从 stdin
逐行读取命令。我在一个名为 'commands' 的文件中有命令,我想 运行 foo
重定向 commands
到它的 stdin
。到目前为止,我知道我可以通过简单地将文件的输出通过管道传输到 foo
(如 cat commands | foo
)来做到这一点。
但是我想一个一个地发出命令,但要有一些延迟,例如10 秒。所以 foo
可能会等待 stdin 上的输入,我不在乎。我怎样才能在 bash 中做到这一点?所以基本上,我想以交互方式提供输入,但实际上不是交互的,它是自动的。
带有 bash 和一个循环:
while read -r line; do echo "$line"; sleep 10; done < commands | foo