ऐसा करने की कोशिश करने के साथ सबसे महत्वपूर्ण समस्या यह है कि इसे चलाने के लिए इसे बंद करने के तरीके को कैसे बंद किया जाए।
मैं जो अनुशंसा करता हूं वह यह है कि, प्रोग्राम और उपयोगिताओं के लिए आप अक्सर उपयोग करते हैं, उन्हें खोलने वाले शैल फ़ंक्शंस बनाएं और less -F
पर पाइप करें। कुछ मामलों में, आप इस कार्यक्रम को प्रोग्राम के समान नाम दे सकते हैं और इसे प्राथमिकता दी जाएगी, लेकिन इसे ओवरराइड किया जा सकता है।
यहाँ एक उदाहरण आवरण समारोह जो बढ़त मामलों को संभालने के लिए परीक्षण और शायद कुछ अतिरिक्त कोड की आवश्यकता होगी, आदि
#!/bin/bash
foo() {
if [[ -p /dev/stdout ]] # you don't want to pipe to less if you're piping to something else
then
command foo "[email protected]" | less -F
else
command foo "[email protected]"
fi
}
आप उदाहरण के रूप में मेरे पास है ही नाम का उपयोग, तो इसके कई टूट सकता है जो विभिन्न व्यवहार की उम्मीद है। अंतर्निहित कार्यक्रम चलाने के लिए समारोह ओवरराइड करने के लिए सीधे command
साथ आगे ले जाएँ:
command foo
एक ही नाम के समारोह का उपयोग किए बिना foo
चलेंगे।
स्रोत
2010-11-13 21:30:22
@BenV: क्यों? यह मुझे शैल प्रोग्रामिंग के बारे में एक बिल्कुल अच्छा सवाल की तरह दिखता है। आउटपुट टीटी नहीं होने पर –