Exec - Linux कमांड - युनिक्स कमान्ड

कार्यान्वयन - सबप्रोसेस (ईएस)

सारांश

कार्यान्वयन गर्ने ? स्विच गर्दछ ? arg ? आर्ग ... ?

विवरण

यो आदेशले यसको तर्कहरूलाई कार्यान्वयन गर्न एक वा बढी सबसोभेसनको विवरणको रूपमा व्यवहार गर्दछ। तर्कले मानक शेल पाइपलाइनको रूप लिन्छ जहाँ प्रत्येक आर्गन एक आदेशको एक शब्द बन्छ, र प्रत्येक फरक आदेश एक सबप्रोसेज हुन्छ।

यदि प्रारम्भिक तर्कहरूसँग सुरू गर्न कार्यान्वयन गर्दछ - त्यसपछि तिनीहरू कमान-लाइन स्विचहरूको रूपमा व्यवहार गरिन्छ र पाइपलाइन निर्दिष्टीकरणको भाग होइन। निम्न स्विच हाल समर्थित छन्:

खारेज गर्नुहोस्

पाइप लाइनको आउटपुटमा पछाडि नयाँलाइन राख्छ। सामान्यतया ट्रेलिंग न्यूलाइन मेटिने छ।

-

स्विचहरूको अन्त्यमा चिन्ह लगाउँछ। यो एकपछिको तर्कलाई पहिलो तर्कको रूपमा व्यवहार गरिनेछ यदि यो एक साथ सुरु हुन्छ -

यदि एक आर्गन (या आर्ग को जोड़ी) को तल वर्णित एक रूप मा छ, यो उपप्रसोधि (es) को बीच इनपुट र आउटपुट को प्रवाह को नियंत्रित गर्न को लागी निष्पादित द्वारा प्रयोग गरिन्छ। यस्तो तर्कहरू subprocess (es) मा पारित हुने छैन। फाइलहरू `` < fileName '' को रूपमा वा " # ` '' वा '"'` `फाइल '' 'कुनै हस्तक्षेप अन्तरिक्षको साथ एउटै तर्कमा फरक तर्कमा हुन सक्दछ।

|

पाइप लाइनमा अलग आदेशहरू अलग गर्दछ। अघिल्लो कमानको मानक आउटपुट अर्को आदेशको मानक इनपुटमा पाइप गरिनेछ।

| &

पाइप लाइनमा अलग आदेशहरू अलग गर्दछ। दुवै मानक आउटपुट र पूर्वनिर्धारित आदेशको मानक त्रुटि अर्को आदेशको मानक इनपुटमा पाइप गरिनेछ। पुन: वितरण ओवरराइडको यो फारम जस्तै 2> र> &।

< fileName

फाइलनाम द्वारा नाम दिइएको फाइल खोलिएको छ र पाइप लाइनमा पहिलो आदेशको लागि मानक इनपुटको रूपमा प्रयोग गरिन्छ।

<@ फाइलआईडी

FileId खुल्ला फाईलका लागि परिचयकर्ता हुनुपर्दछ, जस्तै अघिल्लो कलबाट फर्काउने कलको फिर्ती मान। यो पाइप लाइनमा पहिलो आदेशको लागि मानक इनपुटको रूपमा प्रयोग गरिन्छ। फाइलआईडी पढ्नको लागी खोलिएको हुनुपर्छ।

<< मान

मान यसको मानक इनपुटको रूपमा पहिलो आदेशमा पारित हुन्छ।

> fileName

अन्तिम आदेशबाट मानक आउटपुट फाइल नाममा फाइलमा पुन: निर्देशित गरिएको छ, यसको पछिल्लो सामग्री अधिलेखन।

2> fileName

पाइपलाइनमा सबै आदेशहरूबाट मानक त्रुटि फाइल नाममा फाइलमा पुन: निर्देशित गरिएको छ, यसको पछिल्लो सामग्री अधिलेखन।

> & fileName

अन्तिम आदेश र सबै आदेशहरूबाट मानक त्रुटि दुवै फाइल नाममा फाईलमा पुनः निर्देशित गरिन्छ, यसको अघिल्लो सामग्री अधिलेखन।

