विशिष्ट मामले:एक पाइप में प्रोग्राम कैसे निष्पादित नहीं किया जाता है जब तक कि पहला डेटा tempfile के बिना नहीं पहुंच जाता?
generate_data | curl -T - http://someserver/path
इसका मतलब है कि, मैं एक प्रोग्राम है जो stdout में एक आउटपुट उत्पन्न है, और मुझे कर्ल के साथ एक दूरस्थ सर्वर पर कि डाल दिया।
समस्याकि generate_data
बहुत अधिक समय लगता है, सर्वर 408
मुझे पता है कि पाइप, डेटा तैयार हो जाने की प्रतीक्षा किए बिना सभी आदेश पर अमल तो मेरे अगले चरण था वापस करने के लिए जा रहा है है:
generate_data | (sleep 20 ; curl -T - http://someserver/path)
जेनर_डेटा चलाने के लिए अधिकतम समय की आवश्यकता दो बार थी, इसलिए सभी चीजें ठीक हैं। लेकिन ... यह एक इष्टतम समाधान नहीं है।
मुझे पता है कि मैं पढ़ने के साथ कुछ और जटिल बना सकता हूं, और एक उचित खोल स्क्रिप्ट, लेकिन यह महसूस कर रहा हूं कि मुझे कुछ याद आ रही है।
तो ... क्या मैं sleep 20;
के बजाय एक अस्थायी फ़ाइल बनाने के बिना उपयोग कर सकते हैं?
कितना डेटा होने जा रहा है? एक अस्थायी फ़ाइल लिखने के बारे में, उदा। 'gener_data> tempfile; curl -T tempfile ... ' –
आभारी रहें कि 'नींद' काम करता है! ;-) आप सभी को शुभकामनायें। – shellter