加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何在没有tempfile的第一个数据到达之前使管道中的程序

发布时间:2020-12-15 22:37:21 所属栏目:安全 来源:网络整理
导读:具体案例: generate_data | curl -T - http://someserver/path 这意味着,我有一个程序在stdout中生成一个输出,我把它放在一个curl的远程服务器上. 问题是如果generate_data花费太多时间,服务器将返回408. 我知道管道执行所有命令而不等待数据准备好,所以我
具体案例:

generate_data | curl -T - http://someserver/path

这意味着,我有一个程序在stdout中生成一个输出,我把它放在一个curl的远程服务器上.

问题是如果generate_data花费太多时间,服务器将返回408.

我知道管道执行所有命令而不等待数据准备好,所以我的下一次迭代是:

generate_data | ( sleep 20 ; curl -T - http://someserver/path )

时间是运行generate_data所需的最长时间的两倍,所以所有的事情都没问题.但是……这不是最佳解决方案.

我知道我可以使用read创建一些更复杂的东西,以及一个合适的shell脚本,但我觉得我遗漏了一些明显的东西.

所以……我可以用什么而不是睡觉20;没有创建临时文件?

解决方法

generate_data > /tmp/generated_data; cat /tmp/generated_data | curl -T - http://someserver/path

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读