2008-09-16 8 views
6

मैं एक छोटी शेल स्क्रिप्ट की तलाश में हूं जो इसमें कुछ भी पाइप ले जाएगा, और इसे एक फ़ाइल में डंप करेगा .. ईमेल डिबगिंग उद्देश्यों के लिए। कोई विचार?फ़ाइल में पाइप इनपुट डंप करने का एक आसान तरीका क्या है? (लिनक्स)

उत्तर

23

यूनिक्स कमांड टी यह करता है।

man tee 
+0

अगर यह मेरे ऊपर था, तो इम्फिसिंग, मैं इस जवाब को "स्वीकार" करूंगा –

2

प्रोमेल का उपयोग करें। Procmail आपका दोस्त है। Procmail इस तरह की चीज के लिए बनाया गया है।

5

मानक यूनिक्स उपकरण टी यह कर सकते हैं। यह आउटपुट में इनपुट की प्रतिलिपि बनाता है, जबकि इसे फ़ाइल में लॉगिंग भी करता है।

8

आप वास्तव में कुछ इसी तरह .. की आवश्यकता होगी, में अकेले नहीं हो, किसी को मैं दशक पहले चाहता था और विकसित tee :-)

बेशक

, आप stdout सीधे किसी फ़ाइल के लिए किसी भी खोल में का उपयोग कर अनुप्रेषित कर सकते हैं> चरित्र:

echo "hello, world!" > the-file.txt 
0

हुह? मुझे लगता है, मुझे सवाल नहीं मिला?

तुम सिर्फ एक >> ~file

में अपने पाइप समाप्त कर सकते हैं नहीं उदाहरण

echo "Foobar" >> /home/mo/dumpfile 

डंपफाइल को Foobar संलग्न कर देगा के लिए (और यदि आवश्यक हो तो डंपफाइल बनाएँ)। शेल स्क्रिप्ट के लिए कोई ज़रूरत नहीं है ... क्या आप यही खोज रहे थे?

1

आप स्क्रिप्ट में उसका विश्लेषण करना चाहते हैं:

while /bin/true; do 
    read LINE 
    echo $LINE > $OUTPUT 
done 

लेकिन आप बस बिल्ली का उपयोग कर सकते हैं। अगर बिल्ली को stdin पर कुछ मिलता है, तो यह इसे stdout पर गूंज देगा, इसलिए आपको उसे बिल्ली> $ OUTPUT पर पाइप करना होगा। ये वही करेंगे। द्विआधारी डेटा के लिए दूसरा काम भी।

0

यदि आप परिणाम outputting के बारे में परवाह नहीं है

cat - > filename 

या

cat > filename 
0

आप एक खोल स्क्रिप्ट चाहते हैं, इस प्रयास करें:

#!/bin/sh 
exec cat >/path/to/file 
1

तो एग्जिम या sendmail पाइप में क्या लिख ​​रहा है, तो procmail एक अच्छा जवाब है क्योंकि यह आपको फ़ाइल लॉकिंग/क्रमबद्धता देगा और आप सी इसे एक ही फाइल में डाल दें।

तुम सिर्फ एक फाइल में लिखने के लिए चाहते हैं, तो - टी> /tmp/log.$$ या - बिल्ली> /tmp/log.$$ काफी अच्छा हो सकता है।

0

< < कमांड >> | टी < फ़ाइल >>

यह आउटपुट भी दिखाएगा।

संबंधित मुद्दे

 संबंधित मुद्दे