यहां एक समाधान है जो किसी भी यूनिक्स / लिनक्स कार्यान्वयन पर काम करता है, यह मानते हुए कि यह POSIX
मानक का पालन करता है। यह कुछ गैर यूनिक्स वातावरण पर भी काम करता cygwin
है।
echo 'ee' | tee /dev/tty | foo
संदर्भ: ओपन ग्रुप बेस स्पेसिफिकेशन्स अंक 7 IEEE Std 1003.1, 2013 संस्करण, Open10.1 :
/ Dev / tty
उस प्रक्रिया के प्रक्रिया समूह से संबद्ध, यदि कोई हो। यह उन कार्यक्रमों या शेल प्रक्रियाओं के लिए उपयोगी है जो टर्मिनल से संदेश लिखने या डेटा पढ़ने के बारे में सुनिश्चित होना चाहते हैं, भले ही आउटपुट को पुनर्निर्देशित किया गया हो। इसका उपयोग उन अनुप्रयोगों के लिए भी किया जा सकता है जो आउटपुट के लिए एक फ़ाइल के नाम की मांग करते हैं, जब टाइप किए गए आउटपुट वांछित होते हैं और यह पता लगाने के लिए थकाऊ होता है कि वर्तमान में टर्मिनल किस उपयोग में है। प्रत्येक प्रक्रिया में, नियंत्रण टर्मिनल का एक पर्याय
Google Colab जैसे कुछ वातावरणों /dev/tty
को अभी भी लागू नहीं होने की सूचना दी गई है, जबकि उनकी tty
कमान एक प्रयोग करने योग्य उपकरण को लौटा रही है। यहाँ एक समाधान है:
tty=$(tty)
echo 'ee' | tee $tty | foo
या प्राचीन बोर्न शेल के साथ:
tty=`tty`
echo 'ee' | tee $tty | foo
echo 'ee' | tee /dev/stderr
हालांकि काम करता है, इसलिए यदि आपकी "ऑन स्क्रीन" आवश्यकता, stderr से भी संतुष्ट है, तो वह करेंगे।