अगर मैं &
इस तरह से पृष्ठभूमि में एक कमांड चलाता हूं :
sleep 2 &
जब आज्ञा पूरी हो जाती है, तो मुझे "हो गया"। मैं "पूर्ण" संदेश देखने से कैसे बच सकता हूं?
अगर मैं &
इस तरह से पृष्ठभूमि में एक कमांड चलाता हूं :
sleep 2 &
जब आज्ञा पूरी हो जाती है, तो मुझे "हो गया"। मैं "पूर्ण" संदेश देखने से कैसे बच सकता हूं?
जवाबों:
निर्मित शेल को निष्पादित करें:
$ set +m
यह "मॉनिटर मोड" को बंद करके काम करता है, इसलिए शेल पृष्ठभूमि की नौकरियों को समाप्त करने की रिपोर्ट नहीं करता है।
हालांकि एक उप-प्रकार में कमांड चलाना:
$ (sleep 2&)
... संदेश को भी अक्षम कर देगा , इसका एकमात्र कारण यह है क्योंकि मॉनिटर मोड केवल इंटरेक्टिव शेल के लिए डिफ़ॉल्ट रूप से सक्षम है। यही है, एक अतिरिक्त शेल चलाकर संदेश उपखंड से बच जाता है जिसमें एक स्वचालित "सेट + एम" होता है।
मैं पहले के दो उत्तर स्पष्ट करना चाहूंगा। यदि आप चाहते हैं कि आपके शेल में किसी भी कमांड से किया गया डोन संदेश देखने के लिए नहीं है, set +m
तो जाने का रास्ता है। बस इसे अपने .profile और / या .bashrc में डालें और किया जाए। हालाँकि, ध्यान दें कि यदि आप यह लिखते हैं:
set +m
sleep 2 &
set -m
और अंतिम के बाद नींद समाप्त हो जाती है set -m
, फिर भी आपको किया गया संदेश मिल जाएगा।
यदि आप किसी एकल कमांड मंगलाचरण के लिए संदेश को अक्षम करना चाहते हैं, तो सबस्क्रिप्शन तकनीक (sleep 2 &)
जाने का रास्ता है।
सभी ईमानदारी में, मैं केवल इस बारे में जानता था set +m
, इसलिए मुझे ज्ञानवर्धन के लिए Wooble करना +1। हालांकि, यह ध्यान देने योग्य है कि आप जो दो समाधान चाहते हैं, उस पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं।
jobs
करेंगे ( कुछ नहीं दिखाएंगे)।