5

特定のケース:

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

つまり、stdout で出力を生成するプログラムがあり、それを curl を使用してリモート サーバーに置きます。

問題は、generate_data時間がかかりすぎると、サーバーが 408 を返すことです。

パイプはデータの準備が整うのを待たずにすべてのコマンドを実行することを知っているので、次の反復は次のとおりでした。

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

この時間は、generate_data の実行に必要な最大時間の 2 倍だったので、すべて問題ありません。しかし... それは最適な解決策ではありません。

read と適切なシェル スクリプトを使用して、より複雑なものを作成できることはわかっていますが、明らかな何かが欠けていると感じています。

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 に答える