कमांड-लाइन से स्क्रीन का आधा भाग साफ करें


11

क्या कोई रास्ता टर्मिनल को साफ करता है लेकिन स्क्रीन के शीर्ष पर प्रॉम्प्ट को छोड़ने के बजाय इसे बीच में छोड़ देता है? ऐसा लगता है कि clearमूल रूप से सभी कमांड-लाइन मापदंडों की उपेक्षा करता है।

मैंने सोचा कि ऐसा करने का कोई तरीका होगा, tputलेकिन एक नहीं मिल सकता है।

जवाबों:


12

आप 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 कॉन्फ़िगरेशन को अपग्रेड करने से समस्या ठीक हो जाएगी।


यूनिक्स पर, यह मेरे लिए पाठ को स्पष्ट नहीं करता है, लेकिन कर्सर को स्थानांतरित करता है
जेम्स ओनर्स

1
दस साल पहले बग की तरह लगता है। शायद चीजों को अपग्रेड करने का समय।
थॉमस डिकी

0

यदि रेखा गणना विषम है तो tput cupपूरे पृष्ठ को साफ कर देती है।
इसे इस तरह से लिखना ठीक करना चाहिए:

tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed

-1

यदि आप बाकी को बनाए रखते हुए स्क्रीन के निचले आधे हिस्से को साफ करने में रुचि रखते हैं , तो यह काम करेगा:

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)अन्य उत्तर चलाते हैं तो आउटपुट का पहला आधा भाग निकल जाएगा, जबकि यह कमांड दूसरी छमाही (यानी सबसे हालिया आउटपुट) को छोड़ देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.