5

具体案例:

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;不创建临时文件?

4

1 回答 1

2
generate_data > /tmp/generated_data; cat /tmp/generated_data | curl -T - http://someserver/path
于 2012-11-16T01:41:53.860 回答