अनजाने में टर्मिनल में एक अनंत लूप चला गया


9

मैंने नीचे के कोड को कुछ यादृच्छिक स्रोत से अपने टर्मिनल पर कॉपी किया और भाग गया:

while sleep 1;
  do tput sc;
  tput cup 0 $(($(tput cols)-29));
  date;
  tput rc;
done &

कोड टर्मिनल के ऊपरी दाएं कोने पर एक रनिंग क्लॉक दिखाना है। स्निपेट ने बहुत अच्छी तरह से काम किया और ठीक वही किया जो मैं चाहता था, लेकिन अब मैं इस लूप को समाप्त करना चाहता हूं और घड़ी से छुटकारा चाहता हूं।

इसके अलावा, मुझे उपरोक्त कोड को समझने की आवश्यकता है। मेरे पास कुछ विचार है, जैसा कि मुझे पता है कि tputकमांड क्या करता है, लेकिन अभी भी कई डॉट्स हैं जो मैं कनेक्ट करने में सक्षम नहीं हूं।


1
आप jobsसक्रिय पृष्ठभूमि की नौकरियों को सूचीबद्ध करने के लिए अपने सत्र में दौड़ सकते हैं और फिर टाइप करके इसे अग्रभूमि में रख सकते हैं fg <job number>। इस अनंत लूप को रोकने के लिए Ctrl + C टाइप करने के बाद। यह परिदृश्य केवल टर्मिनल में काम कर रहा है जो स्निपेट चलाता है।
युरिज गोन्चरुक

बहुत बहुत धन्यवाद, लूप से छुटकारा पाने का एक बहुत साफ तरीका। यह स्वीकृत उत्तर बन जाना चाहिए।
कार्तिक चौहान

आपका स्वागत है! मैंने उसे उत्तर बोला।
योरिज गोंचारुक

1
ध्यान दें कि बस टर्मिनल विंडो बंद करने से इससे जुड़ी सभी चल रही नौकरियां समाप्त हो जाएंगी।
trlkly

आपके यहाँ दो प्रश्न हैं। क्या आप 2 को विभाजित कर सकते हैं, एक नए प्रश्न के लिए।
ctrl-alt-delor-

जवाबों:


15

आप jobsसक्रिय पृष्ठभूमि की नौकरियों को सूचीबद्ध करने के लिए अपने सत्र में कमांड चला सकते हैं और फिर टाइप करके उन्हें अग्रभूमि में रख सकते हैं fg <job number>। फिर इस अनंत लूप को रोकने के लिए Ctrl+ टाइप Cकरें।

यह परिदृश्य केवल टर्मिनल में काम कर रहा है जो स्निपेट चलाता है।


स्पष्टीकरण:

tput sc - कर्सर स्थिति को बचाएं।

tput cup 0 $(($(tput cols)-29))- 0Y अक्ष और (count of screen columns minus 29)X अक्ष की स्थिति के लिए कर्सर ले जाएँ ।

date - बस वर्तमान तिथि प्रिंट करें।

tput rc - कर्सर स्थिति बहाल।

while sleep 1; ... do ... ; done - 1 सेकंड की देरी के साथ लूप।

शेल help whileमें whileलूप के बारे में अधिक जानने के लिए टाइप करें और यह जानने के लिए 1 tput या tldp tput doc आदमी का अनुसरण करें कि tput कैसे काम करता है।


मैं अब भी जानना चाहूंगा कि कोड ने यह कैसे किया।
कार्तिक चौहान 20

@ कर्णिकचौहान ने कुछ स्पष्टीकरण भी दिया।
योरिज गोनचारुक

@KartikChauhan आप सही हैं! धन्यवाद! मैंने अभी यह तय किया है।
योरिज गोनचारुक

3
kill %1(या एक अलग संख्या में अगर कई काम हैं) fg+ का विकल्प हैCtrl-C
रोमन ओडिसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.