फाइल फाइल

अन्तिम आदेशबाट मानक आउटपुट फाइल नाममा फाईलमा पुन: निर्देशित गरिएको छ, यसलाई अधिलेखन गर्नुको सट्टा संलग्न।

2 फाइल फाइल

पाइपलाइनमा सबै आदेशहरूबाट मानक त्रुटि फाइल नाममा फाईलमा पुन: निर्देशित गरिएको छ, यसलाई अधिलेखन गर्नुको सट्टा संलग्न।

>> फाइलनाम

अन्तिम आदेश र सबै आदेशहरूबाट मानक त्रुटि दुवै फाइल नाममा फाईलमा पुनः निर्देशित गरिन्छ, यसलाई अधिलेखन गर्नुको सट्टा संलग्न।

> @ फाइलआईडी

FileId खुल्ला फाईलका लागि परिचयकर्ता हुनुपर्दछ, जस्तै अघिल्लो कलबाट फर्काउने कलको फिर्ती मान। अन्तिम आदेशबाट मानक आउटपुट फाईलमा पुन: निर्देशित गरिएको छ फाइलको, जुन लिखित रूपमा खोलिएको हुनुपर्छ।

2> @ fileId

FileId खुल्ला फाईलका लागि परिचयकर्ता हुनुपर्दछ, जस्तै अघिल्लो कलबाट फर्काउने कलको फिर्ती मान। पाइपलाइनमा सबै आदेशहरूबाट मानक त्रुटि फाइलको लागि पुन: निर्देशित गरिएको छ फाइलको। फाइल खोल्नको लागि खोलिएको हुनुपर्छ।

> & @ फाइलआईडी

FileId खुल्ला फाईलका लागि परिचयकर्ता हुनुपर्दछ, जस्तै अघिल्लो कलबाट फर्काउने कलको फिर्ती मान। अन्तिम आदेश र सबै आदेशबाट मानक त्रुटि दुवै मानक आउटपुट फाइलको लागि पुन: निर्देशित गरिएको छ। फाइल खोल्नको लागि खोलिएको हुनुपर्छ।

यदि मानक आउटपुट पुन: निर्देशित गरिएको छैन भने कार्यान्वयन आदेशले पाइपलाइनमा अन्तिम आदेशबाट मानक आउटपुट फर्काउँछ। यदि पाइपलाइनबाट बाहिर निस्कने कुनै आदेशहरू असामान्य रूपमा वा मर्छ वा निलम्बित हुन्छ भने, एक्स्टेन्सनले त्रुटि फर्काउँछ र त्रुटि सन्देशले पाइपलाइनको उत्पादन समावेश गर्दछ जुन त्रुटि सन्देशहरू असामान्य बन्दुकहरू वर्णन गर्दछ; errorCode चरले अन्तिम असामान्य समाप्तिको बारेमा अतिरिक्त जानकारी समावेश गरेको छ। यदि कुनै पनि आदेशहरू यसको मानक त्रुटि फाईलमा लेख्छन् र मानक त्रुटि पुन: निर्देशित गरिएको छैन भने, त्यसपछि कार्यान्वयन त्रुटि फिर्ता हुनेछ; त्रुटि सन्देशले पाइपलाइनको मानक आउटपुट समावेश गर्दछ, पछि असामान्य अवरोधहरूको बारेमा सन्देशहरू (यदि कुनै हो) पछि, मानक त्रुटि उत्पादन पछि।

यदि नतीजा वा त्रुटि सन्देशको अन्तिम क्यारेक्टर एक नयाँलाइन हो भने त्यो क्यारेक्टर सामान्यतया परिणाम वा त्रुटि सन्देशबाट हटाइएको छ। यो अन्य Tcl रिटर्न मानहरूसँग अनुरूप छ, जुन सामान्यतया नयाँलाइनहरूसँग समाप्त हुँदैन। यद्यपि, यदि -केकेनेभलाइन तोकिएको छ भने पछाडि नयाँलाइन राखिएको छ।

यदि मानक इनपुट `` <'' वा `` << '' वा `` '' को साथ पुनः निर्देशित गरिएको छैन पाइपलाइनमा पहिलो आदेशको लागि मानक इनपुट अनुप्रयोगको हालको मानक इनपुटबाट लिइएको छ।

यदि अन्तिम आर्गु `` & '' हो भने पाइपलाइन पृष्ठभूमिमा कार्यान्वयन गरिने छ। यस अवस्थामा, कार्यान्वयन आदेशले एक सूचीमा फर्काउँछ जसका तत्वहरू पाइपलाइनमा सबै सबसोभेसिहरूका लागि प्रक्रिया पहिचानकर्ताहरू हुन्। पाइपलाइनमा अन्तिम आदेशबाट मानक आउटपुट अनुप्रयोगको मानक उत्पादनमा जानुपर्छ यदि यसलाई पुन: निर्देशित गरिएको छैन, र पाइपलाइनमा सबै आदेशहरूबाट त्रुटि आउटपुट अनुप्रयोगको मानक त्रुटि फाईलमा पुग्छ जबसम्म पुन: निर्देशित हुँदैन।

प्रत्येक आदेशमा पहिलो शब्द आदेश नामको रूपमा लिइन्छ; tilde-substitution यो मा प्रदर्शन गरिएको छ, र यदि परिणाममा कुनै स्लाशहरू छैन भने PATH वातावरण चरमा निर्देशिकाहरू नाम दिइएको नामबाट कार्यान्वयनयोग्य खोजी गरिएको छ। यदि नामले स्ल्याश समावेश गर्दछ भने यो हालको डाइरेक्टरीबाट कार्यान्वयनयोग्य पहुँचको उल्लेख गर्नुपर्छ। कुनै `` विश्वव्यापी '' विस्तार वा अन्य शेल-जस्तै substitutions तर्क गर्न आदेशहरूमा प्रदर्शन गरिन्छ।

पोर्टेबिलिटी मुद्दाहरू

विन्डोज (सबै संस्करणहरु)

`` @ FileId '' टिप्पणी प्रयोग गरेर वा सेकेटमा लेख्नु , काम गर्दैन। एक सकेट पढ्दा, 16-बिट DOS अनुप्रयोग फाँट हुनेछ र एक 32-बिट अनुप्रयोगलाई अन्त-अफ-फाइलसँग तुरुन्तै फर्किनेछ। जब एक प्रकारको अनुप्रयोगले सर्टकटमा लेख्छ, जानकारी यसको सट्टा कन्सोलमा पठाउँछ भने, यदि एक छ भने वा छोडिएको छ।

Tk कन्सोल पाठ विजेटले वास्तविक मानक IO क्षमताहरू प्रदान गर्दैन। Tk अन्तर्गत, मानक आगतबाट पुनः निर्देशित गर्दा, सबै अनुप्रयोगहरूले तत्काल अन्त्यको फाइल देख्नेछन्; जानकारीलाई मानक आउटपुट वा मानक त्रुटिमा पुनः निर्देशित गरिनेछ खारेज गरिनेछ।

या त फर्वार्ड वा पछाडि स्लैशहरू तर्कका लागि पथ विभाजकहरूको रूपमा Tcl आदेशहरूमा स्वीकृत छन्। अनुप्रयोगलाई कार्यान्वयन गर्दा, अनुप्रयोगको लागि निर्दिष्ट पथ नाममा पथ विभाजकहरूको रूपमा अगाडि वा पछाडि स्लैश समावेश हुन सक्छ। तथापि, दिमाग मा ध्यान दिनुहोस कि ज्यादातर विन्डोज अनुप्रयोगहरु ले केवल अगाडी पथ मा विकल्प डिलिमिटर र बैकस्लैश को रूप मा अगाडी स्लैश्स संग तर्क स्वीकार गर्छन। अनुप्रयोगमा कुनै पनि आर्गुमेन्टहरू अघिल्लो स्ल्याशेससँग पथ नाम निर्दिष्ट गर्ने स्वचालित रूपमा ब्याकस्ल्याश क्यारेक्टर प्रयोग गर्नको लागि रूपान्तरण गरिने छैन। यदि तर्कले पथ विभाजकको रूपमा अगाडिल्लो स्ल्याशहरू समावेश गर्दछ भने, यो कार्यक्रममा आधारमा, वा पथ नामको रूपमा मान्यता प्राप्त गर्न सकिँदैन वा हुन सक्छ।

यसको अतिरिक्त, जब 16-बिट डOS वा विन्डोज 3 एक्स अनुप्रयोगको कल गर्दा, सबै पथ नामहरूलाई छोटो, क्रिप्टिक, पथ ढाँचा प्रयोग गर्नु पर्दछ (जस्तै, `` applbaak.def '' को प्रयोग गरेर `` applbakery.default '' को सट्टामा। )।

पथमा पङ्क्तिमा दुई वा बढी फर्वार्ड वा पछाडि स्लाइडहरू नेटवर्क मार्गलाई उल्लेख गर्दछ। उदाहरणको लागि, मूल डाइरेक्टरी सी को एक सरल समाप्ति : / उपनिर्देशिका / विन्डोज / प्रणाली संग सी: // विन्डोज / प्रणाली (दुई स्लैशेस एक साथ), जो माउंट प्वाइंट लाई संदर्भित गर्दछ जो विंडोज मा विंडोज भनिन्छ मिसिन (र c: / उपेक्षा गरिएको छ), र c: / windows / system को बराबर छैन जुन वर्तमान कम्प्युटरमा डाइरेक्टरी वर्णन गर्दछ। फाईलमा सामेल हुनुपर्दछ पथ घटकहरू कम्तिमा घुमाउन प्रयोग गरिनु पर्छ।

विन्डोज NT

एक अनुप्रयोग निष्पादित गर्ने प्रयास गर्दा, पहिले निर्दिष्ट खोजीहरू नामको रूपमा निर्दिष्ट गरिएको छ। त्यसपछि, क्रममा, .com , .exe , र .bat निर्दिष्ट नामको अन्त्यमा संलग्न हुन्छन् र यो लामो नामको लागि खोजी गर्दछ। यदि डाइरेक्टरी नाम अनुप्रयोग नामको भागको रूपमा निर्दिष्ट गरिएको थिएन भने, अनुप्रयोगहरू पत्ता लगाउन प्रयास गर्दा निम्न डाइरेक्टरीहरू स्वचालित रूपमा क्रमबद्ध हुन्छ:

डाइरेक्टरीले Tcl कार्यान्वयनयोग्य लोड भएको थियो।
हालको डाइरेक्टरी।
विन्डोज NT 32 बिट प्रणाली डाइरेक्टरी।
विन्डोज NT 16 बिट प्रणाली डाइरेक्टरी।
विन्डोज NT गृह डाइरेक्टरी।
पथमा सूचीबद्ध निर्देशिकाहरू।

डायल र प्रतिलिपि जस्ता शेल निर्माण आदेशहरू कार्यान्वयन गर्नको लागि, कलरले `` cmd.exe / c 'वांछित आदेशमा उपेक्षा गर्नुपर्छ।

विन्डोज 95

एक अनुप्रयोग निष्पादित गर्ने प्रयास गर्दा, पहिले निर्दिष्ट खोजीहरू नामको रूपमा निर्दिष्ट गरिएको छ। त्यसपछि, क्रममा, .com , .exe , र .bat निर्दिष्ट नामको अन्त्यमा संलग्न हुन्छन् र यो लामो नामको लागि खोजी गर्दछ। यदि डाइरेक्टरी नाम अनुप्रयोग नामको भागको रूपमा निर्दिष्ट गरिएको थिएन भने, अनुप्रयोगहरू पत्ता लगाउन प्रयास गर्दा निम्न डाइरेक्टरीहरू स्वचालित रूपमा क्रमबद्ध हुन्छ:

डाइरेक्टरीले Tcl कार्यान्वयनयोग्य लोड भएको थियो।
हालको डाइरेक्टरी।
विन्डोज 95 प्रणाली डाइरेक्टरी।
विन्डोज 95 गृह डाइरेक्टरी।
पथमा सूचीबद्ध निर्देशिकाहरू।

