मैंने बैश स्क्रिप्ट में एक लाइन डाली है और यह जाँचना चाहता हूं कि क्या पाइप में डेटा है, इसे प्रोग्राम में फीड करने से पहले।
खोज के बारे में मैंने पाया, test -t 0
लेकिन यह यहाँ काम नहीं करता है। हमेशा झूठा लौटता है। तो कैसे सुनिश्चित करें कि पाइप में डेटा है?
उदाहरण:
echo "string" | [ -t 0 ] && echo "empty" || echo "fill"
आउटपुट: fill
echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill"
आउटपुट: fill
मानक / विहित तरीके के विपरीत परीक्षण करना कि क्या पूर्वगामी पाइपलाइन उत्पादन का उत्पादन करती है? कार्यक्रम में इसे पास करने के लिए इनपुट को संरक्षित करने की आवश्यकता है। यह सामान्य करता है कि आउटपुट को एक प्रक्रिया से दूसरी प्रक्रिया में कैसे पाइप करें, लेकिन केवल तभी निष्पादित करें यदि पहला आउटपुट है? जो ईमेल भेजने पर केंद्रित है।