जवाबों:
आप tputस्क्रीन में कर्सर को किसी दिए गए लाइन पर ले जाने के लिए उपयोग कर सकते हैं , जैसे,
tput cup 11 0
इसे बारहवीं पंक्ति में ले जाने के लिए (मान शून्य से गिनती)।
उसी पंक्तियों के साथ, आप tputउस स्थिति से स्क्रीन के अंत तक, edक्षमता का उपयोग करके स्पष्ट करने के लिए उपयोग कर सकते हैं । का मेल,
tput cup 11 0 && tput ed
हो सकता है जो चाहता था।
यदि आप स्क्रीन पर आधे रास्ते के निशान पर जाना चाहते हैं, तो पहले नंबर से लौटे
stty size
(ज्यादातर सिस्टम पर) स्क्रीन की पंक्तियों की संख्या है। कमांड में इसे जोड़ना:
tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed
clearसे कार्यक्रम अलग है tput ed:
कैविएट: कुछ प्लेटफार्मों पर tput edसमस्याओं के कारण लंबे समय से पहले काम नहीं किया जा सकता है। उन मामलों में, अपने शाप / ncurses कॉन्फ़िगरेशन को अपग्रेड करने से समस्या ठीक हो जाएगी।
यदि रेखा गणना विषम है तो tput cupपूरे पृष्ठ को साफ कर देती है।
इसे इस तरह से लिखना ठीक करना चाहिए:
tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed
यदि आप बाकी को बनाए रखते हुए स्क्रीन के निचले आधे हिस्से को साफ करने में रुचि रखते हैं , तो यह काम करेगा:
half=$(stty size | awk '{print int($1/2)-1;}'); for i in `seq ${half}`; do echo '' ; done && tput cup ${half} 0 && tput ed
संपादित करें: स्पष्ट करने के लिए, यदि आप seq $(stty size | cut -d' ' -f1)अन्य उत्तर चलाते हैं तो आउटपुट का पहला आधा भाग निकल जाएगा, जबकि यह कमांड दूसरी छमाही (यानी सबसे हालिया आउटपुट) को छोड़ देगा।