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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |