具体案例:
generate_data | curl -T - http://someserver/path
这意味着,我有一个在标准输出中生成输出的程序,然后我将它放在带有 curl 的远程服务器上。
问题是如果generate_data
花费太多时间,服务器将返回 408。
我知道管道执行所有命令而不等待数据准备好,所以我的下一次迭代是:
generate_data | ( sleep 20 ; curl -T - http://someserver/path )
该时间是运行 generate_data 所需最大时间的两倍,所以一切正常。但是......这不是一个最佳解决方案。
我知道我可以通过 read 和适当的 shell 脚本创建更复杂的东西,但感觉我缺少一些明显的东西。
所以......我可以用什么来代替sleep 20;
不创建临时文件?