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

exec - सबप्रोसेक्स् स्वीकार करा (एसए)

सारांश

exec ? स्विचेस ? आर्ग ? आर्ग ...... ?

वर्णन

हा आदेश त्याच्या वितर्कांना एक किंवा अधिक उपप्रक्रिया कार्यान्वित करण्यासाठी निर्दिष्ट करतो. वितर्क मानक शेल पाइपलाइनचे स्वरूप घेतात जिथे प्रत्येक आर्ग आदेशाचे एक शब्द बनतात आणि प्रत्येक भिन्न आज्ञा उपप्रोसेस बनते.

प्रारंभिक आर्ग्यूमेंटस चालू झाल्यास - नंतर त्यांना कमांड-लाइन स्विच म्हणून समजले जाते आणि पाइपलाइन निर्देशनाचा भाग नाही. खालील स्विच सध्या समर्थित आहेत:

-keepnewline

पाइपलाइनच्या आउटपुटमध्ये अनुसरणीची नवीन रेखा कायम ठेवते. सामान्यत: एक अनुसरणीची नवीन रेखा हटविली जाईल.

-

स्विचेसची समाप्ती चिन्हांकित करते खालीलपैकी एक तर्क पुढील आरम्भाने सुरु झाला तरी -

जर एखाद्या आरजीआर (किंवा arg च्या जोडीचे) मध्ये खाली नमूद केलेल्या फॉर्मपैकी एक फॉर्म असेल तर तो उपप्रकाशन (एस्प) मध्ये इनपुट आणि आउटपुटच्या प्रवाह नियंत्रित करण्यासाठी exec द्वारे वापरला जातो. अशा प्रकारचे तर्क उपप्रभावी (एस्ए) कडे दिले जाणार नाहीत. `` < फाइलनाव '' फाईलमधील फॉर्म हा एकतर `` <`'च्या वेगळ्या वितणात असू शकतो किंवा त्याच मध्यवर्ती जागेत ( उदा.` `< FileName ' ') नाही.

|

पाइपलाइनमधील भिन्न आज्ञा विभक्त करा मागील आदेशाचा मानक आउटपुट पुढील कमांडच्या मानक इंपुट मध्ये पाइप केला जाईल.

| & Gt;

पाइपलाइनमधील भिन्न आज्ञा विभक्त करा मागील आदेशाचे मानक आउटपुट आणि मानक एरर दोन्ही पुढील आदेशाच्या स्टँडर्ड इंपुटमध्ये पाइप केले जाईल. रीडायरेक्शनचे हे स्वरूप 2> आणि> & सारखे फॉर्म अधिलिखित करते

< फाइलनाव

FileName नामांकीत फाईल उघडलेल्या आणि पाइपलाइनमध्ये पहिल्या कमांडसाठी मानक इनपुट म्हणून वापरली जाते.

<@ fileId

फाइलइड्ड उघडलेल्या फाईलसाठी आयडेंटीफायर असलीच पाहिजे, जसे की मागील कॉलवरून रिटर्न मूल्य उघडण्यासाठी . हे पाईपलाइनमधील पहिल्या कमांडसाठी मानक इनपुट म्हणून वापरले जाते. फाइलइडी वाचण्यासाठी उघडलेले असले पाहिजे.

<< मूल्य

प्रथम आज्ञेला त्याचे मानक इनपुट म्हणून मूल्य दिला आहे.

> फाइलनाम

मागील कमांडचे स्टँडर्ड आउटपुट, फाईलनेम नावाच्या फाईलकडे पुनर्निर्देशित केले आहे.

2> फाइलनाम

पाईपलाइनमधील सर्व कमांड्स मधील स्टँडर्ड एरर फाईलला नाव असलेल्या फाईलकडे रीडायरेक्ट करण्यात आली आहे.

> & फाइलनाम

शेवटच्या कमांडचे मानक आउटपुट आणि सर्व कमांड्स मधील स्टँडर्ड एरम दोन्ही फाईलला FileName नामक फाईलकडे पुनर्निर्देशित केले आहे.

>> फाइलनाम

शेवटच्या कमांडचे स्टँडर्ड आऊटपुट फाईलनेम नामक फाईलकडे पाठविते .

2 >> फाइलनाम

पाइपलाइनमधील सर्व कमांड्समधील स्टँडर्ड एरर फाईलला नाव असलेल्या फाइलवर रीडायरेक्ट केले आहे, त्यास जोडणे ऐवजी त्यास ओव्हरराईट करणे नव्हे.

>> आणि fileName

शेवटच्या कमांडचे मानक आऊटपुट आणि सर्व कमांड्स मधील स्टँडर्ड एरम दोन्ही फाईल नामनाम असलेल्या फाईलकडे ओव्हररायटिंग करण्याऐवजी त्यास जोडलेले आहेत.

> @ fileId

फाइलइड्ड उघडलेल्या फाईलसाठी आयडेंटीफायर असलीच पाहिजे, जसे की मागील कॉलवरून रिटर्न मूल्य उघडण्यासाठी . शेवटच्या कमांडचे स्टँडर्ड आऊटपुट फाईलआइडीच्या फाईलकडे रिडायरेक्ट झाले आहे, जे लिहिण्यासाठी उघडलेले आहे.

2> @ fileId

फाइलइड्ड उघडलेल्या फाईलसाठी आयडेंटीफायर असलीच पाहिजे, जसे की मागील कॉलवरून रिटर्न मूल्य उघडण्यासाठी . पाईपलाइनमधील सर्व कमांड्समधील स्टँडर्ड एरर फाईलआइडीच्या फाईलकडे रिडायरेक्ट झाला आहे. फाइल लिहिण्यासाठी उघडलेली असली पाहिजे.

> & @ fileId

फाइलइड्ड उघडलेल्या फाईलसाठी आयडेंटीफायर असलीच पाहिजे, जसे की मागील कॉलवरून रिटर्न मूल्य उघडण्यासाठी . शेवटच्या कमांडचे मानक आऊटपुट आणि सर्व कमांड्स मधील स्टँडर्ड एरम दोन्ही फाइल आयडी च्या फाईलकडे रिडायरेक्ट झाले आहेत. फाइल लिहिण्यासाठी उघडलेली असली पाहिजे.

जर मानक आउटपुट रीडायरेक्ट केले गेले नाही तर exec कमांड पाईपलाईनमध्ये शेवटच्या कमांडमधील मानक आउटपुट परत करेल. जर पाईपलाईनमधील कोणतीही आज्ञा असामान्यपणे बाहेर पडली किंवा ठार झाली किंवा निलंबित केले गेले तर exec एक त्रुटी परत करेल आणि त्रुटी संदेशात पाइपलाइनचे आऊटपुट असामान्य त्रुटींच्या वर्णन करणार्या त्रुटी संदेशांचा समावेश असेल; errorCode वेरियेबलमध्ये आलेले अंतिम असामान्य समाप्तीबद्दल अतिरिक्त माहिती समाविष्ट असेल. जर कोणत्याही आज्ञा आपल्या मानक त्रुटी फाइलवर लिहीले तर ते स्टँडर्ड एरर रीडायरेक्ट होणार नाही, मग exec एक एरर देईल; एरर मेसेजमध्ये पाइपलाइनचे मानक आउटपुट असेल, त्यानंतर असामान्य टर्मिनेशन (जर असेल तर), त्यानंतरच्या एरर आउटपुटचे संदेश.

जर परिणाम किंवा त्रुटी संदेशाचा शेवटचा अक्षर एक नवीन रेखा असेल तर तो अक्षराचा परिणाम परिणामी किंवा त्रुटी संदेशामधून हटविला जातो. हे इतर टीसीएल रिटर्न व्हॅल्यूसह सुसंगत आहे, जे सामान्यत: न्यूलाइंस बरोबर नाही. तथापि, जर - keepnewline निर्दिष्ट केले असेल तर ट्रेलिंग न्यूलाईन कायम ठेवला जाईल.

जर मानक इनपुट `` <'' किंवा `` << '' किंवा `` <@ '' वर पुनर्निर्देशित केला नाही तर प्रथम पाईपलाइनमधील आज्ञेकरिता मानक इनपुट हा अनुप्रयोगाच्या सध्याच्या मानक इनपुटमधून घेतला जातो.

जर शेवटचा मुद्दा `` आणि '' असेल तर पाइपलाइन पार्श्वभूमीवर कार्यान्वित होईल. या प्रकरणात exec आज्ञा सूची परत करेल ज्याची मूल्ये पाइपलाइनमधील सर्व उपप्रक्रियेसाठी प्रक्रिया अभिज्ञापक आहेत. जर ते रीडायरेक्ट केले गेले नाही तर पाईपलाइनमधील शेवटच्या कमांडमधील मानक आउटपुट अनुप्रयोगाच्या मानक आउटपुटवर जाईल आणि पुनर्निर्देशित केल्याशिवाय पाईपलाइनमधील सर्व आदेशांमधील त्रुटी आऊटपुट अनुप्रयोगाच्या मानक त्रुटी फाइलवर जाईल.

प्रत्येक आदेशातील प्रथम शब्द आज्ञा नाव म्हणून घेतले जाते; टिल्ड-प्रतिस्थापन यावर केले जाते, आणि परिणामात कोणतेही स्लॅश नसल्यास PATH Environment वेरिअबलमधील निर्देशिका दिलेल्या नावाने कार्यान्वीत करता येते. जर नावात स्लॅश असेल तर चालू निर्देशिकेतून एक्झिक्यूबलला जाण्यायोग्य असा उल्लेख करणे आवश्यक आहे. नाही `` ग्लोब '' विस्तार किंवा अन्य शेलसारखाप्रतिष्ठित आदेश आज्ञा आर्ग्युमेंटवर केले जातात.

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

विंडोज (सर्व आवृत्त्या)

`` @ FileId '' नोटेशन वापरून, वाचन किंवा सॉकेटमध्ये लिहून काम करत नाही. सॉकेटवरून वाचन करताना, एक 16-बिट DOS अनुप्रयोग स्तब्ध होईल आणि 32-बिट अनुप्रयोग अखेरच्या फाईलसह लगेच परत येईल. जेव्हा एखादा प्रकार एक अनुप्रयोग सॉकेटमध्ये लिहितो तेव्हा माहिती कंसोलकडे पाठविली जाते, त्यापैकी एक उपस्थित असेल किंवा ती टाकून दिली जाते.

दि कंसोल पाठ विजेट वास्तविक मानक IO कार्यक्षमता पुरवत नाही. टी अंतर्गत, मानक इनपुट पासून पुनर्निर्देशित करताना, सर्व अनुप्रयोगांना फास्ट ऑफ फाईल्स दिसेल; मानक आउटपुट किंवा स्टँडर्ड एररकडे पुनर्निर्देशित केलेली माहिती टाकून दिली जाईल.

एकतर Tcl आज्ञांना अग्रेषित किंवा बॅकवर्ड स्लॅश अग्रेषित करण्यासाठी पथ विभाजक म्हणून स्वीकारले जातात. अनुप्रयोग चालविताना अनुप्रयोग करीता निर्देशीत पथ नावमध्ये पथ विभाजक म्हणून फॉरवर्ड किंवा बॅकवर्ड स्लॅश असू शकतात. तथापि, लक्षात ठेवा की बहुतेक विंडोज अनुप्रयोग केवळ मार्गांमध्ये पर्याय मर्यार्यकर्ता आणि बॅकस्लॅश म्हणून अग्रेषित स्लॅशसह आर्ग्यूमेंट स्वीकारतात. अनुप्रयोगासाठी कोणतीही आर्ग्यूमेंट जी फॉरवर्ड स्लॅशसह पथ नाव निर्दिष्ट करते ती स्वयंचलितपणे बॅकस्लॅश वर्ण वापरण्यासाठी रूपांतरित केली जाणार नाही. जर एखाद्या वितरणात मार्ग विभाजक म्हणून फॉरवर्ड स्लॅश असेल तर, प्रोग्रॅमच्या आधारावर, हे पथ नाव म्हणून ओळखले जाऊ शकते किंवा नाही.

याव्यतिरिक्त, एक 16-बिट DOS किंवा Windows 3.X अनुप्रयोग कॉल करताना, सर्व मार्ग नावांनी संक्षिप्त, गुप्त, पाथ स्वरूप (उदा. `` Applbakery.default '' ऐवजी `` applba ~ 1.def '' वापरणे आवश्यक आहे) ).

एका मार्गावर पंक्तीमधील दोन किंवा अधिक फॉरवर्ड किंवा बॅकवर्ड स्लॅश नेटवर्क पथ पहा. उदाहरणार्थ, रूट निर्देशिका / c: / एक उपनिर्देशिका / windows / system सह c: // windows / system (दोन स्लॅश एकत्र) मिळतील, जे यंत्र नावाचे माऊंट पॉइंट असते ( उदा. c: / दुर्लक्ष केले जाते), आणि c: / windows / system शी समतुल्य नाही, जे सध्याच्या संगणकावरील निर्देशिकेत वर्णन करते. फाईल सह कमांडचा उपयोग मार्ग घटक एकत्र करण्यासाठी केला जावा.

विंडोज एनटी

अनुप्रयोग चालविण्याचा प्रयत्न करताना, exec प्रथम निर्दिष्ट केल्यानुसार नाव शोधते. नंतर, ऑर्डर, .com , .exe , आणि .bat हे निर्दिष्ट केलेल्या नावाच्या शेवटी संलग्न केले जातात आणि ते जास्त काळ शोधते. जर अनुप्रयोगाचे भाग म्हणून निर्देशिका नाव निर्दिष्ट केले नसल्यास, अनुप्रयोगाची स्थिती शोधताना पुढील निर्देशिका स्वयंचलितपणे शोधल्या जातात:

निर्देशिका ज्यावरून Tcl निष्कालनायोग्य लोड झाला होता.
वर्तमान निर्देशिका
विंडोज एनटी 32-बिट प्रणाली निर्देशिका.
विंडोज एनटी 16-बिट प्रणाली निर्देशिका.
विंडोज एनटी होम डिरेक्टरी
पथ मध्ये सूचीबद्ध निर्देशिका

डीर आणि कॉपी सारख्या शेल तयार केलेल्या आज्ञा अंमलात आणण्यासाठी, कॉलरला आवश्यक आदेशासाठी `` cmd.exe / c '' आवश्यक आहे.

विंडोज 9 5

अनुप्रयोग चालविण्याचा प्रयत्न करताना, exec प्रथम निर्दिष्ट केल्यानुसार नाव शोधते. नंतर, ऑर्डर, .com , .exe , आणि .bat हे निर्दिष्ट केलेल्या नावाच्या शेवटी संलग्न केले जातात आणि ते जास्त काळ शोधते. जर अनुप्रयोगाचे भाग म्हणून निर्देशिका नाव निर्दिष्ट केले नसल्यास, अनुप्रयोगाची स्थिती शोधताना पुढील निर्देशिका स्वयंचलितपणे शोधल्या जातात:

निर्देशिका ज्यावरून Tcl निष्कालनायोग्य लोड झाला होता.
वर्तमान निर्देशिका
विंडोज 9 5 प्रणाली निर्देशिका.
विंडोज 95 होम डिरेक्टरी
पथ मध्ये सूचीबद्ध निर्देशिका

डीर आणि कॉपी सारख्या शेल तयार केलेल्या आज्ञा अंमलात आणण्यासाठी, कॉलरला आवश्यक आदेशासाठी `` command.com / c '' आवश्यक आहे.

एकदा 16-बीट डीओएस अनुप्रयोगाने कन्सोलपासून मानक इनपुट वाचले आणि नंतर बाहेर पडले, त्यानंतर सर्व 16-बीट डॉस ऍप्लिकेशन्स चालविल्या जातील. 32-बिट ऍप्लिकेशन्सेसमध्ये ही समस्या नाही आणि 16-बीट डीओएस ऍप्लिकेशन्सत असल्यानंतर मानक इनपुट बंद असल्याचे समजल्यानंतरही योग्य रितीने चालत जाईल. यावेळी या बगसाठी कोणतीही ज्ञात परिपाठ नाही.

NUL: डिव्हाइस आणि एक 16-बिट अनुप्रयोग यांच्यात रीडायरेक्शन नेहमी कार्य करत नाही. NUL कडून पुनर्निर्देशित करतेवेळी , काही अनुप्रयोग स्तब्ध होऊ शकतात, इतरांना `0x01 'बाइट्सची अमर्यादित प्रवाह मिळेल आणि काही प्रत्यक्षात तातडीने फाईल ऑफ तत्काळ मिळतील; वर्तन काहीतरी स्वतःच अनुप्रयोग मध्ये संकलित अवलंबून आहे असे दिसते 4K किंवा NUL पेक्षा अधिक पुनर्निर्देशित करतेवेळी , काही अनुप्रयोग स्तब्ध होतील. 32-बिट अनुप्रयोगांसह वरील समस्या उद्भवत नाहीत.

सर्व DOS 16-बिट अनुप्रयोग समक्रमितपणे चालवले जातात. एक 16-बीट डीओएस अनुप्रयोगासाठी एका पाईप वरून सर्व मानक इनपुट एका तात्पुरत्या फाईलमध्ये संग्रहित केले जाते; 16-बीट डॉस ऍप्लिकेशन चालू होण्याआधी पाईपचा दुसरा भाग बंद करणे आवश्यक आहे. सर्व मानक आउटपुट किंवा त्रुटी 16-बीट डॉस ऍप्लिकेशनापासून एका पाईपपर्यंत तात्पुरती फाइल्समध्ये गोळा केली जातात; तात्पुरती फाइल्स पाइपलाइनच्या पुढील स्तरावर पुनर्निर्देशित होण्यापूर्वी अनुप्रयोग बंद करणे आवश्यक आहे. हे पाईप्सच्या अंमलबजावणीमध्ये विंडोज 9 5 ची बगचे कारण आहे, आणि तेच मानक विंडोज 95 डॉस शेल स्वतःच पाईप्स कशी हाताळतात.

काही अनुप्रयोग, जसे की कमांड . Com , परस्पररित्या अंमलात आणू नये. अनुप्रयोग जे त्यांचे मानक इनपुट आणि त्यांच्या मानक आउटपुटवर लिहिण्याऐवजी कॉन्सोल विंडोवर थेट प्रवेश करतात ते अयशस्वी होवू शकतात, Tcl टांगले जाऊ शकतात किंवा त्यांच्या स्वत: च्या खाजगी कन्सोल विंडोवर उपलब्ध नसल्यास ते देखील हँग करतात.

मॅकिन्टोश

Exec आज्ञा अस्तित्वात नाही आणि Macintosh च्या अंतर्गत अस्तित्वात नाही.

युनिक्स

Exec आदेश पूर्णपणे कार्यान्वित आहे आणि वर्णन केल्याप्रमाणे कार्य करतो.

तसेच पहा

चूक (एन), उघडा (एन)

कीवर्ड

अंमलात आणणे, पाइपलाइन, पुनर्निर्देशन, उपप्रक्रिया

महत्वाचे: आपल्या कॉम्प्यूटरवर आज्ञा कशी वापरली जाते हे पाहण्यासाठी man कमांड ( % man ) वापरा.