शेल स्क्रिप्ट से टर्मिनल पर लाइव परिणाम कैसे दिखाएं?


9

मैं एक शेल स्क्रिप्ट कैसे लिख सकता हूं जो वास्तविक समय में परिणाम दिखाता है?

topसमय के कुछ निश्चित अंतराल के बाद परिणामों को अद्यतन करने वाली कमांड की तरह कुछ।

वैकल्पिक शब्द


6
शायद एक cursesअंतरफलक का उपयोग कर ... लेकिन मुझे लगता है कि यह एक प्रोग्रामिंग सवाल अधिक भारी है और SO पर है
xenoterracide

जवाबों:


7

यदि आप जो करने की कोशिश कर रहे हैं, उसके बारे में बहुत अधिक विशिष्ट होने पर यह मदद करेगा।

यहाँ एक बहुत ही सरल उदाहरण दिया गया है:

while true
do
    clear
    date
    sleep 1
done

13

आप नियमित अंतराल पर अपनी स्क्रिप्ट चलाने के लिए वॉच (1) कमांड का उपयोग कर सकते हैं :

watch -n 1 myscript.sh

यह myscript.shप्रत्येक 1 सेकंड को प्रत्येक रन के बीच स्क्रीन को साफ करने और कोने में एक टाइमस्टैम्प के साथ चलेगा। आप -dविकल्प का उपयोग कर सकते हैं और यह प्रति रन आउटपुट में अंतर को भी उजागर करेगा।


मैं सिर्फ यह सोच रहा था कि घड़ी का उपयोग करके इसका उत्तर कैसे दिया जाए।
केविन एम

मेरे पास नहीं है watch। क्या आप अधिक विस्तार से बताएंगे? क्या ओएस?
क्रिस पेज

2

उस डेटा का अधिकांश आम तौर पर / proc वर्चुअल फ़ाइल-सिस्टम प्राइमिटिव में उजागर होता है। प्रत्येक प्रक्रिया में PID नामक एक निर्देशिका में एक प्रविष्टि / खरीद होती है। तो / proc / 5437 में 5437 प्रक्रिया के लिए प्राइमेटिव होगा। वहाँ की प्रधानता को पढ़ना और उचित रूप से पार्स करना अभी तक आप शीर्ष पर क्या करते हैं।

शीर्ष वास्तव में विशिष्ट फ़ंक्शन कॉल करके काम करता है जो फ़ाइलों से खींचने के बजाय इस जानकारी को सीधे कर्नेल से निकालते हैं। बैश से ऐसा करने के लिए आपको या तो इसे / proc वर्चुअल फ़ाइल सिस्टम से खींचना होगा, या अन्य कॉल जैसे कि इसे बाहर निकालना होगा ps

वास्तविक समय के लिए, यह विस्तार शीर्ष प्रदान करता है के स्तर पर काफी उल्लेखनीय नहीं है। आप समय को ठीक से स्लाइस कर सकते हैं कि यह वास्तविक समय में प्रतीत होता है, लेकिन आप अभी भी समय-स्लाइस प्राप्त कर रहे हैं।


2

एर्म, यदि आप topएक लंबे समय के लिए आउटपुट देख रहे हैं , और यह जांचने के लिए कि क्या कोई प्रोग्राम ठीक कर रहा है, तो मैं सुझाव देता हूं कि मैं htop का उपयोग कर रहा हूं

यह आपको वास्तविक समय की बहुत सारी जानकारी देता है और इसे नियंत्रित करना और प्रबंधित करना आसान है।

आप आउटपुट का लेआउट बदल सकते हैं, जैसे बार ग्राफ़ और कॉलम।


मेरा मानना ​​है कि वह पूछ रहा है कि कैसे एक ऐप लिखना है जो नियमित अंतराल पर मतदान करता है न कि विशेष रूप से शीर्ष या हॉपटॉप के बारे में।
क्रिस

1

topCurses का उपयोग करता है और /procफ़ाइल सिस्टम को पढ़ता है


1
सिवाय उन प्रणालियों को छोड़कर जिनके पास नहीं है /proc। जानकारी प्राप्त करने का दूसरा तरीका sysctl (8) / sysctl (3) है।
क्रिस पेज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.