如何在命令仍在运行时读取Bash中的命令输出

如何在命令仍在运行时读取Bash中的命令输出,bash,shell,udp,sh,Bash,Shell,Udp,Sh,我需要读取UDP发送的数据。我使用nc-ul50000。即使在收到一条线路后,它仍会继续运行。我想在每一行到达时都读一读。 我该怎么做 Stackexchange上另一个问题的答案建议使用 while read VAR do my_command done < <(nc -ul 50000) 读取变量时 做 我的命令 完成

我需要读取UDP发送的数据。我使用
nc-ul50000
。即使在收到一条线路后,它仍会继续运行。我想在每一行到达时都读一读。 我该怎么做

Stackexchange上另一个问题的答案建议使用

while read VAR
do
my_command
done < <(nc -ul 50000)
读取变量时
做
我的命令

完成<您可以强制程序使用行缓冲或非缓冲输出

stdbuf-o L nc-ul 50000


(将“L”替换为“0”(零)以获得完全无缓冲的输出)

stdbuf
不是POSIX,而是GNU coreutils的一部分。
读入时;不要以美元计价;通知发送$IN;done<您知道nc命令正在接收消息吗?如果像我一样运行stdbuf-o L nc-ul 50000
命令,会发生什么?它会打印消息吗?(编辑以添加完整命令)另请参见: