यह समय की बात है: बैश hello
बैकग्राउंड में कमांड लॉन्च करता है, फिर यह आपको एक नई कमांड दर्ज करने देता है, फिर बैकग्राउंड कमांड कुछ आउटपुट प्रिंट करता है। जब आप अगली कमांड लाइन (एक खाली कमांड लाइन, यदि आप सिर्फ दबाते हैं Enter) दर्ज करते हैं, तो बैश नोटिफिकेशन दिखाता है कि बैकग्राउंड जॉब समाप्त हो गया है, फिर अगला प्रॉम्प्ट।
आप एक स्क्रिप्ट के साथ प्रयोग करना चाहते हैं जो शुरू होता है sleep 3
और स्क्रिप्ट को पृष्ठभूमि में लॉन्च करने के बाद टाइप करना शुरू कर देता है, यह देखने के लिए कि आप किस गति से हो रहे हैं।
जब आप बैकग्राउंड जॉब को notify
विकल्प के साथ सेट करके समाप्त करते हैं, तो आप तुरंत बैश कर सकते हैं set -b
। फिर आप देखेंगे:
$ set -b
$ hello &
[1] 12345
$ hello world!
[1]+ Done
बैश इस मामले में संकेत नहीं देता है। आप अभी भी उस प्रॉम्प्ट लाइन पर कमांड लाइन का संपादन कर रहे हैं जो पृष्ठभूमि की नौकरी छपने से पहले दिखाई देती है hello world!
। आप वर्तमान लाइन को Esc 1 Ctrl+ दबाकर फिर से तैयार कर सकते हैं L। आप कमांड redraw-current-line
को अधिक सुविधाजनक कुंजी से बांधना चाह सकते हैं ; उदाहरण के लिए, के लिए Ctrl+ Lवर्तमान पंक्ति पुनः बनाने और Ctrl+ Alt+ Lस्क्रीन साफ करें, अपना निम्न पंक्तियां जोड़ें ~/.inputrc
:
"\C-l": redraw-current-line
"\e\C-l": clear-screen
मुझे प्रॉम्प्ट लाइन को स्वचालित रूप से बैश बनाने का एक तरीका नहीं पता है। Zsh डिफ़ॉल्ट रूप से करता है।