शेल बनाइएको आदेशहरू जस्तै डिनप्रतिलिपि जस्तै कार्यान्वयन गर्न, कलरलाई ` command.com / c 'को इच्छित आदेशमा पेश गर्नु पर्छ।

एक पटक 16-बिट DOS अनुप्रयोगले कन्सोलबाट मानक इनपुट पढ्नुभएपछि र त्यसपछि छोड्नुहोस्, त्यसपछि पछि सबै 16-बिट डस अनुप्रयोगहरू मानक इनपुट पहिल्यै बन्द भएको देख्नेछन्। 32-बिट अनुप्रयोगहरूसँग यस समस्या छैन र सही तरिकाले चल्नेछ, 16-बिट DOS अनुप्रयोग पछि मानक आगत बन्द हुन्छ भनेर सोच्दछ। यस समयमा यो बगको लागि कुनै ज्ञात workaround छैन।

NUL बीच यन्त्रमा पुनःस्थापन: र 16-बिट अनुप्रयोगले सधैं काम गर्दैन। NUL बाट पुन : निर्देशित गर्दा: केही अनुप्रयोगहरू ह्याङ्ग गर्न सक्छन्, अन्यहरूले अनन्त स्ट्रीम `` 0x01 'बाइट्स प्राप्त गर्नेछन्, र केहीले वास्तवमा सही रूपमा तत्काल अन्त-फाइल प्राप्त गर्नेछन्। व्यवहारले आफैले अनुप्रयोगमा संकलित केहि कुरामा निर्भर गर्दछ। जब 4K वा सोभन्दा बढी एन्युएलमा पुन: निर्देशित गर्दै : केही अनुप्रयोगहरू ह्याङ्ग हुनेछ। माथिको समस्या 32-बिट अनुप्रयोगहरूसँग हुँदैन।

सबै DOS 16-बिट अनुप्रयोगहरू सिंक्रोनाइजमा चल्छन्। पाइपबाट सबै मानक इनपुट 16-बिट DOS अनुप्रयोगमा एक अस्थायी फाइलमा एकत्रित गरिएको छ; 16-बिट DOS अनुप्रयोगले कार्यान्वयन सुरु गर्नु अघि पाइपको अर्को अन्त्य बन्द हुनुपर्छ। पाइपमा 16-बिट DOS अनुप्रयोगबाट सबै मानक आउटपुट वा त्रुटि अस्थायी फाइलहरूमा एकत्रित गरिन्छ; अनुप्रयोगले अस्थायी फाइलहरू पाइपलाइनको अर्को चरणमा पुन: निर्देशित गर्नु अघि समाप्त गर्न पर्छ। यो पाइप्सको कार्यान्वयनमा विन्डोज 95 बगको लागि एक workaround कारण हो, र कसरी मानक Windows 95 DOS शेलले पाइपहरू स्वचालित रूपमा संभाल्छ।

केहि अनुप्रयोगहरू, जस्तै command.com , अन्तरक्रियात्मक रूपमा कार्यान्वयन गर्न हुँदैन। अनुप्रयोगहरू जसले उनीहरूको मानक इनपुटबाट पढ्न सट्टामा कन्सोल सञ्झ्याललाई पहुँच पुर्याउँदछ र उनीहरूको मानक आउटपुटमा लेख्न असफल हुन सक्छ, Tcl लाई पर्खनुहोस् वा उनीहरूको निजी कन्सोल विन्डो उपलब्ध छैन भने प्रणालीलाई ह्याङ्ग गर्न सक्छ।

Macintosh

कार्यान्वयन आदेश लागू गरिएको छैन र म्याकिन्टोस भित्र अवस्थित छैन।

युनिक्स

कार्यान्वयन आदेश पूर्ण कार्यात्मक छ र वर्णन गरिएको रूपमा कार्य गर्दछ।

यो पनि हेर्नुहोस्

त्रुटि (एन), खुला (एन)

खोजशब्दहरू

निष्पादित, पाइपलाइन, पुनरावृत्ति, सबप्रोसेन्स

महत्वपूर्ण: तपाईको विशेष कम्प्युटरमा आदेश कसरी प्रयोग गरिन्छ भनेर हेर्नको लागि मानिसको आदेश ( % मानिस ) प्रयोग गर्नुहोस्।