इसे job control
यूनिक्स के तहत जाना जाता है । &
पृष्ठभूमि में आदेश डाल करने के लिए खोल सूचित। इसका मतलब है कि यह sys-snap.sh
कमांड को चलाना जारी रखता है, लेकिन आपको अपने शेल पर लौटाता है ताकि आप समानांतर कमांड को जारी रख सकें ।
आप वर्तमान में jobs
कमांड के साथ चल रही नौकरियों की सूची देख सकते हैं । आप कमांड का उपयोग करने के साथ कमांड ('अग्रभूमि में) ला सकते हैं fg
। कौन सा आदेश वापस राज्य है जहां आप कोई शीघ्र देखने के लिए खींचती है और आप जारी करने के लिए है Ctrl- Cकरने के लिए को मारने की प्रक्रिया। आप फिर भी कर सकते हैं निलंबित (विराम) है कि इस प्रक्रिया, जारी करने Ctrl- Z। यह आपको विराम देगा sys-snap.sh
और आपको आपके शीघ्र लौटा देगा । इसके बाद आप पृष्ठभूमि यह (जैसे कि आप इसे जारी किया है सकते हैं के साथ&
) के साथ bg
आदेश, और यह होगा फिर से शुरू से चल रहा है में रुके हुए राज्य Ctrl- Zमें रख दिया था।
ध्यान दें कि आपके पास एक समय में एक से अधिक काम हो सकते हैं (जैसा कि दिखाया गया है jobs
):
[1]- Running sys-snap.sh &
[2]+ Running another-script.sh &
आप उनके जॉब नंबर का उपयोग करके उन्हें पृष्ठभूमि और अग्रभूमि कर सकते हैं, %1
होगा sys-snap.sh
और %2
रहेगा another-script.sh
। यदि आप उपयोग करते हैं fg
या bg
तर्क के बिना यह ऊपर +
के jobs
आउटपुट में चिह्नित कार्य पर कमांड को क्रिया करेगा ।
fg %1
पृष्ठभूमि में sys-snap.sh
छोड़ते हुए, अग्रभूमि में वापस रखा जाएगा another-script.sh
।
आप Ctrl- आदेश को Cउनके साथ अग्रभूमि किए बिना चलने वाली नौकरियों के लिए अनुक्रम जारी कर सकते हैं kill
, kill %1
के बराबर भेज देंगे Ctrl- Cको sys-snap.sh
।
यदि आप बैश शेल का उपयोग कर रहे हैं, तो man bash
कमांड में एक विस्तृत खंड है, जिसमें 'JOB CONTROL' के सेक्शन में अधिक विवरण है।
के नाम के रूप में sys-snap.sh
, यूनिक्स फ़ाइल के तहत नाम मनमाने ढंग से (गतिशील लोडर फ़ाइलों की तरह अपवादों के एक जोड़े के साथ) हैं। उन्हें शेल स्क्रिप्ट के रूप में चलाने के लिए विशिष्ट फ़ाइल सीमाएँ रखने की कोई आवश्यकता नहीं है, अन्य आदेश जैसे कि perl
या php
आदि का उपयोग करें। यह आमतौर पर स्पष्टता प्रदान करने के लिए उपयोग किया जाता है, इस उदाहरण में, यह .sh
बॉर्न शेल का उपयोग करके एक शेल स्क्रिप्ट है /bin/sh
।
का कार्यात्मक हिस्सा sys-snap.sh
(जब आप इसे कुछ less
कमांड जैसी सामग्री के साथ देखते हैं ) शेबंग है । पहली पंक्ति पर आपको संभवतः निम्नलिखित में से एक मिलेगा:
#! /bin/sh
#! /bin/bash
#! /usr/local/bin/bash
या इसी के समान। बुनियादी शब्दों में, #!
(जैसे /bin/sh
) के बाद एक कमांड चलाया जाता है और बाकी स्क्रिप्ट फ़ाइल की सामग्री को एक समय में एक पंक्ति में खिलाया जाता है। ध्यान दें कि फ़ाइल को निष्पादन योग्य भी सेट किया जाना चाहिए chmod
ताकि आप इसे कमांड के रूप में चला सकें। यदि अनुमतियाँ सेट नहीं थीं, तो shebang
इसका कोई प्रभाव नहीं है, क्योंकि आपको या तो त्रुटि मिलेगी:
bash: sys-snap.sh: command not found
या यदि आप इसे स्पष्ट मार्ग से चलाते हैं ./sys-snap.sh
( .
जिसका अर्थ है कि वर्तमान कार्यशील निर्देशिका) तो आपको मिलेगा:
bash: ./sys-snap.sh: Permission denied
अन्य विकल्प इसे अनुमतियों को निष्पादित किए बिना छोड़ने के लिए है और इसे चलाने के लिए स्पष्ट रूप से पूछें / बिन / श:
/bin/sh sys-snap.sh &
&&
एक एम्परसेंड से अलग है&
?