एमकेएस - क्लाउड में ऑनलाइन

यह कमांड mksh है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


mksh, sh - मिरबीएसडी कॉर्न शेल

SYNOPSIS


mksh [-+abCefhiklmnprUuvXx] [-T [!]TTY | -] [-+ओ विकल्प] [-c स्ट्रिंग | -s | पट्टिका
[तर्क ...]]
अंतर्निहित नाम [तर्क ...]

वर्णन


mksh एक कमांड दुभाषिया है जो इंटरैक्टिव और शेल स्क्रिप्ट दोनों के उपयोग के लिए है। इसका
कमांड भाषा sh(C) शेल भाषा का एक सुपरसेट है और काफी हद तक इसके अनुकूल है
मूल कॉर्न शैल. कभी-कभी, यह मैनुअल पेज स्क्रिप्टिंग सलाह दे सकता है; इस दौरान
कभी-कभी पोर्टेबल शेल स्क्रिप्टिंग या विभिन्न मानकों को ध्यान में रखता है
जानकारी सबसे पहले और सबसे महत्वपूर्ण रूप से प्रस्तुत की जाती है mksh ध्यान में रखा जाना चाहिए और इसे इसी रूप में लिया जाना चाहिए।

मैं हूँ an Android उपयोगकर्ता, so क्या एमकेएस?
mksh के समान एक UNIX शेल/कमांड दुभाषिया है COMMAND.COM or अध्यक्ष एवं प्रबंध निदेशक। EXEहै, जो है
पिछले कुछ समय से इसे एंड्रॉइड ओपन सोर्स प्रोजेक्ट के साथ शामिल किया गया है। मूलतः, यह एक प्रोग्राम है
जो एक टर्मिनल (कंसोल विंडो) में चलता है, उपयोगकर्ता इनपुट लेता है और कमांड या स्क्रिप्ट चलाता है,
जिसे अन्य प्रोग्रामों द्वारा पृष्ठभूमि में भी करने के लिए कहा जा सकता है। कोई विशेषाधिकार
इसलिए आपके सामने जो पॉप-अप आ रहे हैं, वे नहीं हैं mksh मुद्दे लेकिन कुछ अन्य के प्रश्न
प्रोग्राम इसका उपयोग कर रहा है।

मंगलाचरण
अधिकांश बिल्टिन को सीधे कॉल किया जा सकता है, उदाहरण के लिए यदि कोई लिंक अपने नाम से इंगित करता है
शंख; हालाँकि सभी का कोई मतलब नहीं है, उनका परीक्षण किया गया है या वे बिल्कुल भी काम नहीं करते हैं।

विकल्प इस प्रकार हैं:

-c स्ट्रिंग mksh में निहित कमांड निष्पादित करेगा स्ट्रिंग.

-i इंटरएक्टिव शेल. एक शेल जो मानक इनपुट से कमांड पढ़ता है वह है
यदि इस विकल्प का उपयोग किया जाता है या मानक इनपुट और मानक त्रुटि दोनों का उपयोग किया जाता है तो "इंटरैक्टिव"।
ए से जुड़े हुए हैं TTY(4). एक इंटरैक्टिव शेल में कार्य नियंत्रण सक्षम है, अनदेखा करता है
SIGINT, SIGQUIT, और SIGTERM सिग्नल, और इनपुट पढ़ने से पहले संकेत प्रिंट करता है
(PS1 और PS2 पैरामीटर देखें)। यह ENV पैरामीटर या को भी प्रोसेस करता है
mkshrc फ़ाइल (नीचे देखें)। गैर-संवादात्मक शैलों के लिए, ट्रैकऑल विकल्प चालू है
डिफ़ॉल्ट रूप से (देखें सेट नीचे आदेश)।

-l लॉगिन शैल. यदि बेसनेम शेल को कॉल किया जाता है (यानी argv[0]) से शुरू होता है
'-' या यदि इस विकल्प का उपयोग किया जाता है, तो शेल को एक लॉगिन शेल माना जाता है; देखना
स्टार्टअप फ़ाइलों नीचे.

-p विशेषाधिकार प्राप्त खोल. यदि वास्तविक उपयोगकर्ता आईडी या समूह आईडी है तो एक शेल "विशेषाधिकार प्राप्त" है
प्रभावी उपयोगकर्ता आईडी या समूह आईडी से मेल नहीं खाता (देखें) गेटुइड(2) और getgid(2))।
विशेषाधिकार प्राप्त विकल्प को साफ़ करने से शेल अपनी प्रभावी उपयोगकर्ता आईडी सेट कर देता है
(समूह आईडी) को उसकी वास्तविक उपयोगकर्ता आईडी (समूह आईडी) में बदलें। अधिक निहितार्थों के लिए, देखें स्टार्टअप
फ़ाइलों. यदि शेल विशेषाधिकार प्राप्त है और यह ध्वज स्पष्ट रूप से सेट नहीं है, तो
स्टार्टअप फ़ाइलों को संसाधित करने के बाद "विशेषाधिकार प्राप्त" विकल्प स्वचालित रूप से साफ़ हो जाता है।

-r प्रतिबंधित खोल. यदि इस विकल्प का उपयोग किया जाता है तो एक शेल "प्रतिबंधित" होता है। निम्नलिखित
शेल द्वारा किसी प्रोफ़ाइल और ENV को संसाधित करने के बाद प्रतिबंध लागू होते हैं
फ़ाइलें:

· RSI cd (और chdir) कमांड अक्षम है.
· SHELL, ENV और PATH पैरामीटर नहीं बदले जा सकते।
· कमांड नाम पूर्ण या सापेक्ष पथों के साथ निर्दिष्ट नहीं किए जा सकते।
· RSI -p अंतर्निहित कमांड का विकल्प आदेश उपयोग नहीं किया जा सकता.
· फ़ाइलें बनाने वाले पुनर्निर्देशन का उपयोग नहीं किया जा सकता (अर्थात् '>', '>|', '>>', '<>')।

-s शेल मानक इनपुट से कमांड पढ़ता है; सभी गैर-विकल्प तर्क हैं
स्थितीय पैरामीटर.

-T नाम स्पोन mksh पर TTY(4) यन्त्र दिया गया। रास्ते नाम, /dev/ttyCname और
/dev/ttyname क्रम से प्रयास किया जाता है। जब तक नाम विस्मयादिबोधक चिह्न से प्रारंभ होता है
('!'), यह एक उपकोश में किया जाता है और तुरंत वापस आ जाता है। अगर नाम एक पानी का छींटा है
('-'), इसके बजाय नियंत्रण टर्मिनल (डेमोनाइज़) से अलग करें।

उपरोक्त के अतिरिक्त, इसमें वर्णित विकल्प भी शामिल हैं सेट अंतर्निहित कमांड का भी उपयोग किया जा सकता है
कमांड लाइन पर: दोनों [-+abCefhkmnuvXx] और [-+ओ विकल्प] का उपयोग एकल अक्षर के लिए किया जा सकता है
या क्रमशः लंबे विकल्प।

यदि न तो -c न ही -s विकल्प निर्दिष्ट है, पहला गैर-विकल्प तर्क निर्दिष्ट करता है
उस फ़ाइल का नाम जिससे शेल कमांड पढ़ता है। यदि कोई गैर-विकल्प तर्क नहीं हैं, तो
शेल मानक इनपुट से कमांड पढ़ता है। शेल का नाम (अर्थात इसकी सामग्री)
$0) इस प्रकार निर्धारित किया जाता है: यदि -c विकल्प का उपयोग किया जाता है और एक गैर-विकल्प तर्क है,
इसे नाम के रूप में प्रयोग किया जाता है; यदि कमांड को किसी फ़ाइल से पढ़ा जा रहा है, तो फ़ाइल का उपयोग इस प्रकार किया जाता है
नाम; अन्यथा, शेल को जिस बेसनाम से बुलाया गया था (यानी argv[0]) का उपयोग किया जाता है।

यदि कमांड लाइन पर निर्दिष्ट कमांड फ़ाइल हो सकती है तो शेल की निकास स्थिति 127 है
यदि ए के निष्पादन के दौरान कोई घातक सिंटैक्स त्रुटि उत्पन्न हुई तो खोला नहीं जाएगा, या शून्य नहीं किया जाएगा
लिखी हुई कहानी। घातक त्रुटियों के अभाव में, निकास स्थिति अंतिम कमांड की होती है
निष्पादित, या शून्य, यदि कोई आदेश निष्पादित नहीं किया गया है।

स्टार्टअप फ़ाइलों
इन फ़ाइलों के वास्तविक स्थान के लिए, देखें फ़ाइलें. एक लॉगिन शेल सिस्टम को प्रोसेस करता है
प्रोफ़ाइल पहले. एक विशेषाधिकार प्राप्त शेल फिर suid प्रोफ़ाइल को संसाधित करता है। एक गैर-विशेषाधिकार प्राप्त लॉगिन
शेल उपयोगकर्ता प्रोफ़ाइल को आगे संसाधित करता है। एक गैर-विशेषाधिकार प्राप्त इंटरैक्टिव शेल मूल्य की जाँच करता है
ENV पैरामीटर को पैरामीटर, कमांड, अंकगणित और टिल्ड ('~') के अधीन करने के बाद
प्रतिस्थापन; यदि अनसेट या खाली है, तो उपयोगकर्ता mkshrc प्रोफ़ाइल संसाधित हो जाती है; अन्यथा, यदि कोई फ़ाइल
जिसका नाम प्रतिस्थापन परिणाम मौजूद है, यह संसाधित है; गैर-अस्तित्व चुपचाप है
अवहेलना करना। एक विशेषाधिकार प्राप्त शेल तब विशेषाधिकारों को छोड़ देता है यदि दोनों में से कोई भी ऐसा नहीं था -p पर विकल्प दिया गया है
स्टार्टअप फ़ाइलों के निष्पादन के दौरान कमांड लाइन न ही सेट की गई।

आदेश वाक्यविन्यास
शेल किसी भी बैकस्लैश-न्यूलाइन संयोजन को हटाकर अपने इनपुट को पार्स करना शुरू कर देता है
इसे तोड़ना शब्द. शब्द (जो वर्णों के क्रम हैं) को अनउद्धृत द्वारा सीमांकित किया जाता है
व्हाइटस्पेस वर्ण (स्पेस, टैब और न्यूलाइन) या मेटा-अक्षर ('<', '>', '|', ';', '(',
')', और '&')। शब्दों को परिसीमित करने के अलावा, रिक्त स्थान और टैब को नजरअंदाज कर दिया जाता है, जबकि नई पंक्तियाँ
आमतौर पर आदेशों का परिसीमन करें। मेटा-अक्षरों का उपयोग निम्नलिखित के निर्माण में किया जाता है टोकन:
'<', '<&', '<<', '<<<', '>', '>&', '>>', '&>' आदि का उपयोग पुनर्निर्देशन निर्दिष्ट करने के लिए किया जाता है (देखें)
इनपुट आउटपुट पुनर्निर्देशन नीचे); '|' पाइपलाइन बनाने के लिए उपयोग किया जाता है; '|&' का उपयोग सह-बनाने के लिए किया जाता है
प्रक्रियाएं (देखें) सह-प्रक्रियाएँ नीचे); ';' कमांड को अलग करने के लिए उपयोग किया जाता है; '&' का उपयोग बनाने के लिए किया जाता है
अतुल्यकालिक पाइपलाइन; '&&' और '||' सशर्त निष्पादन निर्दिष्ट करने के लिए उपयोग किया जाता है; ';', ';&'
और ';|' में उपयोग किया जाता है मामला कथन; '(( .. ))' का प्रयोग अंकगणितीय अभिव्यक्तियों में किया जाता है; और
अंत में, '( .. )' का उपयोग उपकोश बनाने के लिए किया जाता है।

व्हाइटस्पेस और मेटा-अक्षरों को बैकस्लैश ('\'), या अंदर का उपयोग करके व्यक्तिगत रूप से उद्धृत किया जा सकता है
दोहरे (''') या एकल ('''') उद्धरणों का उपयोग करने वाले समूह। ध्यान दें कि निम्नलिखित वर्ण हैं
शेल द्वारा विशेष रूप से व्यवहार किया जाता है और यदि उन्हें अपना प्रतिनिधित्व करना है तो उन्हें उद्धृत किया जाना चाहिए:
'\', ''', ''', '#', '$', ''', '~', '{', '}', '*', '?', और '['। इनमें से पहले तीन
उपर्युक्त उद्धृत पात्र हैं (देखें) का हवाला देते हुए नीचे); '#', यदि इसका प्रयोग किया जाता है
किसी शब्द की शुरुआत, एक टिप्पणी का परिचय - '#' के बाद निकटतम तक सब कुछ
न्यूलाइन को नजरअंदाज कर दिया गया है; '$' का उपयोग पैरामीटर, कमांड और अंकगणित पेश करने के लिए किया जाता है
प्रतिस्थापन (देखें प्रतिस्थापन नीचे); '''पुरानी शैली का कमांड प्रतिस्थापन प्रस्तुत करता है
(देखें प्रतिस्थापन नीचे); '~' एक निर्देशिका विस्तार शुरू करता है (देखें)। टिल्ड विस्तार नीचे); '{'
और '}' परिसीमन csh(1)-शैली विकल्प (देखें ब्रेस विस्तार नीचे); और अंत में, '*',
'?', और '[' का उपयोग फ़ाइल नाम निर्माण में किया जाता है (देखें)। पट्टिका नाम पैटर्न उपयोग करें नीचे).

जैसे ही शब्दों और टोकन को पार्स किया जाता है, शेल कमांड बनाता है, जिनमें से दो बुनियादी हैं
प्रकार: सरल-आदेश, आमतौर पर प्रोग्राम जो निष्पादित होते हैं, और यौगिक-आदेश, इस तरह
as एसटी और if कथन, समूह निर्माण, और फ़ंक्शन परिभाषाएँ।

एक सरल-कमांड में पैरामीटर असाइनमेंट के कुछ संयोजन होते हैं (देखें)। पैरामीटर्स
नीचे), इनपुट/आउटपुट पुनर्निर्देशन (देखें)। इनपुट आउटपुट रीडायरेक्ट नीचे), और आदेश शब्द;
एकमात्र प्रतिबंध यह है कि पैरामीटर असाइनमेंट किसी भी कमांड शब्द से पहले आते हैं।
कमांड शब्द, यदि कोई हो, उस कमांड को परिभाषित करें जिसे निष्पादित किया जाना है और उसके तर्क।
कमांड एक शेल बिल्ट-इन कमांड, एक फ़ंक्शन या एक बाहरी कमांड (यानी एक अलग) हो सकता है
निष्पादन योग्य फ़ाइल जो PATH पैरामीटर का उपयोग करके स्थित है; देखना आदेश निष्पादन नीचे).
ध्यान दें कि सभी कमांड निर्माणों में एक निकास स्थिति होती है: बाहरी कमांड के लिए, यह संबंधित है
द्वारा लौटाई गई स्थिति पर प्रतीक्षा(2) (यदि आदेश नहीं मिल सका, तो निकास स्थिति है
127; यदि इसे निष्पादित नहीं किया जा सका, तो निकास स्थिति 126 है); अन्य कमांड की निकास स्थिति
निर्माण (अंतर्निहित कमांड, फ़ंक्शन, कंपाउंड-कमांड, पाइपलाइन, सूचियां, आदि) सभी हैं
अच्छी तरह से परिभाषित और वर्णित हैं जहां निर्माण का वर्णन किया गया है। ए की निकास स्थिति
केवल पैरामीटर असाइनमेंट से युक्त कमांड अंतिम कमांड प्रतिस्थापन का है
यदि कोई कमांड प्रतिस्थापन नहीं था तो पैरामीटर असाइनमेंट या 0 के दौरान प्रदर्शन किया गया।

कमांड को '|' का उपयोग करके एक साथ जोड़ा जा सकता है पाइपलाइन बनाने के लिए टोकन, जिसमें
प्रत्येक कमांड का मानक आउटपुट लेकिन अंतिम को पाइप किया जाता है (देखें)। पाइप(2)) के मानक इनपुट के लिए
निम्न आदेश. किसी पाइपलाइन की निकास स्थिति उसके अंतिम कमांड की होती है, जब तक कि
la पाइप फेल विकल्प सेट है (वहां देखें)। पाइपलाइन के सभी कमांड अलग-अलग निष्पादित होते हैं
उपकोश; यह POSIX द्वारा अनुमत है लेकिन AT&T UNIX के दोनों वेरिएंट से भिन्न है क्ष, जहां
अंतिम आदेश को छोड़कर सभी उपकोशों में निष्पादित किए गए थे; देखें पढ़ना के लिए बिल्टिन का विवरण
निहितार्थ और समाधान. एक पाइपलाइन को '!' से पहले जोड़ा जा सकता है। आरक्षित शब्द जो
पाइपलाइन की निकास स्थिति को तार्किक रूप से पूरक करने का कारण बनता है: यदि मूल स्थिति
0 था, पूरक स्थिति 1 होगी; यदि मूल स्थिति 0 नहीं थी, तो पूरक
स्थिति 0 होगी.

सूचियाँ निम्न में से किसी भी टोकन द्वारा पाइपलाइनों को अलग करके कमांड बनाए जा सकते हैं:
'&&', '||', '&', '|&', और ';'। पहले दो सशर्त निष्पादन के लिए हैं: "cmd1 && cmd2"
मार डाला cmd2 केवल अगर बाहर निकलने की स्थिति cmd1 शून्य है; '||' विपरीत है - cmd2 is
की निकास स्थिति होने पर ही निष्पादित किया जाता है cmd1 गैर-शून्य है. '&&' और '||' समान प्राथमिकता है
जो '&', '|&', और ';' से अधिक है, जिनकी भी समान प्राथमिकता है। टिप्पणी
कि '&&' और '||' संचालक "वाम-सहयोगी" हैं। उदाहरण के लिए, ये दोनों
आदेश केवल "बार" प्रिंट करेंगे:

$ false && echo foo || इको बार
$ सच || इको फू && इको बार

'&' टोकन पूर्ववर्ती कमांड को अतुल्यकालिक रूप से निष्पादित करने का कारण बनता है; यानी खोल
कमांड शुरू करता है लेकिन इसके पूरा होने की प्रतीक्षा नहीं करता है (शेल इसका ट्रैक रखता है
अतुल्यकालिक आदेशों की स्थिति; देखना काम नियंत्रण नीचे)। जब एक एसिंक्रोनस कमांड होता है
जब कार्य नियंत्रण अक्षम हो जाता है (अर्थात अधिकांश स्क्रिप्ट में), तो कमांड प्रारंभ हो जाती है
सिग्नल SIGINT और SIGQUIT को नजरअंदाज कर दिया गया और इनपुट को पुनर्निर्देशित किया गया / Dev / बातिल (हालाँकि,
एसिंक्रोनस कमांड में निर्दिष्ट पुनर्निर्देशन को प्राथमिकता दी जाती है)। '|&' ऑपरेटर
एक सह-प्रक्रिया प्रारंभ करता है जो एक विशेष प्रकार की अतुल्यकालिक प्रक्रिया है (देखें)। सह-प्रक्रियाएँ
नीचे)। ध्यान दें कि एक कमांड को '&&' और '||' का पालन करना होगा ऑपरेटरों, जबकि इसकी आवश्यकता नहीं है
'&', '|&', या ';' का अनुसरण करें। किसी सूची की निकास स्थिति निष्पादित अंतिम कमांड की होती है,
अतुल्यकालिक सूचियों के अपवाद के साथ, जिसके लिए निकास स्थिति 0 है।

निम्नलिखित आरक्षित शब्दों का उपयोग करके यौगिक कमांड बनाए जाते हैं। ये शब्द ही हैं
यदि वे उद्धृत नहीं किए गए हैं और यदि उनका उपयोग कमांड के पहले शब्द के रूप में किया जाता है (अर्थात्) तो पहचाना जाता है
उनके पहले पैरामीटर असाइनमेंट या पुनर्निर्देशन नहीं हो सकते):

अन्यथा तब कार्य करें! (
यदि समय हो तो esac करें [[ ((
तक फाई किया गया {
चयनित समय के लिए elif }

निम्नलिखित कंपाउंड कमांड विवरण में, कमांड सूचियाँ (के रूप में दर्शाई गई हैं सूची) वे हैं
आरक्षित शब्दों के बाद अर्धविराम, एक नई पंक्ति, या (वाक्यविन्यास की दृष्टि से) के साथ समाप्त होना चाहिए
सही) आरक्षित शब्द। उदाहरण के लिए, निम्नलिखित सभी मान्य हैं:

$ {इको फू; इको बार; }
$ {इको फू; इको बार }
$ { { इको फू; इको बार; } }

यह मान्य नहीं है:

$ {इको फू; इको बार }

(सूची)
निष्पादित करना सूची एक उपकोश में. पर्यावरण परिवर्तन को पारित करने का कोई अंतर्निहित तरीका नहीं है
एक उपकोश वापस अपने मूल में।

{ सूची; }
यौगिक निर्माण; सूची निष्पादित किया गया है, लेकिन उपकोश में नहीं। ध्यान दें कि '{' और '}'
आरक्षित शब्द हैं, मेटा-अक्षर नहीं।

मामला शब्द में [[(] पैटर्न [| पैटर्न] ...) सूची समापक] ... एसैक
RSI मामला कथन मिलान का प्रयास करता है शब्द एक निर्दिष्ट के विरुद्ध पैटर्न; सूची
पहले सफलतापूर्वक मिलान किए गए पैटर्न से संबद्ध निष्पादित किया जाता है। में प्रयुक्त पैटर्न
मामला कथन वही हैं जो फ़ाइल नाम पैटर्न के लिए उपयोग किए जाते हैं, सिवाय इसके कि
'.' के संबंध में प्रतिबंध और '/' हटा दिए गए हैं। ध्यान दें कि पहले कोई भी गैर-उद्धृत स्थान
और एक पैटर्न छीन लिए जाने के बाद; किसी पैटर्न के भीतर किसी भी स्थान को उद्धृत किया जाना चाहिए। दोनों
शब्द और पैटर्न पैरामीटर, कमांड और अंकगणितीय प्रतिस्थापन के अधीन हैं,
साथ ही टिल्ड प्रतिस्थापन।

ऐतिहासिक कारणों से, इसके स्थान पर खुले और बंद ब्रेसिज़ का उपयोग किया जा सकता है in और esac जैसे
मामला $फू { *) गूंज बार ;; }.

सूचि समापकये हैं:

';;' सूची के बाद समाप्त करें.

';&' अगली सूची में शामिल हों।

';|' शेष पैटर्न-सूची टुपल्स का मूल्यांकन करें।

ए की निकास स्थिति मामला कथन निष्पादित का है सूची; अगर कोई नहीं सूची is
निष्पादित, निकास स्थिति शून्य है।

एसटी नाम [में शब्द ...]; करना सूची; पूर्ण
प्रत्येक के लिए शब्द निर्दिष्ट शब्द सूची में, पैरामीटर नाम और शब्द पर सेट है
सूची निष्पादित किया जाता है। अगर in किसी शब्द सूची, स्थितिगत मापदंडों को निर्दिष्ट करने के लिए उपयोग नहीं किया जाता है
इसके स्थान पर ($1, $2, आदि) का उपयोग किया जाता है। ऐतिहासिक कारणों से, ब्रेसिज़ खुले और बंद हो सकते हैं
के बजाय इस्तेमाल किया do और किया जैसे एसटी i; { गूंज $मैं; }. ए की निकास स्थिति एसटी
कथन अंतिम निकास स्थिति है सूची; अगर सूची कभी भी निष्पादित नहीं किया जाता, निकास स्थिति
शून्य है

if सूची; फिर सूची; [एलिफ सूची; फिर सूची;] ... [अन्य सूची;] फ़ि
यदि पहले की निकास स्थिति सूची शून्य है, दूसरा सूची निष्पादित किया जाता है; अन्यथा,
la सूची निम्नलिखित elif, यदि कोई हो, समान परिणामों के साथ निष्पादित किया जाता है। मैं गिरा
निम्नलिखित सूचियाँ if और elifविफल (यानी गैर-शून्य स्थिति के साथ बाहर निकलें), सूची
निम्नलिखित अन्य निष्पादित किया जाता है। ए की निकास स्थिति if बयान गैर का है
सशर्त सूची वह क्रियान्वित है; यदि कोई गैर-सशर्त नहीं है सूची निष्पादित किया जाता है, बाहर निकलें
स्थिति शून्य है.

चयन नाम [में शब्द ...]; करना सूची; पूर्ण
RSI चयन स्टेटमेंट उपयोगकर्ता को मेनू प्रस्तुत करने का एक स्वचालित तरीका प्रदान करता है
और उसमें से चयन करना। निर्दिष्ट की एक प्रगणित सूची शब्द(ओं) पर मुद्रित है
मानक त्रुटि, उसके बाद एक संकेत (PS3: सामान्यतः '#?')। के अनुरूप एक संख्या
फिर प्रगणित शब्दों में से एक को मानक इनपुट से पढ़ा जाता है, नाम पर सेट है
चयनित शब्द (या यदि चयन मान्य नहीं है तो अनसेट करें), उत्तर जो पढ़ा गया था उस पर सेट है
(अग्रणी/पिछला स्थान छीन लिया गया है), और सूची निष्पादित किया जाता है। यदि कोई रिक्त पंक्ति (अर्थात
शून्य या अधिक IFS ऑक्टेट) दर्ज किया जाता है, तो मेनू निष्पादित किए बिना पुनः मुद्रित हो जाता है सूची.

. सूची पूर्ण हो जाता है, यदि उत्तर शून्य है, तो प्रगणित सूची मुद्रित होती है, संकेत है
मुद्रित, इत्यादि। यह प्रक्रिया तब तक जारी रहती है जब तक फ़ाइल का अंत पढ़ा नहीं जाता, एक व्यवधान
प्राप्त है, या ए तोड़ना स्टेटमेंट को लूप के अंदर निष्पादित किया जाता है। यदि "शब्द में..." है
छोड़े गए, स्थितीय मापदंडों का उपयोग किया जाता है (यानी $1, $2, आदि)। ऐतिहासिक के लिए
कारणों से, इसके स्थान पर खुले और बंद ब्रेसिज़ का उपयोग किया जा सकता है do और किया जैसे चयन i; {
गूंज $मैं; }. ए की निकास स्थिति चयन कथन शून्य है यदि a तोड़ना कथन है
लूप से बाहर निकलने के लिए उपयोग किया जाता है, अन्यथा शून्य नहीं।

जब तक सूची; करना सूची; पूर्ण
यह ऐसे काम करता है जब, सिवाय इसके कि निकाय को केवल निकास स्थिति के दौरान ही निष्पादित किया जाता है
पहले सूची गैर-शून्य है.

जब सूची; करना सूची; पूर्ण
A जब एक पूर्व-जाँचा हुआ लूप है। इसकी बॉडी को उतनी ही बार निष्पादित किया जाता है जितनी बार इसकी निकास स्थिति होती है
पहले सूची शून्य है. ए की निकास स्थिति जब कथन अंतिम निकास स्थिति है
का सूची लूप के शरीर में; यदि निकाय निष्पादित नहीं होता है, तो निकास स्थिति है
शून्य।

समारोह नाम { सूची; }
फ़ंक्शन को परिभाषित करता है नाम (देखें कार्य नीचे)। ध्यान दें कि पुनर्निर्देशन निर्दिष्ट है
फ़ंक्शन परिभाषा के बाद जब भी फ़ंक्शन निष्पादित होता है, तब नहीं
फ़ंक्शन परिभाषा निष्पादित की गई है.

नाम() आदेश
अधिकतर वैसा ही समारोह (देखें कार्य नीचे)। व्हाईटस्पेस (स्पेस या टैब) के बाद
नाम अधिकांश समय नजरअंदाज कर दिया जाएगा.

समारोह नाम() { सूची; }
बराबर नाम()(खूब जोर से पीटनाism). समारोह कीवर्ड को नजरअंदाज कर दिया गया है।

पहर [-p] [पाइपलाइन]
RSI आदेश निष्पादन अनुभाग का वर्णन करता है पहर आरक्षित शब्द.

(( अभिव्यक्ति ))
अंकगणितीय अभिव्यक्ति अभिव्यक्ति मूल्यांकन किया जाता है; "लेट एक्सप्रेशन" के बराबर (देखें
अंकगणित भाव और चलो कमांड, नीचे) एक मिश्रित निर्माण में।

[[ अभिव्यक्ति ]]
के समान परीक्षण और [ ... ] आदेश (बाद में वर्णित), निम्नलिखित के साथ
अपवाद:

· फ़ील्ड विभाजन और फ़ाइल नाम निर्माण तर्कों पर नहीं किया जाता है।

· RSI -a (और और -o (OR) ऑपरेटरों को क्रमशः '&&' और '||' से बदल दिया जाता है।

· ऑपरेटर्स (जैसे '-f', '=', '!') को उद्धृत नहीं किया जाना चाहिए।

· पैरामीटर, कमांड और अंकगणितीय प्रतिस्थापन अभिव्यक्ति के रूप में किए जाते हैं
मूल्यांकन और आलसी अभिव्यक्ति मूल्यांकन का उपयोग '&&' और '||' के लिए किया जाता है संचालक।
इसका मतलब यह है कि निम्नलिखित कथन में, $( का मूल्यांकन यदि और केवल यदि किया जाता है
फ़ाइल foo मौजूद है और पढ़ने योग्य है:

$ [[ -r foo && $(

· '!=' और '=' अभिव्यक्तियों का दूसरा ऑपरेंड पैटर्न का एक उपसमूह है (उदाहरण के लिए)।
तुलना [[ foobar = च*आर ]] सफल होता है)। यह अप्रत्यक्ष रूप से भी काम करता है:

$ बार=फूबार; बाज़='एफ*आर'
$ [[ $bar = $baz ]]; प्रतिध्वनि $?
$ [[ $bar = "$baz" ]]; प्रतिध्वनि $?

शायद आश्चर्यजनक रूप से, पहली तुलना सफल होती है, जबकि दूसरी नहीं।
यह वर्तमान में सभी एक्स्टग्लोब मेटाकैरेक्टर पर लागू नहीं होता है।

का हवाला देते हुए
शेल को वर्णों या शब्दों को विशेष रूप से व्यवहार करने से रोकने के लिए उद्धरण का उपयोग किया जाता है। वहाँ हैं
उद्धरण के तीन तरीके. सबसे पहले, '\' निम्नलिखित वर्ण को उद्धृत करता है, जब तक कि वह पर न हो
एक पंक्ति का अंत, जिस स्थिति में '\' और नई पंक्ति दोनों हटा दी जाती हैं। दूसरा, एक सिंगल
उद्धरण ("'") अगले एकल उद्धरण तक सब कुछ उद्धृत करता है (यह पंक्तियों का विस्तार कर सकता है)। तीसरा, ए
दोहरा उद्धरण (''') '$', ''' और '\' को छोड़कर, अगले अनएस्केप्ड तक सभी वर्णों को उद्धृत करता है
दोहरे उद्धरण। डबल कोट्स के अंदर '$' और ''' का अपना सामान्य अर्थ होता है (यानी पैरामीटर,
अंकगणित, या कमांड प्रतिस्थापन) सिवाय इसके कि परिणामों पर कोई फ़ील्ड विभाजन नहीं किया जाता है
दोहरे-उद्धृत प्रतिस्थापनों का, और कमांड प्रतिस्थापन का पुराना-शैली वाला रूप है
दोहरे उद्धरण चिह्नों के लिए बैकस्लैश-उद्धरण सक्षम किया गया। यदि डबल-कोटेड स्ट्रिंग के अंदर एक '\' है
इसके बाद '\', '$', ''', या '''', इसे दूसरे अक्षर से बदल दिया जाता है; यदि इसका पालन किया जाता है
एक नई लाइन द्वारा, '\' और नई लाइन दोनों को हटा दिया जाता है; अन्यथा, दोनों '\' और
निम्नलिखित चरित्र अपरिवर्तित हैं।

यदि एकल-उद्धृत स्ट्रिंग के पहले एक गैर-उद्धृत '$' है, तो सी शैली बैकस्लैश विस्तार (देखें
नीचे) लागू किया गया है (अंदर के एकल उद्धरण वर्ण भी बच सकते हैं और समाप्त नहीं होते हैं
तब स्ट्रिंग); विस्तारित परिणाम को किसी अन्य एकल-उद्धृत स्ट्रिंग के रूप में माना जाता है। यदि एक
डबल-उद्धृत स्ट्रिंग के पहले एक गैर-उद्धृत '$' होता है, '$' को आसानी से अनदेखा कर दिया जाता है।

बैकस्लैश विस्तार
उन स्थानों पर जहां बैकस्लैश का विस्तार किया जाता है, कुछ C और AT&T UNIX क्ष या जीएनयू खूब जोर से पीटना अंदाज
पलायन का अनुवाद किया गया है। इनमें शामिल हैं '\a', '\b', '\f', '\n', '\r', '\t', '\U########',
'\u####', और '\v'। '\U########' और '\u####' के लिए, "#" का अर्थ हेक्साडेसिमल अंक है,
चार या आठ तक कोई भी नहीं हो सकता; ये एस्केप एक यूनिकोड कोडपॉइंट को UTF-8 में अनुवादित करते हैं।
इसके अलावा, '\E' और '\e' का विस्तार एस्केप कैरेक्टर तक होता है।

में छाप बिल्टिन मोड, '\"', '\'', और '\?' स्पष्ट रूप से बाहर रखा गया है; अष्टाधारी अनुक्रम
तीन अष्टक अंकों तक कोई नहीं "#" अंक शून्य ('\0###') से पहले जुड़ा होना चाहिए;
हेक्साडेसिमल अनुक्रम '\x##' दो हेक्साडेसिमल अंकों "#" तक सीमित नहीं हैं; दोनों
ऑक्टल और हेक्साडेसिमल अनुक्रम कच्चे ऑक्टेट में परिवर्तित हो जाते हैं; '\#', जहां # उपरोक्त में से कोई नहीं है,
\# में अनुवादित (बैकस्लैश बनाए रखा जाता है)।

सी स्टाइल मोड में बैकस्लैश विस्तार थोड़ा अलग है: ऑक्टल अनुक्रम '\###' होना चाहिए
तीन अष्टक अंक "#" तक के उपसर्ग में कोई अंक शून्य नहीं है और कच्चा अष्टक प्राप्त होता है;
हेक्साडेसिमल अनुक्रम '\x#*' लालच से जितना हो सके उतने हेक्साडेसिमल अंक "#" खा जाते हैं और
पहले गैर-हेक्साडेसिमल अंक के साथ समाप्त करें; ये एक यूनिकोड कोडपॉइंट का अनुवाद करते हैं
यूटीएफ-8. अनुक्रम '\c#', जहां "#" कोई ऑक्टेट है, Ctrl-# में अनुवादित होता है (जो मूल रूप से
मतलब, '\c?' DEL बन जाता है, बाकी सब कुछ 0x1F के साथ बिटवाइज़ ANDed है)। अंत में, '\#', कहां
# उपरोक्त में से कोई नहीं है, इसका अनुवाद # है (बैकस्लैश को काट दिया गया है), भले ही यह एक हो
नई पंक्ति।

फर्जी नाम
उपनाम दो प्रकार के होते हैं: सामान्य कमांड उपनाम और ट्रैक किए गए उपनाम। आदेश उपनाम
आमतौर पर लंबे या अक्सर इस्तेमाल किए जाने वाले कमांड के लिए शॉर्ट हैंड के रूप में उपयोग किया जाता है। खोल का विस्तार होता है
जब यह पहला शब्द पढ़ता है तो कमांड उपनाम (यानी इसके मूल्य के लिए उपनाम नाम प्रतिस्थापित करता है)।
एक आदेश का. अधिक उपनामों की जांच के लिए एक विस्तारित उपनाम को पुन: संसाधित किया जाता है। यदि एक आदेश
उपनाम एक स्थान या टैब में समाप्त होता है, उपनाम विस्तार के लिए निम्नलिखित शब्द की भी जाँच की जाती है।
उपनाम विस्तार प्रक्रिया तब रुक जाती है जब कोई ऐसा शब्द मिलता है जो उपनाम नहीं है, जब कोई उद्धृत शब्द होता है
पाया जाता है, या जब कोई उपनाम शब्द पाया जाता है जिसका वर्तमान में विस्तार किया जा रहा है। उपनाम हैं
विशेष रूप से एक इंटरैक्टिव सुविधा: जबकि वे स्क्रिप्ट और पर काम करते हैं
कुछ मामलों में कमांड लाइन, लेक्सिंग के दौरान उपनामों का विस्तार किया जाता है, इसलिए उनका उपयोग एक में होना चाहिए
कमांड ट्री को उनकी परिभाषा से अलग करें; अन्यथा, उपनाम नहीं मिलेगा.
ध्यान देने योग्य बात यह है कि कमांड सूचियाँ (अर्धविराम द्वारा अलग, कमांड प्रतिस्थापन में भी न्यूलाइन द्वारा)
एक ही पार्स वृक्ष हो सकता है.

निम्नलिखित कमांड उपनाम स्वचालित रूप से शेल द्वारा परिभाषित किए जाते हैं:

ऑटोलोड='\टाइपसेट -फू'
फ़ंक्शन='\टाइपसेट -f'
हैश='\बिल्टिन उपनाम -t'
इतिहास='\बिल्टिन एफसी -एल'
पूर्णांक='\टाइपसेट -i'
स्थानीय='\टाइपसेट'
लॉगिन='\exec लॉगिन'
nameref='\typeset -n'
नोहुप='नोहुप'
r='\बिल्टिन एफसी -ई -'
टाइप='\बिल्टइन व्हेनसे -v'

ट्रैक किए गए उपनाम शेल को यह याद रखने की अनुमति देते हैं कि उसे कोई विशेष कमांड कहां मिली। पहला
जब शेल किसी कमांड के लिए पथ खोज करता है जिसे ट्रैक किए गए उपनाम के रूप में चिह्नित किया जाता है, तो यह सहेजता है
आदेश का पूरा पथ. अगली बार जब कमांड निष्पादित होती है, तो शेल इसकी जाँच करता है
यह देखने के लिए सहेजा गया पथ कि यह अभी भी मान्य है, और यदि हां, तो पथ खोज को दोहराने से बचें।
ट्रैक किए गए उपनामों को सूचीबद्ध और उपयोग करके बनाया जा सकता है उर्फ -t. ध्यान दें कि PATH बदल रहा है
पैरामीटर सभी ट्रैक किए गए उपनामों के लिए सहेजे गए पथ साफ़ करता है। यदि ट्रैकऑल विकल्प सेट है
(अर्थात सेट -o ट्रैकऑल or सेट -h), शेल सभी कमांड को ट्रैक करता है। यह विकल्प सेट है
गैर-इंटरैक्टिव शेल के लिए स्वचालित रूप से। इंटरैक्टिव शेल के लिए, केवल निम्नलिखित
आदेश स्वचालित रूप से ट्रैक किए जाते हैं: बिल्ली(1) cc(1) परिवर्तन विद्या(1) cp(1) डेटा(1) ed(1)
Emacs(1) ग्रेप(1) ls(1) बनाना(1) mv(1) pr(1) rm(1) प्यास(1) sh(1) vi(1) और, कौन(1).

प्रतिस्थापन
एक साधारण-कमांड को निष्पादित करने में शेल जो पहला कदम उठाता है, वह है प्रतिस्थापन करना
आदेश के शब्द. प्रतिस्थापन तीन प्रकार के होते हैं: पैरामीटर, कमांड, और
अंकगणित। पैरामीटर प्रतिस्थापन, जिनका वर्णन अगले भाग में विस्तार से किया गया है,
फॉर्म $ लेंनाम या ${...}; कमांड प्रतिस्थापन फॉर्म लेते हैं $(आदेश) या
(बहिष्कृत) `आदेश`या (वर्तमान परिवेश में निष्पादित) ${ आदेश;} और पट्टी
अनुगामी नई पंक्तियाँ; और अंकगणितीय प्रतिस्थापन $((अभिव्यक्ति)). पार्सिंग
वर्तमान-पर्यावरण कमांड प्रतिस्थापन के लिए उद्घाटन के बाद एक स्थान, टैब या नई लाइन की आवश्यकता होती है
ब्रेस और समापन ब्रेस को एक कीवर्ड के रूप में पहचाना जाना चाहिए (यानी एक नई लाइन से पहले है)।
या अर्धविराम). उन्हें फ़नसब (फ़ंक्शन प्रतिस्थापन) भी कहा जाता है और वे समान व्यवहार करते हैं
उसमें कार्य करता है स्थानीय और वापसी काम, और उसमें निकास मूल शेल को समाप्त करता है; शंख
विकल्प साझा किये जाते हैं.

प्रतिस्थापन का एक अन्य प्रकार वैलसब (मूल्य प्रतिस्थापन) ${| हैआदेश;} जो हैं
इसे वर्तमान परिवेश में भी निष्पादित किया जाता है, जैसे कि फ़नसब, लेकिन अपने I/O को माता-पिता के साथ साझा करते हैं;
इसके बजाय, वे प्रारंभिक रूप से खाली, अभिव्यक्ति-स्थानीय चर REPLY जो कुछ भी है, उसका मूल्यांकन करते हैं
के भीतर सेट करें आदेशs.

यदि कोई प्रतिस्थापन दोहरे उद्धरण चिह्नों के बाहर दिखाई देता है, तो प्रतिस्थापन के परिणाम हैं
आम तौर पर आईएफएस के वर्तमान मूल्य के अनुसार शब्द या फ़ील्ड विभाजन के अधीन है
पैरामीटर. IFS पैरामीटर ऑक्टेट की एक सूची निर्दिष्ट करता है जिसका उपयोग स्ट्रिंग को तोड़ने के लिए किया जाता है
कई शब्दों में; सेट स्पेस, टैब और न्यूलाइन से कोई भी ऑक्टेट जो IFS में दिखाई देता है
ऑक्टेट्स को "आईएफएस व्हाइटस्पेस" कहा जाता है। एक या अधिक IFS व्हाईटस्पेस ऑक्टेट के अनुक्रम, में
शून्य या एक गैर-आईएफएस व्हाइटस्पेस ऑक्टेट के साथ संयोजन, एक फ़ील्ड को परिसीमित करें। एक विशेष मामले के रूप में,
अग्रणी और अनुगामी IFS रिक्त स्थान हटा दिया गया है (अर्थात कोई अग्रणी या अनुगामी खाली फ़ील्ड नहीं है
इसके द्वारा निर्मित); गैर-आईएफएस व्हाइटस्पेस के आगे या पीछे रहने से एक खाली क्षेत्र बनता है।

उदाहरण: यदि IFS को "पर सेट किया गया है :", और VAR पर सेट है
“ ए : B::D", $VAR के प्रतिस्थापन का परिणाम चार क्षेत्रों में होता है: 'ए',
'बी', '' (एक खाली फ़ील्ड), और 'डी'। ध्यान दें कि यदि IFS पैरामीटर रिक्त पर सेट है
स्ट्रिंग, कोई फ़ील्ड विभाजन नहीं किया गया है; यदि यह अनसेट है, तो स्पेस, टैब और का डिफ़ॉल्ट मान
न्यूलाइन का उपयोग किया जाता है.

साथ ही, ध्यान दें कि फ़ील्ड विभाजन केवल तत्काल परिणाम पर लागू होता है
प्रतिस्थापन. पिछले उदाहरण का उपयोग करते हुए, $VAR:E के प्रतिस्थापन का परिणाम होता है
फ़ील्ड: 'ए', 'बी', '', और 'डी:ई', न कि 'ए', 'बी', '', 'डी', और 'ई'। यह व्यवहार POSIX है
आज्ञाकारी, लेकिन कुछ अन्य शेल कार्यान्वयनों के साथ असंगत जो फ़ील्ड विभाजन करते हैं
उस शब्द पर जिसमें प्रतिस्थापन शामिल था या सामान्य व्हाइटस्पेस डिलीमीटर के रूप में आईएफएस का उपयोग करें।

प्रतिस्थापन के परिणाम, जब तक कि अन्यथा निर्दिष्ट न हो, ब्रेस विस्तार के अधीन हैं
और फ़ाइल नाम विस्तार (नीचे प्रासंगिक अनुभाग देखें)।

एक कमांड प्रतिस्थापन को निर्दिष्ट कमांड द्वारा उत्पन्न आउटपुट द्वारा प्रतिस्थापित किया जाता है
एक उपकोश में चलाएँ. $( के लिएआदेश) और ${|आदेश;} और ${ आदेश;} प्रतिस्थापन, सामान्य
उद्धरण नियमों का उपयोग कब किया जाता है आदेश पार्स किया गया है; हालाँकि, बहिष्कृत `के लिएआदेश` फॉर्म, ए
'\' के बाद '$', ''', या '\' में से कोई भी हटा दिया जाता है (जैसा कि '''' होता है जब प्रतिस्थापन भाग होता है)
एक दोहरे-उद्धृत स्ट्रिंग का); किसी अन्य वर्ण के बाद आने वाला बैकस्लैश '\' अपरिवर्तित है।
कमांड प्रतिस्थापन में एक विशेष मामले के रूप में, फॉर्म का एक कमांडपट्टिका की व्याख्या की जाती है
मतलब की सामग्री को प्रतिस्थापित करें पट्टिका। ध्यान दें कि $( के समान ही प्रभाव डालता है $(बिल्ली फू).

ध्यान दें कि कुछ शेल कमांड प्रतिस्थापन के लिए पुनरावर्ती पार्सर का उपयोग नहीं करते हैं, जिसके कारण
कुछ निर्माणों के लिए विफलता; पोर्टेबल होने के लिए, वर्कअराउंड के रूप में 'x=$(cat) <<"EOF"' (या the
केवल स्ट्रिंग को घिसने के लिए न्यूलाइन-कीपिंग 'x=<<'EOF'' एक्सटेंशन) के बजाय। आईईईई कक्षा 1003.1
("POSIX.1") फॉर्म 'x=$(case $foo in (bar) echo $bar) के केस स्टेटमेंट का उपयोग करने की अनुशंसा करता है
;; (*) प्रतिध्वनि $बाज़ ;; esac)' इसके बजाय, जो काम करेगा लेकिन इसके लिए उदाहरण के रूप में काम नहीं करेगा
पोर्टेबिलिटी मुद्दा.

x=$(केस $foo in bar) echo $bar ;; *) प्रतिध्वनि $बाज़ ;; ईएसएसी)
# उपरोक्त पुराने शेल्स पर पार्स करने में विफल रहता है; नीचे समाधान है
x=$(eval $(cat)) <<"EOF"
केस $फू इन बार) इको $बार ​​;; *) प्रतिध्वनि $बाज़ ;; esac
EOF

अंकगणितीय प्रतिस्थापनों को निर्दिष्ट अभिव्यक्ति के मान से प्रतिस्थापित किया जाता है। के लिए
उदाहरण, आदेश छाप $((2+3*4)) प्रदर्शित करता है 14. देखें अंकगणित भाव एक के लिए
एक अभिव्यक्ति का वर्णन.

पैरामीटर्स
पैरामीटर शेल चर हैं; उन्हें मान निर्दिष्ट किए जा सकते हैं और उनके मूल्यों तक पहुंचा जा सकता है
पैरामीटर प्रतिस्थापन का उपयोग करना। एक पैरामीटर नाम या तो विशेष एकल में से एक है
नीचे वर्णित विराम चिह्न या अंक वर्ण पैरामीटर, या शून्य या के बाद एक अक्षर
अधिक अक्षर या अंक ('_' को एक अक्षर के रूप में गिना जाता है)। बाद वाले फॉर्म को सरणियों के रूप में माना जा सकता है
प्रपत्र की एक सरणी अनुक्रमणिका जोड़कर [expr] कहाँ पे expr एक अंकगणितीय अभिव्यक्ति है.
सूचकांकों को क्रमबद्ध करें mksh 0 से लेकर 4294967295 तक की सीमा तक सीमित हैं। वह है,
वे 32-बिट अहस्ताक्षरित पूर्णांक हैं।

पैरामीटर प्रतिस्थापन $ का रूप लेते हैंनाम, ${नाम}, या ${नाम[expr]} कहाँ नाम एक
मापदण्ड नाम। ${ के साथ सभी सरणी तत्वों का प्रतिस्थापननाम[*]} और ${नाम[@]} काम करता है
स्थितीय मापदंडों के लिए $* और $@ के बराबर। यदि प्रतिस्थापन a पर किया जाता है
पैरामीटर (या एक सरणी पैरामीटर तत्व) जो सेट नहीं है, एक शून्य स्ट्रिंग प्रतिस्थापित किया गया है
जब तक कि संज्ञा विकल्प (सेट -o संज्ञा or सेट -u) सेट है, ऐसी स्थिति में त्रुटि उत्पन्न होती है।

पैरामीटर्स को कई तरीकों से मान निर्दिष्ट किए जा सकते हैं। सबसे पहले, शेल स्पष्ट रूप से सेट हो जाता है
कुछ पैरामीटर जैसे '#', 'PWD', और '$'; यह विशेष एकल वर्ण का एकमात्र तरीका है
पैरामीटर सेट हैं. दूसरा, पैरामीटर शेल के वातावरण से आयात किए जाते हैं
चालू होना। तीसरा, पैरामीटर को कमांड लाइन पर मान निर्दिष्ट किया जा सकता है: उदाहरण के लिए, फू = बार
पैरामीटर "FOO" को "बार" पर सेट करता है; एक ही पर एकाधिक पैरामीटर असाइनमेंट दिए जा सकते हैं
कमांड लाइन और उनका अनुसरण एक साधारण-कमांड द्वारा किया जा सकता है, जिस स्थिति में असाइनमेंट होते हैं
प्रभावी रूप से केवल कमांड की अवधि के लिए (ऐसे असाइनमेंट भी निर्यात किए जाते हैं; देखें)।
इसके निहितार्थ के लिए नीचे)। ध्यान दें कि पैरामीटर नाम और '=' दोनों होने चाहिए
पैरामीटर असाइनमेंट को पहचानने के लिए शेल के लिए अनउद्धृत। निर्माण फ़ू+=बाज़ भी है
मान्यता प्राप्त; पुराने और नए मान तुरंत संयोजित हो जाते हैं। सेटिंग का चौथा तरीका
एक पैरामीटर के साथ है निर्यात, वैश्विक, सिफ़ पढ़िये, तथा टाइपसेट आदेश; उनके देखें
में वर्णन आदेश निष्पादन अनुभाग। पांचवां, एसटी और चयन लूप पैरामीटर सेट करते हैं
के रूप में अच्छी तरह के रूप में गेटअप, पढ़ना, तथा सेट -A आदेश. अंत में, पैरामीटर असाइन किए जा सकते हैं
अंकगणितीय अभिव्यक्तियों के अंदर असाइनमेंट ऑपरेटरों का उपयोग करने वाले मान (देखें)। अंकगणित भाव
नीचे) या ${ का उपयोग कर रहे हैंनाम=मूल्य} पैरामीटर प्रतिस्थापन का रूप (नीचे देखें)।

निर्यात विशेषता के साथ पैरामीटर (का उपयोग करके सेट करें)। निर्यात or टाइपसेट -x आदेश, या द्वारा
सरल आदेशों के बाद पैरामीटर असाइनमेंट) को पर्यावरण में डाल दिया जाता है (देखें)।
के बारे में(7)) शेल द्वारा चलाए जाने वाले कमांड के रूप में नाम=मूल्य जोड़े। जिस क्रम में पैरामीटर
किसी कमांड के वातावरण में प्रकट होना अनिर्दिष्ट है। जब शेल शुरू होता है, तो यह
अपने वातावरण से पैरामीटर और उनके मान निकालता है और स्वचालित रूप से निर्यात सेट करता है
उन मापदंडों के लिए विशेषता।

संशोधक को ${ पर लागू किया जा सकता हैनाम} पैरामीटर प्रतिस्थापन का रूप:

${नाम:-शब्द}
If नाम सेट है और NULL नहीं, इसे प्रतिस्थापित किया गया है; अन्यथा, शब्द प्रतिस्थापित है।

${नाम:+शब्द}
If नाम सेट है और शून्य नहीं है, शब्द प्रतिस्थापित है; अन्यथा, कुछ भी प्रतिस्थापित नहीं किया जाता है।

${नाम:=शब्द}
If नाम सेट है और NULL नहीं, इसे प्रतिस्थापित किया गया है; अन्यथा, यह असाइन किया गया है शब्द और
का परिणामी मूल्य नाम प्रतिस्थापित है।

${नाम:?शब्द}
If नाम सेट है और NULL नहीं, इसे प्रतिस्थापित किया गया है; अन्यथा, शब्द पर मुद्रित है
मानक त्रुटि (इससे पहले नाम:) और एक त्रुटि उत्पन्न होती है (सामान्यतः समाप्ति का कारण बनती है
किसी शेल स्क्रिप्ट, फ़ंक्शन या '.' का उपयोग करके प्राप्त स्क्रिप्ट का। अंतर्निर्मित)। अगर शब्द is
छोड़े जाने पर, इसके स्थान पर "पैरामीटर शून्य या सेट नहीं" स्ट्रिंग का उपयोग किया जाता है। वर्तमान में एक बग,
if शब्द एक वेरिएबल है जो शून्य स्ट्रिंग तक विस्तारित होता है, त्रुटि संदेश भी है
मुद्रित।

ध्यान दें, उपरोक्त सभी के लिए, शब्द वास्तव में उद्धृत माना जाता है, और विशेष विश्लेषण
नियम लागू. पार्सिंग नियम इस बात पर भी भिन्न होते हैं कि क्या अभिव्यक्ति दोहरा-उद्धृत है: शब्द
फिर दोहरे उद्धरण (''') और समापन को छोड़कर, दोहरे उद्धरण नियमों का उपयोग करता है
ब्रेस, जो, यदि बैकस्लैश बच जाता है, तो उद्धरण निष्कासन लागू हो जाता है।

उपरोक्त संशोधकों में, ':' को छोड़ा जा सकता है, जिस स्थिति में स्थितियाँ केवल इस पर निर्भर करती हैं
नाम सेट किया जा रहा है (सेट के विपरीत और शून्य नहीं)। अगर शब्द आवश्यक है, पैरामीटर, कमांड,
इस पर अंकगणित और टिल्ड प्रतिस्थापन किया जाता है; अगर शब्द जरूरत नहीं है, ऐसा नहीं है
मूल्यांकन किया गया।

पैरामीटर प्रतिस्थापन के निम्नलिखित रूपों का भी उपयोग किया जा सकता है (यदि नाम एक सरणी है,
कुंजी "0" वाले तत्व को अदिश संदर्भ में प्रतिस्थापित किया जाएगा):

${#नाम}
स्थितीय मापदंडों की संख्या यदि नाम '*', '@' है, या निर्दिष्ट नहीं है; अन्यथा
पैरामीटर के स्ट्रिंग मान की लंबाई (वर्णों में)। नाम.

${#नाम[*]}
${#नाम[@]}
सरणी में तत्वों की संख्या नाम.

${%नाम}
पैरामीटर के स्ट्रिंग मान की चौड़ाई (स्क्रीन कॉलम में)। नाम, या -1 यदि
${नाम} में एक नियंत्रण वर्ण होता है.

${!नाम}
द्वारा संदर्भित वेरिएबल का नाम नाम। यह होगा नाम सिवाय कब नाम is
एक नाम संदर्भ (बाध्य चर), द्वारा बनाया गया नामरेफ कमांड (जो एक उपनाम है
एसटी टाइपसेट -n).

${!नाम[*]}
${!नाम[@]}
सरणी में सूचकांकों (कुंजियों) के नाम नाम.

${नाम#पैटर्न}
${नाम##पैटर्न}
If पैटर्न पैरामीटर के मान की शुरुआत से मेल खाता है नाम, मिलान किया गया पाठ है
प्रतिस्थापन के परिणाम से हटा दिया गया. एक एकल '#' का परिणाम सबसे कम होता है
मैच, और उनमें से दो का परिणाम सबसे लंबे मैच में होता है। किसी वेक्टर पर लागू नहीं किया जा सकता
(${*} या ${@} या ${array[*]} या ${array[@]}).

${नाम%पैटर्न}
${नाम%%पैटर्न}
${..#..} प्रतिस्थापन की तरह, लेकिन यह मान के अंत से हटा देता है। हो नहीं सकता
एक वेक्टर पर लागू किया गया।

${नाम/पैटर्न/स्ट्रिंग}
${नाम/#पैटर्न/स्ट्रिंग}
${नाम/%पैटर्न/स्ट्रिंग}
${नाम//पैटर्न/स्ट्रिंग}
का सबसे लंबा मैच पैटर्न पैरामीटर के मान में नाम के साथ बदल दिया गया है स्ट्रिंग
(यदि हटा दिया गया है स्ट्रिंग खाली है; उस स्थिति में पिछला स्लैश ('/') छोड़ा जा सकता है)।
'#' या '%' के बाद एक अग्रणी स्लैश के कारण पैटर्न स्थिर हो जाता है
क्रमशः मूल्य की शुरुआत या अंत; खाली निर्लिप्त पैटर्नइसका कारण नं
प्रतिस्थापन; एक एकल अग्रणी स्लैश या का उपयोग पैटर्न जो खाली से मेल खाता है
स्ट्रिंग के कारण प्रतिस्थापन केवल एक बार होता है; दो प्रमुख स्लैश सभी का कारण बनते हैं
प्रतिस्थापित किये जाने वाले मूल्य में मिलान की घटनाएँ। किसी वेक्टर पर लागू नहीं किया जा सकता.
अकुशलतापूर्वक लागू किया गया, धीमा हो सकता है।

${नाम:पद:लेन}
पहला पोस्ट लेन के पात्र नाम, स्थिति से शुरू पद, प्रतिस्थापित हैं। दोनों
पद और :लेन वैकल्पिक हैं. अगर पद नकारात्मक है, गिनती के अंत में शुरू होती है
डोरी; यदि इसे छोड़ दिया जाए, तो यह 0 पर डिफॉल्ट हो जाता है। यदि लेन छोड़ दिया गया है या उससे अधिक है
शेष स्ट्रिंग की लंबाई, यह सब प्रतिस्थापित किया गया है। दोनों पद और लेन रहे
अंकगणितीय अभिव्यक्ति के रूप में मूल्यांकन किया गया। वर्तमान में, पद एक स्थान से शुरू करना चाहिए,
पहचाने जाने वाले प्रारंभिक कोष्ठक या अंक। किसी वेक्टर पर लागू नहीं किया जा सकता.

${नाम@#}
के विस्तार का हैश (बीएएफएच एल्गोरिदम का उपयोग करके)। नाम. इसका भी प्रयोग किया जाता है
शेल के हैशटेबल के लिए आंतरिक रूप से।

${नाम@क्यू}
पुन:प्रवेश के लिए सुरक्षित उद्धृत अभिव्यक्ति, जिसका मूल्य का मूल्य है नाम
पैरामीटर, प्रतिस्थापित किया गया है.

ध्यान दें कि पैटर्न विस्तारित ग्लोबिंग पैटर्न (@(...)), सिंगल ('...') या डबल की आवश्यकता हो सकती है
("...") उद्धरण जब तक बच नहीं जाता -o sh सेट है।

निम्नलिखित विशेष पैरामीटर शेल द्वारा अंतर्निहित रूप से सेट किए गए हैं और इन्हें सीधे सेट नहीं किया जा सकता है
असाइनमेंट का उपयोग करना:

! प्रारंभ की गई अंतिम पृष्ठभूमि प्रक्रिया की प्रक्रिया आईडी. यदि कोई पृष्ठभूमि प्रक्रिया नहीं है
प्रारंभ किया गया है, पैरामीटर सेट नहीं है.

# स्थितीय मापदंडों की संख्या ($1, $2, आदि).

$ शेल का पीआईडी, या मूल शेल का पीआईडी, यदि यह एक उपकोश है। करना नहीं
अस्थायी फ़ाइल नाम उत्पन्न करने के लिए इस तंत्र का उपयोग करें; देखना एमकेटेम्प(1) इसके बजाय।

- वर्तमान एकल अक्षर विकल्पों का संयोजन (देखें)। सेट नीचे आदेश
विकल्पों की सूची के लिए)।

? निष्पादित अंतिम गैर-एसिंक्रोनस कमांड की निकास स्थिति। यदि अंतिम आदेश
एक सिग्नल से मारा गया, $? 128 प्लस सिग्नल संख्या पर सेट है, लेकिन अधिकतम 255 पर।

0 शेल का नाम, इस प्रकार निर्धारित किया गया है: पहला तर्क mksh अगर वह वैसा होता
के साथ आह्वान किया गया -c विकल्प एवं तर्क दिये गये; अन्यथा पट्टिका तर्क, यदि
इसकी आपूर्ति की गई थी; या फिर शेल को बेसनेम के साथ लागू किया गया था (यानी argv[0])। $0
वर्तमान स्क्रिप्ट के नाम या वर्तमान फ़ंक्शन के नाम पर भी सेट किया गया है,
यदि इसे इसके साथ परिभाषित किया गया था समारोह कीवर्ड (यानी एक कोर्न शेल स्टाइल फ़ंक्शन)।

1 ..9 पहले नौ स्थितीय पैरामीटर जो शेल, फ़ंक्शन, या को आपूर्ति किए गए थे
स्क्रिप्ट '.' का उपयोग करके प्राप्त की गई है। अंतर्निहित. आगे स्थितीय पैरामीटर हो सकते हैं
${ का उपयोग करके एक्सेस किया गयासंख्या}.

* सभी स्थितीय पैरामीटर (0 को छोड़कर), यानी $1, $2, $3, ...
यदि दोहरे उद्धरण चिह्नों के बाहर उपयोग किया जाता है, तो पैरामीटर अलग-अलग शब्द होते हैं (जो अधीन होते हैं
शब्द विभाजन के लिए); यदि दोहरे उद्धरण चिह्नों के भीतर उपयोग किया जाता है, तो पैरामीटर को इसके द्वारा अलग किया जाता है
IFS पैरामीटर का पहला अक्षर (या यदि IFS शून्य है तो खाली स्ट्रिंग)।

@ के समान $*, जब तक कि इसका उपयोग दोहरे उद्धरण चिह्नों के अंदर नहीं किया जाता है, ऐसी स्थिति में एक अलग शब्द होता है
प्रत्येक स्थितीय पैरामीटर के लिए उत्पन्न। यदि कोई स्थितीय पैरामीटर नहीं हैं, तो नहीं
शब्द उत्पन्न होता है. $@ इसका उपयोग बिना खोए, शब्दशः तर्कों तक पहुंचने के लिए किया जा सकता है
शून्य तर्क या रिक्त स्थान के साथ तर्कों को विभाजित करना।

निम्नलिखित पैरामीटर शेल द्वारा सेट और/या उपयोग किए जाते हैं:

_ (अंडरस्कोर) जब किसी बाहरी कमांड को शेल द्वारा निष्पादित किया जाता है, तो यह पैरामीटर
नई प्रक्रिया के वातावरण में निष्पादित पथ पर सेट किया गया है
आज्ञा। इंटरैक्टिव उपयोग में, यह पैरामीटर पैरेंट शेल में भी सेट किया गया है
पिछले आदेश का अंतिम शब्द.

BASHPID शेल या उपकोश का PID।

CDPATH, PATH की तरह, लेकिन तर्क को हल करने के लिए उपयोग किया जाता है cd अंतर्निहित आदेश. टिप्पणी
यदि CDPATH सेट है और उसमें 'नहीं है।' या एक खाली स्ट्रिंग तत्व,
वर्तमान निर्देशिका खोजी नहीं गई है. यह भी cd अंतर्निर्मित कमांड प्रदर्शित होगा
परिणामी निर्देशिका जब कोई मिलान इसके अलावा किसी अन्य खोज पथ में पाया जाता है
खाली रास्ता.

कॉलम टर्मिनल या विंडो पर कॉलम की संख्या पर सेट करें। हमेशा सेट, डिफ़ॉल्ट
से 80, जब तक कि मूल्य जैसा रिपोर्ट न किया गया हो स्टट्टी(1) गैर-शून्य और पर्याप्त समझदार है
(न्यूनतम 12x3 है); LINES के लिए समान. इस पैरामीटर का उपयोग किया जाता है
इंटरैक्टिव लाइन संपादन मोड, और द्वारा चयन, सेट -o, तथा हत्या -l आज्ञाओं
सूचना स्तंभों को प्रारूपित करने के लिए. परिवेश से आयात करना या असंतुलित करना
यह पैरामीटर वास्तविक टर्मिनल आकार के पक्ष में बाइंडिंग को हटा देता है
मूल्य प्रदान किया गया।

ENV यदि यह पैरामीटर किसी प्रोफ़ाइल फ़ाइल के निष्पादित होने के बाद सेट पाया जाता है, तो
विस्तारित मान का उपयोग शेल स्टार्टअप फ़ाइल के रूप में किया जाता है। इसमें आमतौर पर फ़ंक्शन शामिल होता है
और उपनाम परिभाषाएँ।

शेल का ERRNO पूर्णांक मान गलत चर। यह अंतिम कारण बताता है
सिस्टम कॉल विफल. अभी तक लागू नहीं।

EXECSHELL यदि सेट किया गया है, तो यह माना जाता है कि इस पैरामीटर में वह शेल शामिल है जिसका उपयोग किया जाना है
उस आदेश को निष्पादित करें क्रियान्वित करना(2) निष्पादित करने में विफल रहता है और जो ए से शुरू नहीं होता है
“#!खोल" अनुक्रम।

FCEDIT संपादक द्वारा उपयोग किया गया fc आदेश (नीचे देखें)।

FPATH, PATH की तरह, लेकिन इसका उपयोग तब किया जाता है जब फ़ाइल का पता लगाने के लिए एक अपरिभाषित फ़ंक्शन निष्पादित किया जाता है
फ़ंक्शन को परिभाषित करना. इसे तब भी खोजा जाता है जब कोई कमांड उपयोग में नहीं आता है
पथ। देखना कार्य अधिक जानकारी के लिए नीचे।

HISTFILE कमांड इतिहास को संग्रहीत करने के लिए उपयोग की जाने वाली फ़ाइल का नाम। जब असाइन किया गया या अनसेट किया गया,
फ़ाइल खोली गई है, इतिहास को छोटा किया गया है और फिर फ़ाइल से लोड किया गया है; बाद का
एक बार नए आदेश (संभवतः कई पंक्तियों से मिलकर) जोड़ दिए जाते हैं
सफलतापूर्वक संकलित. इसके अलावा, शेल के कई आमंत्रण साझा किए जाएंगे
इतिहास यदि उनके HISTFILE पैरामीटर सभी एक ही फ़ाइल की ओर इशारा करते हैं।

नोट: यदि HISTFILE अनसेट या खाली है, तो किसी भी इतिहास फ़ाइल का उपयोग नहीं किया जाता है। यह है
AT&T UNIX से भिन्न क्ष.

HISTSIZE सामान्यतः इतिहास के लिए संग्रहीत आदेशों की संख्या। डिफ़ॉल्ट 2047 है। करो
इस मान को 1000000000 जैसे अत्यधिक उच्च मान पर सेट न करें क्योंकि mksh कर सकते हैं
तब इतिहास के लिए पर्याप्त मेमोरी आवंटित नहीं होगी और प्रारंभ नहीं होगा।

होम के लिए डिफ़ॉल्ट निर्देशिका cd कमांड और ए के लिए प्रतिस्थापित मान
अपरिपक्व ~ (देखें टिल्ड विस्तार नीचे).

IFS आंतरिक क्षेत्र विभाजक, प्रतिस्थापन के दौरान और द्वारा उपयोग किया जाता है पढ़ना आदेश, को
मानों को अलग-अलग तर्कों में विभाजित करें; सामान्यतः स्पेस, टैब और न्यूलाइन पर सेट किया जाता है।
देख प्रतिस्थापन विवरण के लिए ऊपर।

नोट: शेल होने पर यह पैरामीटर पर्यावरण से आयात नहीं किया जाता है
शुरू कर दिया है।

KSHEGID शेल की प्रभावी समूह आईडी।

KSHGID शेल की वास्तविक समूह आईडी।

KSHUID शेल की वास्तविक उपयोगकर्ता आईडी।

KSH_VERSION शेल का नाम और संस्करण (केवल पढ़ने के लिए)। संस्करण आदेश भी देखें
in Emacs संपादन मोड और Vi संपादन मोड अनुभाग, नीचे.

LINENO फ़ंक्शन या शेल स्क्रिप्ट की लाइन संख्या जो वर्तमान में मौजूद है
मार डाला।

लाइनें टर्मिनल या विंडो पर लाइनों की संख्या पर सेट करें। हमेशा सेट, डिफ़ॉल्ट पर
24. कॉलम देखें।

युगवास्तविक समय
युग के बाद से समय, के रूप में लौट आए gettimeofday(2), दशमलव के रूप में स्वरूपित
टीवी_सेक उसके बाद एक बिंदु ('.') और टीवी_यूसेक बिल्कुल छह दशमलव तक गद्देदार
अंक।

OLDPWD पिछली कार्यशील निर्देशिका। यदि अनसेट करें cd सफलतापूर्वक नहीं बदला गया है
शेल प्रारंभ होने के बाद से निर्देशिकाएँ, या यदि शेल नहीं जानता कि वह कहाँ है।

OPTARG का उपयोग करते समय गेटअप, इसमें पार्स किए गए विकल्प के लिए तर्क शामिल है, यदि यह
एक की आवश्यकता है.

OPTIND उपयोग करते समय संसाधित किए जाने वाले अगले तर्क का सूचकांक गेटअप. नियुक्‍त करना 1
इस पैरामीटर का कारण बनता है गेटअप शुरू से ही तर्कों को संसाधित करने के लिए
अगली बार इसे लागू किया जाएगा.

पथ एक कोलन (OS/2 पर अर्धविराम) खोजी गई निर्देशिकाओं की अलग सूची
'.' का उपयोग करके प्राप्त आदेशों और फ़ाइलों की तलाश करते समय आदेश (नीचे देखें)।
एक अग्रणी या अनुगामी कोलन, या दो आसन्न से उत्पन्न एक खाली स्ट्रिंग
कोलन को '.' के रूप में माना जाता है। (वर्तमान निर्देशिका)।

पीजीआरपी शेल के प्रोसेस ग्रुप लीडर की प्रोसेस आईडी।

PIPESTATUS एक सरणी जिसमें त्रुटि स्तर (निकास स्थिति) कोड, एक-एक करके, अंतिम होते हैं
अग्रभूमि में पाइपलाइन चलती है।

पीपीआईडी ​​शेल के पैरेंट की प्रक्रिया आईडी।

PS1 इंटरएक्टिव शेल्स के लिए प्राथमिक संकेत। पैरामीटर, कमांड और अंकगणित
प्रतिस्थापन किए जाते हैं, और '!' वर्तमान कमांड से बदल दिया गया है
संख्या (देखें fc नीचे आदेश दें)। एक शाब्दिक '!' द्वारा प्रॉम्प्ट में डाला जा सकता है
'!!' रखना PS1 में.

गैर-रूट उपयोगकर्ताओं के लिए डिफ़ॉल्ट प्रॉम्प्ट '$' है, रूट के लिए '#' है। अगर mksh is
रूट द्वारा लागू किया गया और PS1 में '#' वर्ण नहीं है, जो डिफ़ॉल्ट मान है
भले ही PS1 पहले से ही पर्यावरण में मौजूद हो, तब भी इसका उपयोग किया जाएगा।

RSI mksh वितरण एक नमूने के साथ आता है dot.mkshrc एक परिष्कृत युक्त
उदाहरण, लेकिन आपको निम्नलिखित पसंद आ सकता है (ध्यान दें
${HOSTNAME:=$(hostname)} और रूट-बनाम-उपयोगकर्ता विभेदक खंड (में) हैं
यह उदाहरण) PS1 असाइनमेंट समय पर निष्पादित किया गया है, जबकि $USER और $PWD हैं
बच गए और इस प्रकार हर बार संकेत प्रदर्शित होने पर मूल्यांकन किया जाएगा):

PS1='${USER:=$(id -un)}'"@${HOSTNAME:=$(hostname)}:\$PWD $(
यदि (( USER_ID )); फिर प्रिंट करें \$; अन्यथा प्रिंट करें \#; फाई) "

ध्यान दें कि चूंकि कमांड-लाइन संपादक यह पता लगाने का प्रयास करते हैं कि प्रॉम्प्ट कितनी देर तक चलता है
है (ताकि वे जान सकें कि यह स्क्रीन के किनारे से कितनी दूर है), एस्केप कोड में
संकेत चीजों को गड़बड़ाने की प्रवृत्ति रखते हैं। आप शेल से कह सकते हैं कि निश्चित गिनती न करें
किसी वर्ण के साथ अपने संकेत को उपसर्ग करके अनुक्रम (जैसे एस्केप कोड)।
(जैसे Ctrl-A) के बाद कैरिज रिटर्न और फिर एस्केप का परिसीमन किया जाता है
इस वर्ण वाले कोड. प्रॉम्प्ट में उस वर्ण की कोई भी घटना होती है
मुद्रित नहीं. वैसे, इस हैक के लिए मुझे दोष न दें; यह से लिया गया है
मूल ksh88(1), जिसने डिलीमिटर कैरेक्टर को प्रिंट कर दिया, जिससे आप बाहर हो गए
सौभाग्य यदि आपके पास कोई गैर-मुद्रणीय पात्र नहीं है।

चूँकि बैकस्लैश और अन्य विशेष वर्णों की व्याख्या शेल द्वारा की जा सकती है,
PS1 सेट करने के लिए या तो बैकस्लैश से बचें, या डबल कोट्स का उपयोग करें।
उत्तरार्द्ध अधिक व्यावहारिक है. यह एक अधिक जटिल उदाहरण है, सीधे तौर पर टालना
विशेष वर्ण दर्ज करें (उदाहरण के लिए ^V Emacs संपादन मोड में), जो
वर्तमान कार्यशील निर्देशिका को रिवर्स वीडियो में एम्बेड करता है (रंग काम करेगा,
भी), प्रॉम्प्ट स्ट्रिंग में:

x=$(प्रिंट \\001)
PS1='$x$(प्रिंट \\r)$x$(tput so)$x\$PWD$x$(tput se)$x> "

डेविड जी कॉर्न के एक मजबूत सुझाव के कारण, mksh अब भी समर्थन करता है
निम्नलिखित प्रपत्र:

PS1=$'\1\r\1\e[7m\1$PWD\1\e[0m\1> '

PS2 सेकेंडरी प्रॉम्प्ट स्ट्रिंग, डिफ़ॉल्ट रूप से '>', का उपयोग तब किया जाता है जब अधिक इनपुट की आवश्यकता होती है
एक आदेश पूरा करें.

PS3 प्रॉम्प्ट का उपयोग किया गया चयन मेनू चयन पढ़ते समय कथन। डिफ़ॉल्ट
है '#? '.

PS4 उन आदेशों को उपसर्ग करने के लिए उपयोग किया जाता है जो निष्पादन ट्रेसिंग के दौरान मुद्रित होते हैं (देखें)। सेट
-x नीचे आदेश दें)। पैरामीटर, कमांड और अंकगणितीय प्रतिस्थापन हैं
इसे मुद्रित करने से पहले निष्पादित किया जाता है। डिफ़ॉल्ट '+' है. आप इसे सेट करना चाह सकते हैं
इसके बजाय, टाइमस्टैम्प शामिल करने के लिए '[$EPOCHREALTIME] ' पर जाएं।

PWD वर्तमान कार्यशील निर्देशिका। यदि शेल को पता नहीं है तो अनसेट या शून्य हो सकता है
यह कहाँ है।

रैंडम हर बार जब रैंडम का संदर्भ दिया जाता है, तो उसे 0 और 32767 के बीच एक संख्या दी जाती है
पहले एक रैखिक सर्वांगसम पीआरएनजी से।

उत्तर के लिए डिफ़ॉल्ट पैरामीटर पढ़ना यदि कोई नाम नहीं दिया गया है तो आदेश दें। में भी प्रयोग किया जाता है
चयन मानक इनपुट से पढ़े गए मान को संग्रहीत करने के लिए लूप।

सेकंड शेल प्रारंभ होने के बाद से सेकंड की संख्या या, यदि पैरामीटर रहा है
एक पूर्णांक मान निर्दिष्ट किया गया है, असाइनमेंट के बाद से सेकंड की संख्या प्लस
वह मान जो असाइन किया गया था.

TMOUT यदि किसी इंटरैक्टिव शेल में धनात्मक पूर्णांक पर सेट किया जाता है, तो यह अधिकतम निर्दिष्ट करता है
प्राइमरी प्रिंट करने के बाद शेल कितने सेकंड तक इनपुट के लिए प्रतीक्षा करेगा
शीघ्र (PS1)। यदि समय अधिक हो जाता है, तो शेल बाहर निकल जाता है।

TMPDIR निर्देशिका में अस्थायी शेल फ़ाइलें बनाई जाती हैं। यदि यह पैरामीटर नहीं है
सेट, या अस्थायी, लिखने योग्य निर्देशिका का पूर्ण पथ शामिल नहीं है
फ़ाइलें बनाई जाती हैं / Tmp.

USER_ID शेल की प्रभावी उपयोगकर्ता आईडी।

टिल्ड विस्तार
टिल्डे विस्तार जो पैरामीटर प्रतिस्थापन के समानांतर किया जाता है, शब्दों पर किया जाता है
एक अउद्धृत '~' से शुरू करना। टिल्ड का अनुसरण करने वाले वर्ण, पहले '/' तक, यदि
कोई भी, एक लॉगिन नाम माना जाता है। यदि लॉगिन नाम खाली है, तो '+', या '-', का मान
क्रमशः HOME, PWD, या OLDPWD पैरामीटर प्रतिस्थापित किया जाता है। अन्यथा, पासवर्ड
फ़ाइल को लॉगिन नाम के लिए खोजा जाता है, और टिल्ड अभिव्यक्ति को उपयोगकर्ता के साथ प्रतिस्थापित किया जाता है
घरेलू निर्देशिका। यदि पासवर्ड फ़ाइल में लॉगिन नाम नहीं मिलता है या कोई उद्धरण या
लॉगिन नाम में पैरामीटर प्रतिस्थापन होता है, कोई प्रतिस्थापन नहीं किया जाता है।

पैरामीटर असाइनमेंट में (जैसे कि एक साधारण-कमांड से पहले वाले या जो इसमें घटित होते हैं
के तर्क उर्फ, निर्यात, वैश्विक, सिफ़ पढ़िये, तथा टाइपसेट), टिल्ड विस्तार के बाद किया जाता है
कोई भी असाइनमेंट (अर्थात् बराबर चिह्न के बाद) या किसी गैर-उद्धृत कोलन (':') के बाद; लॉगिन नाम
कोलन द्वारा भी सीमांकित किया जाता है।

पहले विस्तारित लॉगिन नामों की होम निर्देशिका को कैश किया जाता है और पुन: उपयोग किया जाता है। उर्फ -d
कमांड का उपयोग इस कैश को सूचीबद्ध करने, बदलने और जोड़ने के लिए किया जा सकता है (उदाहरण के लिए)। उर्फ -d
fac=/usr/स्थानीय/सुविधाएँ; cd ~fac/bin).

ब्रेस विस्तार (विकल्प)
ब्रेस अभिव्यक्तियाँ निम्नलिखित रूप लेती हैं:

उपसर्ग{str1, ...,एसटीआरएन}प्रत्यय

भावों का विस्तार किया गया है N शब्द, जिनमें से प्रत्येक का संयोजन है उपसर्ग, stri,
और प्रत्यय (उदाहरण के लिए "a{c,b{X,Y},d}e" का विस्तार चार शब्दों तक होता है: "ace", "abXe", "abYe", और "ade")।
जैसा कि उदाहरण में बताया गया है, ब्रेस भावों को नेस्ट किया जा सकता है और परिणामी शब्दों को नहीं
क्रमबद्ध। विस्तार के लिए ब्रेस अभिव्यक्तियों में एक गैर-उद्धृत अल्पविराम (',') होना चाहिए (उदाहरण के लिए)।
{} और {फू} विस्तारित नहीं हैं)। पैरामीटर प्रतिस्थापन के बाद ब्रेस विस्तार किया जाता है
और फ़ाइल नाम जनरेशन से पहले।

पट्टिका नाम पैटर्न उपयोग करें
फ़ाइल नाम पैटर्न एक ऐसा शब्द है जिसमें एक या अधिक गैर-उद्धृत '?', '*', '+', '@', या '!'
वर्ण या "[..]" अनुक्रम। एक बार ब्रेस विस्तार हो जाने के बाद, शेल बदल जाता है
फ़ाइल नाम पैटर्न सभी फ़ाइलों के क्रमबद्ध नामों के साथ जो पैटर्न से मेल खाते हैं (यदि नहीं)।
फ़ाइलें मेल खाती हैं, शब्द अपरिवर्तित छोड़ दिया गया है)। पैटर्न तत्वों के निम्नलिखित अर्थ हैं:

? किसी एक वर्ण से मेल खाता है.

* ऑक्टेट के किसी भी क्रम से मेल खाता है।

[..] कोष्ठक के अंदर किसी भी ऑक्टेट से मेल खाता है। ऑक्टेट्स की रेंज निर्दिष्ट की जा सकती है
दो ऑक्टेट्स को '-' से अलग करना (उदाहरण के लिए "[a0-9]" अक्षर 'a' या किसी अंक से मेल खाता है)।
स्वयं का प्रतिनिधित्व करने के लिए, '-' को या तो उद्धृत किया जाना चाहिए या पहले या अंतिम ऑक्टेट को उद्धृत किया जाना चाहिए
ऑक्टेट सूची में. इसी तरह, ']' को उद्धृत किया जाना चाहिए या सूची में पहला ऑक्टेट होना चाहिए
यदि इसे सूची के अंत के बजाय स्वयं का प्रतिनिधित्व करना है। यह भी एक '!' उपस्थिति
सूची की शुरुआत में विशेष अर्थ है (नीचे देखें), इसलिए यह स्वयं का प्रतिनिधित्व करने के लिए है
उद्धृत किया जाना चाहिए या सूची में बाद में प्रदर्शित होना चाहिए।

[!..] जैसे [..], सिवाय इसके कि यह कोष्ठक के अंदर नहीं किसी भी ऑक्टेट से मेल खाता है।

*(पैटर्न|...|पैटर्न)
ऑक्टेट की किसी भी स्ट्रिंग से मेल खाता है जो निर्दिष्ट की शून्य या अधिक घटनाओं से मेल खाता है
पैटर्न. उदाहरण: पैटर्न *(फू|बार) स्ट्रिंग्स से मेल खाता है "", "फू", "बार",
"फूबरफू", आदि।

+(पैटर्न|...|पैटर्न)
ऑक्टेट की किसी भी स्ट्रिंग से मेल खाता है जो निर्दिष्ट की एक या अधिक घटनाओं से मेल खाता है
पैटर्न. उदाहरण: पैटर्न +(फू|बार) स्ट्रिंग्स "फू", "बार" से मेल खाता है
"फूबार", आदि

?(पैटर्न|...|पैटर्न)
खाली स्ट्रिंग या एक स्ट्रिंग से मेल खाता है जो निर्दिष्ट पैटर्न में से किसी एक से मेल खाता है।
उदाहरण: पैटर्न ?(फू|बार) केवल स्ट्रिंग्स "", "फू" और "बार" से मेल खाता है।

@(पैटर्न|...|पैटर्न)
एक स्ट्रिंग से मेल खाता है जो निर्दिष्ट पैटर्न में से एक से मेल खाता है। उदाहरण: पैटर्न
@(फू|बार) केवल स्ट्रिंग "फू" और "बार" से मेल खाता है।

!(पैटर्न|...|पैटर्न)
किसी भी स्ट्रिंग से मेल खाता है जो निर्दिष्ट पैटर्न में से किसी एक से मेल नहीं खाता है। उदाहरण: द
पैटर्न !(फू|बार) "फू" और "बार" को छोड़कर सभी स्ट्रिंग्स से मेल खाता है; नमूना !(*)
कोई तार से मेल नहीं खाता; नमूना !(?)* सभी तारों से मेल खाता है (इसके बारे में सोचें)।

ध्यान दें कि जटिल ग्लोबिंग, विशेष रूप से विकल्पों के साथ, धीमी है; अलग से उपयोग करना
तुलनाएँ तेज़ हो सकती हैं (या नहीं भी)।

ध्यान दें कि mksh (और pdksh) कभी भी 'से मेल नहीं खाता।' और '..', लेकिन एटी एंड टी यूनिक्स क्ष, बॉर्न sh, और जीएनयू
खूब जोर से पीटना करते हैं.

ध्यान दें कि उपरोक्त पैटर्न तत्वों में से कोई भी ए की शुरुआत में किसी भी अवधि ('.') से मेल नहीं खाता है
फ़ाइल नाम या स्लैश ('/'), भले ही वे स्पष्ट रूप से [..] अनुक्रम में उपयोग किए गए हों; यह भी
नाम '.' और '..' कभी भी मेल नहीं खाते, पैटर्न '.*' से भी नहीं।

अगर मार्कडिर्स विकल्प सेट है, फ़ाइल नाम निर्माण से उत्पन्न होने वाली कोई भी निर्देशिका हैं
अनुगामी '/' से चिह्नित।

इनपुट आउटपुट पुनर्निर्देशन
जब कोई कमांड निष्पादित होता है, तो उसका मानक इनपुट, मानक आउटपुट और मानक त्रुटि (फ़ाइल)
डिस्क्रिप्टर 0, 1, और 2, क्रमशः) सामान्यतः शेल से विरासत में मिले हैं। तीन
इसका अपवाद पाइपलाइनों में कमांड हैं, जिसके लिए मानक इनपुट और/या मानक
आउटपुट वे हैं जो पाइपलाइन द्वारा स्थापित किए जाते हैं, कार्य नियंत्रण होने पर अतुल्यकालिक कमांड बनाए जाते हैं
अक्षम, जिसके लिए मानक इनपुट प्रारंभ में सेट किया गया है / Dev / बातिल, और इसके लिए आदेश देता है
निम्नलिखित में से कौन सा पुनर्निर्देशन निर्दिष्ट किया गया है:

>पट्टिका मानक आउटपुट को पुनर्निर्देशित किया गया है पट्टिका. अगर पट्टिका अस्तित्व नहीं है, यह बनाया गया है;
यदि यह अस्तित्व में है, तो यह एक नियमित फ़ाइल है, और नोक्लोबर विकल्प सेट है, एक त्रुटि
घटित होना; अन्यथा, फ़ाइल काट दी जाती है। ध्यान दें कि इसका मतलब कमांड है सीएमडी
<फू >फू खुलेगा foo पढ़ने के लिए और फिर जब वह इसे पढ़ने के लिए खोले तो इसे छोटा कर दें
लेखन, पहले सीएमडी वास्तव में पढ़ने का मौका मिलता है foo.

>|पट्टिका के समान >, सिवाय इसके कि फ़ाइल को छोटा कर दिया गया है, भले ही नोक्लोबर विकल्प निर्धारित है।

>>पट्टिका के समान >, सिवाय अगर पट्टिका मौजूद है, इसे छोटा करने के बजाय इसमें जोड़ दिया गया है।
साथ ही, फ़ाइल को एपेंड मोड में खोला जाता है, इसलिए राइट्स हमेशा अंत में जाते हैं
फ़ाइल (देखें खुला(2))।

<पट्टिका मानक इनपुट को पुनर्निर्देशित किया गया है पट्टिका, जिसे पढ़ने के लिए खोला गया है।

<>पट्टिका के समान <, सिवाय इसके कि फ़ाइल पढ़ने और लिखने के लिए खोली गई है।

<<मार्कर इस प्रकार के पुनर्निर्देशन (जिसे a कहा जाता है) वाली कमांड लाइन को पढ़ने के बाद
"यहाँ दस्तावेज़"), शेल कमांड स्रोत से पंक्तियों को कॉपी करता है
एक पंक्ति के मिलान तक अस्थायी फ़ाइल मार्कर पढ़ा जाता है। जब आदेश है
निष्पादित, मानक इनपुट को अस्थायी फ़ाइल से पुनर्निर्देशित किया जाता है। अगर मार्कर
इसमें कोई उद्धृत वर्ण नहीं है, अस्थायी फ़ाइल की सामग्री संसाधित की जाती है
जैसे कि हर बार कमांड निष्पादित होने पर दोहरे उद्धरण चिह्नों में संलग्न होता है, इसलिए पैरामीटर,
कमांड, और अंकगणितीय प्रतिस्थापन बैकस्लैश ('\') के साथ किए जाते हैं
'$', ''', '\', और '\newline' के लिए बच निकलता है, लेकिन '''' के लिए नहीं। यदि यहां एकाधिक है
दस्तावेज़ों का उपयोग उसी कमांड लाइन पर किया जाता है, उन्हें क्रम में सहेजा जाता है।

यदि नही मार्कर दिया गया है, यहाँ दस्तावेज़ अगले पर समाप्त होता है << और प्रतिस्थापन
निष्पादित किया जाएगा। अगर मार्कर केवल सिंगल ''''' या डबल ''''' का एक सेट है
जिन उद्धरणों के बीच में कुछ भी नहीं है, यहाँ दस्तावेज़ अगली खाली पंक्ति पर समाप्त होता है
और प्रतिस्थापन नहीं किया जाएगा.

<<-मार्कर के समान <<, सिवाय इसके कि प्रमुख टैब यहां दस्तावेज़ में पंक्तियों से हटा दिए गए हैं।

<<शब्द के समान <<, सिवाय इसके कि शब्द is यहाँ दस्तावेज़. इसे यहां कहा जाता है
स्ट्रिंग.

<&fd फ़ाइल डिस्क्रिप्टर से मानक इनपुट डुप्लिकेट किया गया है fd. fd एक संख्या हो सकती है,
मौजूदा फ़ाइल डिस्क्रिप्टर की संख्या का संकेत; अक्षर 'पी', दर्शाता है
वर्तमान सह-प्रक्रिया के आउटपुट से जुड़ा फ़ाइल डिस्क्रिप्टर; या
वर्ण '-', मानक इनपुट को बंद करने का संकेत देता है। ध्यान दें कि fd is
अधिकांश शेल कार्यान्वयन में एकल अंक तक सीमित।

>&fd के समान <&, सिवाय इसके कि ऑपरेशन मानक आउटपुट पर किया जाता है।

&>पट्टिका के समान >पट्टिका 2> और 1. यह एक बहिष्कृत (विरासत) जीएनयू है खूब जोर से पीटना एक्सटेंशन समर्थित
by mksh जो पूर्ववर्ती स्पष्ट एफडी संख्या का भी समर्थन करता है, उदाहरण के लिए,
3&>पट्टिका के समान है 3>पट्टिका 2> और 3 in mksh लेकिन जीएनयू में एक सिंटैक्स त्रुटि खूब जोर से पीटना.

&>|पट्टिका, &>>पट्टिका, &>&fd
के समान >|पट्टिका, >>पट्टिकाया, >&fd, द्वारा पीछा 2> और 1, ऊपरोक्त अनुसार। ये mksh
एक्सटेंशन।

उपरोक्त किसी भी पुनर्निर्देशन में, फ़ाइल डिस्क्रिप्टर जिसे पुनर्निर्देशित किया जाता है (यानी मानक
इनपुट या मानक आउटपुट) एक संख्या के साथ पुनर्निर्देशन से पहले स्पष्ट रूप से दिया जा सकता है
(पोर्टेबल रूप से, केवल एक अंक)। पैरामीटर, कमांड और अंकगणितीय प्रतिस्थापन, टिल्ड
प्रतिस्थापन, और (यदि शेल इंटरैक्टिव है) फ़ाइल नाम पीढ़ी सभी पर निष्पादित की जाती है
la पट्टिका, मार्कर, तथा fd पुनर्निर्देशन के तर्क. हालाँकि, ध्यान दें कि किसी भी परिणाम
फ़ाइल नाम पीढ़ी का उपयोग केवल तभी किया जाता है जब एक फ़ाइल मेल खाती हो; यदि एकाधिक फ़ाइलें मेल खाती हैं, तो
विस्तारित फ़ाइल नाम पीढ़ी वर्णों के साथ शब्द का उपयोग किया जाता है। ध्यान दें कि प्रतिबंधित में
शेल, पुनर्निर्देशन जो फ़ाइलें बना सकते हैं, उनका उपयोग नहीं किया जा सकता।

सरल-आदेशों के लिए, पुनर्निर्देशन आदेश में कहीं भी दिखाई दे सकता है; कंपाउंड-कमांड के लिए
(if कथन, आदि), कोई भी पुनर्निर्देशन अंत में दिखना चाहिए। पुनर्निर्देशन संसाधित किया जाता है
पाइपलाइन बनने के बाद और उन्हें दिए गए क्रम में, निम्नलिखित प्रिंट होगा
इससे जुड़ी पंक्ति संख्या में त्रुटि:

$ cat /foo/bar 2>&1 >/dev/null | पीआर-एन-टी

I/O पुनर्निर्देशन द्वारा बनाए गए फ़ाइल डिस्क्रिप्टर शेल के लिए निजी हैं।

अंकगणित भाव
पूर्णांक अंकगणितीय अभिव्यक्तियों का उपयोग इसके साथ किया जा सकता है चलो कमांड, $((..)) एक्सप्रेशन के अंदर,
सरणी संदर्भों के अंदर (उदा नाम[expr]), संख्यात्मक तर्क के रूप में परीक्षण आदेश, और जैसा
एक पूर्णांक पैरामीटर के लिए असाइनमेंट का मान। चेतावनी: इसका प्रभाव अन्तर्निहित पर भी पड़ता है
पूर्णांक में रूपांतरण, उदाहरण के लिए जैसा कि किया गया चलो आदेश। कभी नहीं अनियंत्रित उपयोगकर्ता का उपयोग करें
इनपुट, उदाहरण के लिए पर्यावरण से, अंकगणित में!

भावों की गणना हस्ताक्षरित अंकगणित और का उपयोग करके की जाती है mksh_ari_t टाइप करें (एक 32-बिट हस्ताक्षरित
पूर्णांक), जब तक कि वे एकमात्र '#' वर्ण से प्रारंभ न हों, ऐसी स्थिति में वे इसका उपयोग करते हैं mksh_uari_t (a
32-बिट अहस्ताक्षरित पूर्णांक)।

अभिव्यक्तियों में अल्फ़ा-न्यूमेरिक पैरामीटर पहचानकर्ता, सरणी संदर्भ और पूर्णांक शामिल हो सकते हैं
स्थिरांक और निम्नलिखित सी ऑपरेटरों के साथ जोड़ा जा सकता है (सूचीबद्ध और समूहीकृत)।
प्राथमिकता का बढ़ता क्रम):

यूनरी ऑपरेटर:

+ - ! ~++ --

बाइनरी ऑपरेटर:

,
= += -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
||
&&
|
^
&
==! =
<<=>> =
<<< >>> << >>
+ -
* *%

टर्नरी ऑपरेटर:

?: (प्राथमिकता असाइनमेंट से तुरंत अधिक है)

ग्रुपिंग ऑपरेटर:

()

पूर्णांक स्थिरांक और अभिव्यक्तियों की गणना बिल्कुल 32-बिट चौड़े, हस्ताक्षरित या का उपयोग करके की जाती है
अहस्ताक्षरित, पूर्णांक ओवरफ़्लो पर साइलेंट रैपअराउंड के साथ टाइप करें। पूर्णांक स्थिरांक हो सकते हैं
अंकन का उपयोग करके मनमाने आधारों के साथ निर्दिष्ट किया गया आधार#संख्या, जहां आधार एक दशमलव है
आधार को निर्दिष्ट करने वाला पूर्णांक, और संख्या निर्दिष्ट आधार में एक संख्या है. इसके अतिरिक्त,
बेस-16 पूर्णांकों को सभी में '0x' (केस-असंवेदनशील) के साथ उपसर्ग करके निर्दिष्ट किया जा सकता है
अंकगणितीय अभिव्यक्तियों के रूप, संख्यात्मक तर्कों को छोड़कर परीक्षण अंतर्निहित आदेश.
एकल अंक शून्य ('0') के साथ संख्याओं को उपसर्ग करने से अष्टक के रूप में व्याख्या नहीं होती है
ऐसा करना असुरक्षित है.

एक विशेष के रूप में mksh विस्तार, एक के आधार तक की संख्याओं को या तो (8-बिट) माना जाता है
पारदर्शी) एएससीआईआई या यूनिकोड कोडपॉइंट, शेल के आधार पर utf8-मोड झंडा (वर्तमान)
सेटिंग)। एटी एंड टी यूनिक्स ksh93 "1#x" के बजाय "'x'" का सिंटैक्स भी समर्थित है। टिप्पणी
कि NUL बाइट्स (शून्य का अभिन्न मान) का उपयोग नहीं किया जा सकता है। एक असेट या खाली पैरामीटर
पूर्णांक संदर्भ में 0 का मूल्यांकन करता है। यूनिकोड मोड में, कच्चे ऑक्टेट को रेंज में मैप किया जाता है
EF80..EFFF जैसा कि OPTU-8 में है, जो PUA में है और इस उपयोग के लिए CSUR द्वारा सौंपा गया है। अगर
ASCII मोड में एक से अधिक ऑक्टेट, या एक से अधिक ऑक्टेट का अनुक्रम वैध नहीं बनता
और न्यूनतम CESU-8 अनुक्रम पारित हो जाता है, व्यवहार अपरिभाषित होता है (आमतौर पर, शेल बंद हो जाता है
एक पार्स त्रुटि के साथ, लेकिन शायद ही कभी, यह सफल होता है, उदाहरण के लिए अनुक्रम C2 20 पर)। इसीलिए आप
आपको हमेशा ASCII मोड का उपयोग करना चाहिए जब तक कि आपको पता न हो कि इनपुट अच्छी तरह से बना हुआ UTF-8 है
यदि आप इस सुविधा का उपयोग करते हैं, तो इसके विपरीत, 0000..FFFD की रेंज पढ़ना -a.

ऑपरेटरों का मूल्यांकन इस प्रकार किया जाता है:

यूनरी +
परिणाम तर्क है (पूर्णता के लिए शामिल)।

यूनरी -
निषेध।

! तार्किक नहीं; यदि तर्क शून्य है तो परिणाम 1 है, यदि नहीं है तो 0 है।

~ अंकगणित (बिट-वार) नहीं।

++ वेतन वृद्धि; एक पैरामीटर पर लागू किया जाना चाहिए (शाब्दिक या अन्य अभिव्यक्ति नहीं)।
पैरामीटर 1 से बढ़ जाता है। जब उपसर्ग ऑपरेटर के रूप में उपयोग किया जाता है, तो परिणाम
पैरामीटर का बढ़ा हुआ मान है; जब पोस्टफ़िक्स ऑपरेटर के रूप में उपयोग किया जाता है,
परिणाम पैरामीटर का मूल मान है।

-- के समान ++, सिवाय इसके कि पैरामीटर 1 से कम हो गया है।

, दो अंकगणितीय अभिव्यक्तियों को अलग करता है; सबसे पहले बायीं ओर का मूल्यांकन किया जाता है,
फिर सही. परिणाम दाहिने हाथ पर अभिव्यक्ति का मूल्य है
पक्ष।

= असाइनमेंट; बाईं ओर का वेरिएबल दाईं ओर के मान पर सेट है।

+= -= *= /= %= <<<= >>>= <<= >>= &= ^= |=
असाइनमेंट ऑपरेटर.था><op>=expr> जैसा ही हैथा>=था><op><expr>,
किसी भी ऑपरेटर प्राथमिकता के साथexpr> संरक्षित. उदाहरण के लिए, “var1 *= 5+
3" "var1 = var1 * (5 + 3)" निर्दिष्ट करने के समान है।

|| तार्किक या; यदि दोनों में से कोई भी तर्क गैर-शून्य है तो परिणाम 1 है, यदि नहीं है तो 0 है।
दाएँ तर्क का मूल्यांकन तभी किया जाता है जब बायाँ तर्क शून्य हो।

&& तार्किक तथा; यदि दोनों तर्क गैर-शून्य हैं तो परिणाम 1 है, यदि नहीं है तो 0 है।
दाएँ तर्क का मूल्यांकन केवल तभी किया जाता है जब बायाँ तर्क गैर-शून्य हो।

| अंकगणित (बिट-वार) या।

^ अंकगणित (बिट-वार) XOR (अनन्य-OR)।

और अंकगणित (बिट-वार) और।

== बराबर; यदि दोनों तर्क समान हैं तो परिणाम 1 है, यदि नहीं तो 0।

!=बराबर नहीं; यदि दोनों तर्क समान हैं तो परिणाम 0 है, यदि नहीं तो 1।

<से कम; यदि बायाँ तर्क दाएँ से कम है तो परिणाम 1 है, यदि 0 है
नहीं।

<= > >=
इससे कम या बराबर, इससे अधिक, इससे अधिक या बराबर। देखना <.

<<< >>>
बाएँ घुमाएँ (दाएँ); परिणाम शिफ्ट के समान है (देखें)। <<) सिवाय इसके कि
एक छोर से बाहर स्थानांतरित किए गए बिट्स शून्य के बजाय दूसरे छोर पर स्थानांतरित हो जाते हैं
या साइन बिट्स.

<< >> बाएं (दाएं) शिफ्ट करें; इसका परिणाम वाम तर्क है जिसके अंश बाईं ओर स्थानांतरित हो गए हैं
(दाएं) सही तर्क में दी गई राशि से।

+ - * /
जोड़, घटाव, गुणा और भाग।

% शेष; परिणाम बाईं ओर के विभाजन का सममित शेष है
अधिकार से तर्क. "ए" का गणितीय मापांक प्राप्त करने के लिए आधुनिक बी", का उपयोग करें
सूत्र "(a % b + b) % b"।

<आर्ग1>?आर्ग2>:आर्ग3>
अगरआर्ग1> गैर-शून्य है, परिणाम हैआर्ग2>; अन्यथा परिणाम हैआर्ग3>.
गैर-परिणाम तर्क का मूल्यांकन नहीं किया जाता है।

सह-प्रक्रियाएँ
एक सह-प्रक्रिया (जो '|&' ऑपरेटर के साथ बनाई गई एक पाइपलाइन है) एक अतुल्यकालिक प्रक्रिया है
कि शेल (का उपयोग करके) दोनों लिख सकता है छाप -p) और (उपयोग करके) से पढ़ें पढ़ना -p). इनपुट
और सह-प्रक्रिया के आउटपुट का उपयोग करके हेरफेर भी किया जा सकता है >&पी और <&प पुनर्निर्देशन,
क्रमश। एक बार एक सह-प्रक्रिया शुरू हो जाने के बाद, दूसरी तब तक शुरू नहीं की जा सकती जब तक कि सह-प्रक्रिया शुरू न हो जाए।
प्रक्रिया बाहर निकलती है, या जब तक सह-प्रक्रिया के इनपुट को एक का उपयोग करके पुनर्निर्देशित नहीं किया जाता है कार्यकारी n>&पी
पुनर्निर्देशन यदि किसी सह-प्रक्रिया के इनपुट को इस तरह से पुनर्निर्देशित किया जाता है, तो अगली सह-प्रक्रिया होगी
स्टार्टेड आउटपुट को पहली सह-प्रक्रिया के साथ साझा करेगा, जब तक कि प्रारंभिक का आउटपुट न हो
सह-प्रक्रिया को एक का उपयोग करके पुनर्निर्देशित किया गया है कार्यकारी n<&प पुनर्निर्देशन।

सह-प्रक्रियाओं से संबंधित कुछ नोट्स:

· सह-प्रक्रिया के इनपुट को बंद करने का एकमात्र तरीका है (ताकि सह-प्रक्रिया फ़ाइल के अंत को पढ़े)
इनपुट को क्रमांकित फ़ाइल डिस्क्रिप्टर पर रीडायरेक्ट करने के लिए और फिर उस फ़ाइल डिस्क्रिप्टर को बंद करने के लिए:
कार्यकारी 3>&पी; कार्यकारी 3>&-

· सह-प्रक्रियाओं के लिए एक सामान्य आउटपुट साझा करने के लिए, शेल को लेखन रखना होगा
आउटपुट पाइप का भाग खुला। इसका मतलब यह है कि फ़ाइल के अंत का तब तक पता नहीं लगाया जाएगा
सह-प्रक्रिया के आउटपुट को साझा करने वाली सभी सह-प्रक्रियाएँ बाहर निकल गई हैं (जब वे सभी बाहर निकल जाती हैं, तो
शेल पाइप की अपनी प्रति बंद कर देता है)। आउटपुट को रीडायरेक्ट करके इससे बचा जा सकता है
क्रमांकित फ़ाइल डिस्क्रिप्टर (क्योंकि इससे शेल अपनी प्रतिलिपि बंद कर देता है)। ध्यान दें कि
यह व्यवहार मूल कॉर्न शेल से थोड़ा अलग है जो इसकी प्रतिलिपि को बंद कर देता है
सह-प्रक्रिया आउटपुट के लेखन भाग का, जब सबसे हाल ही में सह-प्रक्रिया शुरू हुई हो
(बजाय जब सभी साझा सह-प्रक्रियाएँ) बाहर निकलती हैं।

· छाप -p यदि सिग्नल फंस नहीं रहा है तो लिखने के दौरान SIGPIPE सिग्नलों को अनदेखा कर देगा
अवहेलना करना; यदि सह-प्रक्रिया इनपुट को किसी अन्य फ़ाइल में डुप्लिकेट किया गया है तो भी यही सच है
वर्णनकर्ता और छाप -un प्रयोग किया जाता है।

कार्य
फ़ंक्शंस को कॉर्न शेल का उपयोग करके परिभाषित किया गया है समारोह समारोह-नाम वाक्यविन्यास या
बॉर्न/POSIX शेल समारोह-नाम() वाक्यविन्यास (दोनों के बीच अंतर के लिए नीचे देखें
प्रपत्र)। फ़ंक्शंस .-स्क्रिप्ट्स की तरह हैं (अर्थात अंतर्निहित '.' का उपयोग करके प्राप्त स्क्रिप्ट)
उन्हें वर्तमान परिवेश में क्रियान्वित किया जाता है। हालाँकि, .-स्क्रिप्ट के विपरीत, शेल तर्क
(अर्थात स्थितीय पैरामीटर $1, $2, आदि) उनके अंदर कभी दिखाई नहीं देते हैं। जब खोल है
किसी कमांड का स्थान निर्धारित करके, विशेष बिल्ट-इन के बाद फ़ंक्शंस की खोज की जाती है
कमांड, बिल्टिन से पहले और PATH खोजा जाता है।

किसी मौजूदा फ़ंक्शन का उपयोग करके हटाया जा सकता है सेट नहीं -f समारोह-नाम. कार्यों की एक सूची कर सकते हैं
का उपयोग करके प्राप्त किया जा सकता है टाइपसेट +f और फ़ंक्शन परिभाषाओं का उपयोग करके सूचीबद्ध किया जा सकता है टाइपसेट -f.
RSI autoload कमांड (जो कि एक उपनाम है टाइपसेट -फू) का उपयोग अपरिभाषित बनाने के लिए किया जा सकता है
फ़ंक्शन: जब कोई अपरिभाषित फ़ंक्शन निष्पादित होता है, तो शेल निर्दिष्ट पथ को खोजता है
फ़ंक्शन के समान नाम वाली फ़ाइल के लिए FPATH पैरामीटर, जो पाए जाने पर पढ़ा जाता है
और निष्पादित किया गया. यदि फ़ाइल को निष्पादित करने के बाद नामित फ़ंक्शन परिभाषित पाया जाता है, तो
फ़ंक्शन निष्पादित किया गया है; अन्यथा, सामान्य कमांड खोज जारी रहती है (यानी शेल
नियमित अंतर्निर्मित कमांड तालिका और पथ खोजता है)। ध्यान दें कि यदि कोई कमांड नहीं मिलता है
PATH का उपयोग करके, FPATH का उपयोग करके किसी फ़ंक्शन को ऑटोलोड करने का प्रयास किया जाता है (यह एक अनिर्दिष्ट है
मूल कॉर्न शेल की विशेषता)।

फ़ंक्शंस में दो विशेषताएँ हो सकती हैं, "ट्रेस" और "एक्सपोर्ट", जिन्हें इसके साथ सेट किया जा सकता है टाइपसेट -फट
और टाइपसेट -एफएक्स, क्रमश। जब एक ट्रेस किया गया फ़ंक्शन निष्पादित किया जाता है, तो शेल का एक्सट्रेस
फ़ंक्शन की अवधि के लिए विकल्प चालू है। फ़ंक्शंस की "निर्यात" विशेषता है
वर्तमान में उपयोग नहीं किया गया. मूल कॉर्न शेल में, निर्यात किए गए फ़ंक्शन शेल को दिखाई देते हैं
स्क्रिप्ट जो निष्पादित की जाती हैं।

चूंकि फ़ंक्शंस वर्तमान शेल वातावरण में निष्पादित होते हैं, इसलिए पैरामीटर असाइनमेंट बनाए जाते हैं
फ़ंक्शन पूरा होने के बाद अंदर के फ़ंक्शन दिखाई देते हैं। यदि यह वांछित नहीं है
प्रभाव, टाइपसेट स्थानीय पैरामीटर बनाने के लिए किसी फ़ंक्शन के अंदर कमांड का उपयोग किया जा सकता है। टिप्पणी
वह एटी एंड टी यूनिक्स ksh93 स्थिर स्कोपिंग का उपयोग करता है (एक वैश्विक स्कोप, प्रति फ़ंक्शन एक स्थानीय स्कोप)
और केवल कोर्न शैली फ़ंक्शंस पर स्थानीय चर की अनुमति देता है, जबकि mksh गतिशील स्कोपिंग का उपयोग करता है
(अलग-अलग इलाके के नेस्टेड स्कोप)। ध्यान दें कि विशेष पैरामीटर (उदा $$, $!) नहीं हो सकता
इस तरह से दायरा.

किसी फ़ंक्शन की निकास स्थिति फ़ंक्शन में निष्पादित अंतिम कमांड की होती है। ए
का उपयोग करके फ़ंक्शन को तुरंत समाप्त किया जा सकता है वापसी आज्ञा; इसका भी उपयोग किया जा सकता है
निकास स्थिति को स्पष्ट रूप से निर्दिष्ट करने के लिए।

के साथ परिभाषित कार्य समारोह निम्नलिखित में आरक्षित शब्द का अलग-अलग व्यवहार किया गया है
के साथ परिभाषित कार्यों के तरीके () अंकन:

· $0 पैरामीटर फ़ंक्शन के नाम पर सेट किया गया है (बॉर्न-शैली फ़ंक्शन $0 छोड़ते हैं
अछूता)।

· फ़ंक्शन कॉल से पहले के पैरामीटर असाइनमेंट को शेल वातावरण में नहीं रखा जाता है
(बॉर्न-शैली के कार्यों को निष्पादित करने से असाइनमेंट बने रहेंगे)।

· OPTIND को फ़ंक्शन में प्रवेश और निकास पर सहेजा/रीसेट और पुनर्स्थापित किया जाता है गेटअप हो सकता है
फ़ंक्शन के अंदर और बाहर दोनों जगह ठीक से उपयोग किया जाता है (बॉर्न-शैली फ़ंक्शन OPTIND छोड़ देते हैं
अछूता, इसलिए उपयोग कर रहा हूँ गेटअप किसी फ़ंक्शन के अंदर उपयोग करने में हस्तक्षेप करता है गेटअप के बाहर
समारोह)।

· शैल विकल्प (सेट -o) में स्थानीय दायरा होता है, यानी किसी फ़ंक्शन के अंदर परिवर्तन रीसेट हो जाते हैं
इसका निकास.

भविष्य में, निम्नलिखित अंतर भी जोड़े जा सकते हैं:

· कार्यों के निष्पादन के दौरान एक अलग ट्रैप/सिग्नल वातावरण का उपयोग किया जाएगा। यह
इसका मतलब यह होगा कि किसी फ़ंक्शन के अंदर सेट किए गए ट्रैप शेल के ट्रैप और सिग्नल को प्रभावित नहीं करेंगे
जिन्हें शेल में अनदेखा नहीं किया गया है (लेकिन फंस सकते हैं) उनका डिफ़ॉल्ट प्रभाव होगा
एक समारोह।

· EXIT ट्रैप, यदि किसी फ़ंक्शन में सेट किया गया है, तो फ़ंक्शन के वापस आने के बाद निष्पादित किया जाएगा।

आदेश निष्पादन
कमांड-लाइन तर्कों, पुनर्निर्देशन और पैरामीटर असाइनमेंट के मूल्यांकन के बाद
कमांड का प्रकार निर्धारित किया जाता है: एक विशेष अंतर्निहित कमांड, एक फ़ंक्शन, एक सामान्य बिल्टिन, या
निष्पादित करने के लिए फ़ाइल का नाम PATH पैरामीटर का उपयोग करके पाया गया। में चेक बनाये जाते हैं
उपरोक्त आदेश. विशेष अंतर्निर्मित कमांड PATH में अन्य कमांड से भिन्न होते हैं
उन्हें खोजने के लिए पैरामीटर का उपयोग नहीं किया जाता है, उनके निष्पादन के दौरान कोई त्रुटि गैर- का कारण बन सकती है
बाहर निकलने के लिए इंटरैक्टिव शेल, और पैरामीटर असाइनमेंट जो कमांड से पहले निर्दिष्ट होते हैं
कमांड पूरा होने के बाद रखा जाता है। नियमित अंतर्निहित कमांड केवल उसमें भिन्न होते हैं
उन्हें खोजने के लिए PATH पैरामीटर का उपयोग नहीं किया जाता है।

मूल क्ष और POSIX कुछ हद तक भिन्न हैं जिनमें कमांड को विशेष या माना जाता है
नियमित रूप से।

POSIX विशेष अंतर्निर्मित उपयोगिताएँ:

., :, तोड़ना, जारी रखने के, विकसित करना, कार्यकारी, निकास, निर्यात, सिफ़ पढ़िये, वापसी, सेट, पाली, बार, जाल,
सेट नहीं

अतिरिक्त mksh असाइनमेंट रखने के आदेश:

builtin, वैश्विक, स्रोत, टाइपसेट, प्रतीक्षा

बिल्टिन जो विशेष नहीं हैं:

[, उर्फ, bg, बाँध, बिल्ली, cd, आदेश, गूंज, असत्य, fc, fg, गेटअप, नौकरियों, हत्या, चलो, छाप,
लोक निर्माण विभाग, पढ़ना, वास्तविक पथ, नाम बदलने, नींद, निलंबित, परीक्षण, <strong>उद्देश्य</strong>, अलिमित, umask, अनलिया, जहां से

एक बार कमांड का प्रकार निर्धारित हो जाने के बाद, कोई भी कमांड-लाइन पैरामीटर असाइनमेंट होता है
कमांड की अवधि के लिए निष्पादित और निर्यात किया गया।

निम्नलिखित विशेष और नियमित बिल्ट-इन कमांड और बिल्ट-इन-जैसे आरक्षित का वर्णन करता है
शब्द:

. पट्टिका [arg ...]
इसे "डॉट" कमांड कहा जाता है। में आदेश निष्पादित करें पट्टिका धारा में
पर्यावरण। फ़ाइल को PATH की निर्देशिकाओं में खोजा जाता है। यदि तर्क हैं
दिया गया है, जबकि उन तक पहुंचने के लिए स्थितीय मापदंडों का उपयोग किया जा सकता है पट्टिका हो रहा है
निष्पादित। यदि कोई तर्क नहीं दिया गया है, तो स्थितीय पैरामीटर वे हैं
जिस वातावरण में कमांड का उपयोग किया जाता है।

: [...]
शून्य आदेश. निकास स्थिति शून्य पर सेट है.

[ अभिव्यक्ति ]
देख परीक्षण.

उर्फ [-d | -t [-r] | + -x] [-p] [+] [नाम [=मूल्य] ...]
बिना तर्क के, उर्फ सभी उपनामों को सूचीबद्ध करता है। बिना मूल्य वाले किसी भी नाम के लिए,
मौजूदा उपनाम सूचीबद्ध है. मान वाला कोई भी नाम उपनाम को परिभाषित करता है (देखें)। फर्जी नाम
ऊपर)।

उपनामों को सूचीबद्ध करते समय, दो प्रारूपों में से एक का उपयोग किया जाता है। आम तौर पर, उपनामों को इस प्रकार सूचीबद्ध किया जाता है
नाम=मूल्य, जहां मूल्य उद्धृत किया गया है. यदि विकल्पों के पहले '+', या एक अकेला '+' लिखा हो
केवल कमांड लाइन पर दिया गया है नाम छपा है।

RSI -d विकल्प निर्देशिका उपनामों को सूचीबद्ध करने का कारण बनता है जिनका उपयोग टिल्ड विस्तार में किया जाता है
या सेट करें (देखें) टिल्ड विस्तार ऊपर)।

अगर -p विकल्प का उपयोग किया जाता है, प्रत्येक उपनाम को "उपनाम" स्ट्रिंग के साथ उपसर्ग किया जाता है।

RSI -t विकल्प इंगित करता है कि ट्रैक किए गए उपनामों को सूचीबद्ध/सेट किया जाना है (मान निर्दिष्ट हैं)।
ट्रैक किए गए उपनामों के लिए कमांड लाइन पर ध्यान नहीं दिया जाता है)। -r विकल्प यह दर्शाता है
सभी ट्रैक किए गए उपनामों को रीसेट किया जाना है।

RSI -x विकल्प सेट (+x साफ़ करता है) उपनाम की निर्यात विशेषता, या, यदि कोई नाम नहीं है
दिया गया है, निर्यात विशेषता के साथ उपनामों को सूचीबद्ध करता है (किसी उपनाम को निर्यात करने में कोई नहीं है)।
प्रभाव)।

bg [काम ...]
पृष्ठभूमि में निर्दिष्ट रुके हुए कार्य को फिर से शुरू करें। यदि कोई कार्य निर्दिष्ट नहीं है, %+
ऐसा माना जाता है। देखना काम नियंत्रण अधिक जानकारी के लिए नीचे।

बाँध [-l]
वर्तमान बाइंडिंग सूचीबद्ध हैं. यदि -l झंडा दिया है, बाँध इसके बजाय सूचीबद्ध करता है
उन फ़ंक्शंस के नाम जिनसे कुंजियाँ बंधी हो सकती हैं। देखना Emacs संपादन मोड और अधिक के लिए
जानकारी.

बाँध [-m] स्ट्रिंग=[विकल्प] ...
बाँध स्ट्रिंग=[संपादन-आदेश] ...
निर्दिष्ट संपादन आदेश दिए गए से बंधा हुआ है स्ट्रिंग, जिसमें एक शामिल होना चाहिए
नियंत्रण वर्ण वैकल्पिक रूप से दो उपसर्ग वर्णों में से एक से पहले आता है
वैकल्पिक रूप से एक टिल्ड वर्ण द्वारा सफल हुआ। का भविष्य इनपुट स्ट्रिंग कारण होगा
संपादन आदेश तुरंत लागू किया जाएगा। यदि -m ध्वज दिया गया है, निर्दिष्ट
निवेश स्ट्रिंग बाद में तुरंत दिए गए द्वारा प्रतिस्थापित कर दिया जाएगा विकल्प स्ट्रिंग
जिसमें संपादन आदेश तो हो सकते हैं लेकिन अन्य मैक्रोज़ नहीं। यदि एक टिल्ड पोस्टफिक्स है
दिया गया है, एक या दो उपसर्गों के पीछे एक टिल्ड और नियंत्रण चरित्र को नजरअंदाज कर दिया गया है,
किसी अन्य अनुवर्ती चरित्र पर बाद में कार्रवाई की जाएगी।

नियंत्रण वर्ण कैरेट नोटेशन का उपयोग करके लिखे जा सकते हैं अर्थात ^X Ctrl-X का प्रतिनिधित्व करता है।
ध्यान दें कि यद्यपि केवल दो उपसर्ग वर्ण (आमतौर पर ESC और ^X) समर्थित हैं,
कुछ बहु-चरित्र अनुक्रमों का समर्थन किया जा सकता है।

निम्नलिखित डिफ़ॉल्ट बाइंडिंग दिखाती है कि तीर कुंजियाँ, होम, अंत और डिलीट कुंजी कैसे हैं
BSD wsvt25 पर, xterm-xfree86 या GNU स्क्रीन टर्मिनल बाध्य हैं (निश्चित रूप से कुछ
भागने के क्रम इतनी अच्छी तरह से काम नहीं करेंगे):

बाइंड '^X'=उपसर्ग-2
बाइंड '^[['=उपसर्ग-2
बाइंड '^XA'=अप-इतिहास
बाइंड '^XB'=डाउन-इतिहास
बाइंड '^XC'=फॉरवर्ड-चार
बाइंड '^XD'=बैकवर्ड-चार
बाइंड '^X1~'=आरंभ-की-पंक्ति
बाइंड '^X7~'=आरंभ-की-पंक्ति
बाइंड '^XH'=शुरुआत-की-पंक्ति
बाइंड '^X4~'=एंड-ऑफ़-लाइन
बाइंड '^X8~'=एंड-ऑफ़-लाइन
बाइंड '^XF'=पंक्ति का अंत
बाइंड '^X3~'=डिलीट-चार-फॉरवर्ड

तोड़ना [स्तर]
बाहर निकलें स्तरवें अंतरतम एसटी , चयन, जब तकया, जब पाश। स्तर 1 के लिए डिफ़ॉल्ट।

builtin [--] आदेश [arg ...]
अंतर्निहित आदेश निष्पादित करें आदेश.

बिल्ली [-u] [पट्टिका ...]
फ़ाइलों को कमांड लाइन क्रम में क्रमिक रूप से पढ़ें, और उन्हें मानक आउटपुट पर लिखें।
एक तो पट्टिका एक एकल डैश ('-') या अनुपस्थित है, मानक इनपुट से पढ़ें। प्रत्यक्ष के लिए
अंतर्निहित कॉल, POSIX -u विकल्प नो-ऑप के रूप में समर्थित है। शेल से कॉल के लिए, यदि
कोई भी विकल्प दिया गया है, एक बाहरी बिल्ली(1) बिल्टइन की तुलना में उपयोगिता को प्राथमिकता दी जाती है।

cd [-L] [दीर]
cd -P [-e] [दीर]
chdir [-ईएलपी] [दीर]
कार्यशील निर्देशिका को इस पर सेट करें दीर. यदि पैरामीटर CDPATH सेट है, तो यह सूचीबद्ध करता है
युक्त निर्देशिका के लिए खोज पथ दीर. NULL पथ का अर्थ है धारा
निर्देशिका। अगर दीर के अलावा CDPATH खोज पथ के किसी भी घटक में पाया जाता है
NULL पथ, नई कार्यशील निर्देशिका का नाम मानक आउटपुट पर लिखा जाएगा।
If दीर गायब है, होम निर्देशिका HOME का उपयोग किया जाता है। अगर दीर '-', पिछला है
कार्यशील निर्देशिका का उपयोग किया जाता है (OLDPWD पैरामीटर देखें)।

अगर -L विकल्प (तार्किक पथ) का उपयोग किया जाता है या यदि भौतिक विकल्प सेट नहीं है (देखें)
सेट नीचे आदेश), '..' का संदर्भ दीर पहुँचने के लिए प्रयुक्त पथ के सापेक्ष हैं
निर्देशिका। यदि -P विकल्प (भौतिक पथ) का उपयोग किया जाता है या यदि भौतिक विकल्प है
सेट, '..' फ़ाइल सिस्टम निर्देशिका ट्री से संबंधित है। PWD और OLDPWD
वर्तमान और पुरानी कार्यशील निर्देशिका को प्रतिबिंबित करने के लिए पैरामीटर अपडेट किए जाते हैं,
क्रमश। यदि -e विकल्प भौतिक फ़ाइल सिस्टम ट्रैवर्सल और PWD के लिए सेट है
सेट नहीं किया जा सका, निकास कोड 1 है; यदि कोई त्रुटि हुई तो 1 से अधिक, 0
अन्यथा।

cd [-ईएलपी] पुराना नई
chdir [-ईएलपी] पुराना नई
डोर नई के लिए प्रतिस्थापित किया जाता है पुराना वर्तमान निर्देशिका में, और शेल
नई निर्देशिका में बदलने का प्रयास करता है।

आदेश [-पीवीवी] सीएमडी [arg ...]
यदि न तो -v-V विकल्प दिया है, सीएमडी बिल्कुल वैसे ही क्रियान्वित किया जाता है जैसे कि आदेश था
निर्दिष्ट नहीं किया गया है, दो अपवादों के साथ: सबसे पहले, सीएमडी शेल फ़ंक्शन नहीं हो सकता; और
दूसरे, विशेष अंतर्निर्मित कमांड अपनी विशिष्टता खो देते हैं (अर्थात पुनर्निर्देशन और
उपयोगिता त्रुटियों के कारण शेल बाहर नहीं निकलता है, और कमांड असाइनमेंट नहीं निकलते हैं
स्थायी)।

अगर -p विकल्प दिया गया है, वर्तमान मान के बजाय एक डिफ़ॉल्ट खोज पथ का उपयोग किया जाता है
PATH का, जिसका वास्तविक मूल्य सिस्टम पर निर्भर है।

अगर -v निष्पादन के स्थान पर विकल्प दिया गया है सीएमडी, क्या होगा इसकी जानकारी
निष्पादित दिया गया है (और इसके लिए भी ऐसा ही किया जाता है)। arg ...). बिल्टिन, फ़ंक्शंस और के लिए
कीवर्ड, उनके नाम बस मुद्रित होते हैं; उपनामों के लिए, एक कमांड जो उन्हें परिभाषित करती है
मुद्रित; PATH पैरामीटर खोजकर प्राप्त उपयोगिताओं के लिए, का पूरा पथ
आदेश मुद्रित है. यदि कोई आदेश नहीं मिलता है (अर्थात पथ खोज विफल हो जाती है), तो कुछ भी नहीं है
मुद्रित और आदेश गैर-शून्य स्थिति के साथ बाहर निकलता है। -V विकल्प इस प्रकार है -v
विकल्प, सिवाय इसके कि यह अधिक क्रियात्मक है।

जारी रखने के [स्तर]
की शुरुआत में कूदता है स्तरवें अंतरतम एसटी , चयन, जब तकया, जब पाश।
स्तर 1 के लिए डिफ़ॉल्ट।

गूंज [-ईनो] [arg ...]
चेतावनी: यह उपयोगिता पोर्टेबल नहीं है; कॉर्न शेल बिल्टिन का उपयोग करें छाप बजाय.

मानक के अनुरूप अपने तर्कों (रिक्त स्थान से अलग) को एक नई पंक्ति के साथ प्रिंट करता है
आउटपुट. यदि किसी भी तर्क में बैकस्लैश शामिल है तो नई पंक्ति दबा दी जाती है
अनुक्रम '\c'. देखें छाप अन्य बैकस्लैश अनुक्रमों की सूची के लिए नीचे आदेश दें
जो मान्यता प्राप्त हैं.

बीएसडी शेल स्क्रिप्ट के साथ संगतता के लिए विकल्प प्रदान किए गए हैं। -n विकल्प
पिछली नई लाइन को दबा देता है, -e बैकस्लैश व्याख्या को सक्षम बनाता है (एक नो-ऑप, चूंकि
यह सामान्य रूप से किया जाता है), और -E बैकस्लैश व्याख्या को दबा देता है।

अगर POSIX or sh विकल्प सेट है या यह एक डायरेक्ट बिल्टइन कॉल है, केवल पहला
तर्क को एक विकल्प के रूप में माना जाता है, और केवल तभी जब वह वास्तव में "-n”। बैकस्लैश
व्याख्या अक्षम है.

विकसित करना आदेश ...
एकल स्ट्रिंग बनाने के लिए तर्कों को (उनके बीच रिक्त स्थान के साथ) संयोजित किया जाता है
जिसे शेल वर्तमान परिवेश में पार्स और निष्पादित करता है।

कार्यकारी [-a argv0] [-c] [आदेश [arg ...]]
शेल प्रक्रिया को प्रतिस्थापित करते हुए, कमांड को फोर्किंग के बिना निष्पादित किया जाता है। यह है
वर्तमान में निरपेक्ष, अर्थात् कार्यकारी कभी वापस नहीं आता, भले ही आदेश नहीं मिला है।
-a विकल्प एक अलग argv[0] मान सेट करने की अनुमति देता है, और -c वातावरण को साफ़ करता है
चाइल्ड प्रक्रिया को निष्पादित करने से पहले, _ वेरिएबल और डायरेक्ट असाइनमेंट को छोड़कर।

यदि I/O पुनर्निर्देशन के अलावा कोई आदेश नहीं दिया गया है, तो I/O पुनर्निर्देशन स्थायी है
और शेल को बदला नहीं गया है. 2 से अधिक कोई फ़ाइल डिस्क्रिप्टर जो खोले गए हैं
or dup(2) इस तरह से अन्य निष्पादित कमांडों के लिए उपलब्ध नहीं कराया जाता है (अर्थात
वे आदेश जो शेल में अंतर्निहित नहीं हैं)। ध्यान दें कि बॉर्न शेल भिन्न है
यहाँ; यह इन फ़ाइल डिस्क्रिप्टरों को पास करता है।

निकास [हैसियत]
शेल निर्दिष्ट निकास स्थिति के साथ बाहर निकलता है। अगर हैसियत निर्दिष्ट नहीं है, निकास
स्थिति का वर्तमान मूल्य है $? पैरामीटर।

निर्यात [-p] [प्राचल[=मूल्य]]
नामित पैरामीटर की निर्यात विशेषता सेट करता है। निर्यातित पैरामीटर पास कर दिए गए हैं
निष्पादित आदेशों के लिए पर्यावरण। यदि मान निर्दिष्ट हैं, तो नामित पैरामीटर
भी नियुक्त किये गये हैं।

यदि कोई पैरामीटर निर्दिष्ट नहीं है, तो निर्यात विशेषता सेट वाले सभी पैरामीटर निर्दिष्ट हैं
प्रति पंक्ति एक मुद्रित; या तो उनके नाम, या, यदि कोई विकल्प अक्षर वाला '-' है
निर्दिष्ट, नाम=मूल्य जोड़े, या, के साथ -p, निर्यात पुनः प्रवेश के लिए उपयुक्त आदेश।

असत्य एक आदेश जो गैर-शून्य स्थिति के साथ बाहर निकलता है।

fc [-e संपादक | -l [-n]] [-r] [प्रथम [पिछली बार]]
प्रथम और पिछली बार इतिहास से कमांड चुनें. कमांड को इतिहास के अनुसार चुना जा सकता है
संख्या (नकारात्मक संख्याएं वर्तमान, सबसे हालिया, रेखा से पीछे की ओर जाती हैं) या ए
स्ट्रिंग उस स्ट्रिंग से प्रारंभ होने वाले नवीनतम कमांड को निर्दिष्ट करती है। -l विकल्प
मानक आउटपुट पर कमांड सूचीबद्ध करता है, और -n डिफ़ॉल्ट कमांड संख्याओं को रोकता है।
RSI -r विकल्प सूची के क्रम को उलट देता है। बिना -l, चयनित आदेश हैं
के साथ निर्दिष्ट संपादक द्वारा संपादित -e विकल्प, या यदि नहीं -e निर्दिष्ट है,
FCEDIT पैरामीटर द्वारा निर्दिष्ट संपादक (यदि यह पैरामीटर सेट नहीं है, /बिन/एड is
प्रयुक्त), और फिर शेल द्वारा निष्पादित किया जाता है।

fc -e - | -s [-g] [पुराना=नई] [उपसर्ग]
निष्पादित करने के बाद चयनित कमांड (डिफ़ॉल्ट रूप से पिछला कमांड) को दोबारा निष्पादित करें
का वैकल्पिक प्रतिस्थापन पुराना साथ में नई. अगर -g निर्दिष्ट है, की सभी घटनाएँ
पुराना से बदल दिया जाता है नई। इसका मतलब -e - और -s समान है: पुनः निष्पादित करें
किसी संपादक को बुलाए बिना चयनित आदेश। इस कमांड को आमतौर पर एक्सेस किया जाता है
पूर्वनिर्धारित: उर्फ आर='एफसी -e -'

fg [काम ...]
अग्रभूमि में निर्दिष्ट कार्य को फिर से शुरू करें। यदि कोई कार्य निर्दिष्ट नहीं है, %+ is
मान लिया गया. देखना काम नियंत्रण अधिक जानकारी के लिए नीचे।

गेटअप ऑप्टस्ट्रिंग नाम [arg ...]
निर्दिष्ट तर्कों (या स्थितीय मापदंडों) को पार्स करने के लिए शेल प्रक्रियाओं द्वारा उपयोग किया जाता है
यदि कोई तर्क नहीं दिया गया है) और कानूनी विकल्पों की जाँच करें। ऑप्टस्ट्रिंग शामिल है
विकल्प अक्षर वह गेटअप पहचानना है. यदि किसी अक्षर के बाद कोलन आता है, तो
विकल्प में तर्क होने की उम्मीद है। विकल्प जो तर्क नहीं लेते हो सकते हैं
एक ही तर्क में समूहीकृत। यदि कोई विकल्प एक तर्क और विकल्प लेता है
चरित्र उस तर्क का अंतिम वर्ण नहीं है जिसमें यह पाया जाता है, शेष भाग
तर्क को विकल्प का तर्क माना जाता है; अन्यथा, अगला तर्क है
विकल्प का तर्क.

हर बार गेटअप लागू किया जाता है, यह शेल पैरामीटर में अगला विकल्प रखता है नाम
और अगली कॉल द्वारा संसाधित किए जाने वाले तर्क का सूचकांक गेटअप में
शेल पैरामीटर ऑप्टिंड। यदि विकल्प को '+' के साथ पेश किया गया था, तो विकल्प रखा गया
in नाम इसके पहले '+' लगा हुआ है। जब किसी विकल्प के लिए तर्क की आवश्यकता होती है, गेटअप स्थानों
यह शेल पैरामीटर OPTARG में है।

जब कोई अवैध विकल्प या लुप्त विकल्प तर्क सामने आता है, तो एक प्रश्न चिह्न लगता है
या एक कोलन रखा गया है नाम (एक अवैध विकल्प या गुम तर्क का संकेत देते हुए,
क्रमशः) और OPTARG को उस विकल्प वर्ण पर सेट किया गया है जिसके कारण समस्या हुई।
इसके अलावा, अगर ऑप्टस्ट्रिंग कोलन से प्रारंभ नहीं होता, प्रश्न चिह्न लगा दिया जाता है
नाम, OPTARG अनसेट है, और एक त्रुटि संदेश मानक त्रुटि पर मुद्रित होता है।

जब विकल्पों का अंत सामने आता है, गेटअप गैर-शून्य निकास के साथ बाहर निकलता है
दर्जा। विकल्प पहले (गैर-विकल्प तर्क) तर्क पर समाप्त होते हैं जो प्रारंभ नहीं होता है
'-' के साथ, या जब '--' तर्क सामने आता है।

विकल्प पार्सिंग को OPTIND को 1 पर सेट करके रीसेट किया जा सकता है (यह स्वचालित रूप से किया जाता है
जब भी शेल या शेल प्रक्रिया लागू की जाती है)।

चेतावनी: शेल पैरामीटर OPTIND के मान को 1 के अलावा किसी अन्य मान में बदलना, या
OPTIND को रीसेट किए बिना तर्कों के विभिन्न सेटों को पार्स करने से अप्रत्याशित परिणाम हो सकते हैं
परिणाम है.

वैश्विक ...
देख टाइपसेट.

हैश [-r] [नाम ...]
तर्कों के बिना, किसी भी हैश किए गए निष्पादन योग्य कमांड पथनाम सूचीबद्ध हैं। -r विकल्प
सभी हैशेड कमांड को हैश तालिका से हटा दिया जाता है। प्रत्येक नाम खोजा जाता है
जैसे कि यह एक कमांड नाम था और यदि यह निष्पादन योग्य है तो हैश तालिका में जोड़ा गया है
आदेश।

नौकरियों [-एलएनपी] [काम ...]
निर्दिष्ट कार्य के बारे में जानकारी प्रदर्शित करें; यदि कोई कार्य निर्दिष्ट नहीं है, तो सभी कार्य
प्रदर्शित। -n विकल्प के कारण जानकारी केवल उन नौकरियों के लिए प्रदर्शित होती है
पिछली अधिसूचना के बाद से स्थिति बदल गई है। यदि -l विकल्प का उपयोग किया जाता है,
किसी कार्य में प्रत्येक प्रक्रिया की प्रक्रिया आईडी भी सूचीबद्ध है। -p विकल्प केवल का कारण बनता है
मुद्रित किए जाने वाले प्रत्येक कार्य का प्रक्रिया समूह। देखना काम नियंत्रण के प्रारूप के लिए नीचे काम
और प्रदर्शित कार्य.

हत्या [-s साइननेम | -Signum | -साइननेम] { काम | पीआईडी | पीजीआरपी } ...
निर्दिष्ट नौकरियों, प्रक्रिया आईडी, या प्रक्रिया समूहों को निर्दिष्ट सिग्नल भेजें। अगर
कोई सिग्नल निर्दिष्ट नहीं है, TERM सिग्नल भेजा गया है। यदि कोई कार्य निर्दिष्ट है, तो संकेत
कार्य के प्रक्रिया समूह को भेजा जाता है। देखना काम नियंत्रण के प्रारूप के लिए नीचे काम.

हत्या -l [निकास-स्थिति ...]
इसके अनुरूप सिग्नल नाम प्रिंट करें निकास-स्थिति. यदि कोई तर्क निर्दिष्ट नहीं है, a
सभी सिग्नलों की सूची, उनकी संख्या और उनका संक्षिप्त विवरण मुद्रित किया जाता है।

चलो [अभिव्यक्ति ...]
प्रत्येक अभिव्यक्ति का मूल्यांकन किया जाता है (देखें अंकगणित भाव ऊपर)। यदि सभी भाव
सफलतापूर्वक मूल्यांकन किया जाता है, यदि अंतिम अभिव्यक्ति का मूल्यांकन किया जाता है तो निकास स्थिति 0 (1) है
गैर-शून्य (शून्य) तक। यदि किसी के विश्लेषण या मूल्यांकन के दौरान कोई त्रुटि होती है
अभिव्यक्ति, निकास स्थिति 1 से अधिक है। चूँकि अभिव्यक्ति की आवश्यकता हो सकती है
उद्धृत, (( expr )) { Let ' के लिए वाक्यगत चीनी हैexpr'; }.

होने देना] के लिए आंतरिक रूप से प्रयुक्त उपनाम चलो.

मकनोद [-m मोड] नाम b|c प्रमुख नाबालिग
मकनोद [-m मोड] नाम p
एक डिवाइस विशेष फ़ाइल बनाएँ. फ़ाइल प्रकार हो सकता है b (ब्लॉक प्रकार डिवाइस), c
(चरित्र प्रकार उपकरण), या p (नामित पाइप, फीफो)। बनाई गई फ़ाइल को संशोधित किया जा सकता है
इसके अनुसार मोड (के माध्यम से -m विकल्प), प्रमुख (प्रमुख उपकरण संख्या), और नाबालिग
(मामूली डिवाइस नंबर)। यह आम तौर पर इसका हिस्सा नहीं है mksh; हालाँकि, वितरक ऐसा कर सकते हैं
इसे स्पीड हैक के रूप में बिल्टइन के रूप में जोड़ा है।

छाप [-nprsu[n] | -R [-en]] [तर्क ...]
छाप मानक आउटपुट पर अपने तर्कों को प्रिंट करता है, रिक्त स्थान से अलग किया जाता है और समाप्त किया जाता है
एक नई पंक्ति के साथ. -n विकल्प न्यूलाइन को दबा देता है। डिफ़ॉल्ट रूप से, कुछ C बच निकलते हैं
अनुवादित हैं. इनमें उल्लिखित ये शामिल हैं बैकस्लैश विस्तार ऊपर भी
'\c' के रूप में, जो इसका उपयोग करने के बराबर है -n विकल्प। बैकस्लैश विस्तार हो सकता है
के साथ बाधित -r विकल्प। -s विकल्प इसके बजाय इतिहास फ़ाइल पर प्रिंट होता है
मानक आउटपुट; -u फ़ाइल डिस्क्रिप्टर पर विकल्प प्रिंट होता है n (n यदि डिफ़ॉल्ट 1 है
छोड़ा गया); और यह -p विकल्प सह-प्रक्रिया पर प्रिंट होता है (देखें)। सह-प्रक्रियाएँ ऊपर)।

RSI -R विकल्प का उपयोग, कुछ हद तक, बीएसडी का अनुकरण करने के लिए किया जाता है गूंज(1) आदेश जो करता है
'\' अनुक्रमों को तब तक संसाधित न करें जब तक कि -e विकल्प दिया गया है. जैसा कि ऊपर बताया गया है, -n विकल्प
पिछली नई लाइन को दबा देता है।

printf प्रारूप [तर्क ...]
स्वरूपित आउटपुट. लगभग वैसा ही printf(1), उपयोगिता, सिवाय इसके कि यह उपयोग करता है
वही बैकस्लैश विस्तार और I/O कोड और फ़्लोटिंग पॉइंट को संभाल नहीं पाता है
बाकि के mksh. बिल्टइन की तुलना में बाहरी उपयोगिता को प्राथमिकता दी जाती है। यह नहीं
आम तौर पर का हिस्सा mksh; हालाँकि, वितरकों ने इसे बिल्टइन के रूप में जोड़ा होगा
गति को हैक करना। नये कोड में प्रयोग न करें.

लोक निर्माण विभाग [-एलपी]
वर्तमान कार्यशील निर्देशिका को प्रिंट करें। यदि -L विकल्प का उपयोग किया जाता है या यदि भौतिक
विकल्प सेट नहीं है (देखें) सेट नीचे दिए गए आदेश), तार्किक पथ मुद्रित होता है (अर्थात
पथ का उपयोग किया जाता है cd वर्तमान निर्देशिका के लिए)। यदि -P विकल्प (भौतिक पथ) का उपयोग किया जाता है
या यदि भौतिक विकल्प सेट किया गया है, फ़ाइल सिस्टम से पथ निर्धारित किया गया है (द्वारा)।
निम्नलिखित '..' निर्देशिकाओं को रूट निर्देशिका में) मुद्रित किया जाता है।

पढ़ना [-A | -a] [-d x] [-N z | -n z] [-p | -u[n]] [-t n] [-आरएस] [p ...]
इनपुट की एक पंक्ति को पढ़ता है, IFS पैरामीटर का उपयोग करके इनपुट को फ़ील्ड में अलग करता है (देखें)।
प्रतिस्थापन ऊपर), और प्रत्येक फ़ील्ड को निर्दिष्ट मापदंडों पर निर्दिष्ट करता है p। यदि नही
पैरामीटर निर्दिष्ट किए जाते हैं, परिणाम को संग्रहीत करने के लिए उत्तर पैरामीटर का उपयोग किया जाता है। साथ
-A और -a विकल्प, केवल कोई या एक पैरामीटर स्वीकार नहीं किया जाता है। अगर और भी हैं
फ़ील्ड की तुलना में पैरामीटर, अतिरिक्त पैरामीटर खाली स्ट्रिंग या 0 पर सेट होते हैं; अगर
पैरामीटर से अधिक फ़ील्ड हैं, अंतिम पैरामीटर को शेष सौंपा गया है
फ़ील्ड (शब्द विभाजक सहित)।

विकल्प इस प्रकार हैं:

-A परिणाम को पैरामीटर में संग्रहीत करें p (या उत्तर दें) शब्दों की श्रृंखला के रूप में।

-a पैरामीटर में शब्द विभाजन के बिना परिणाम संग्रहीत करें p (या उत्तर दें) जैसे
वर्णों की सारणी (विस्तृत वर्ण यदि utf8-मोड विकल्प अधिनियमित है,
ऑक्टेट्स अन्यथा); कोडबिंदु डिफ़ॉल्ट रूप से दशमलव संख्या के रूप में एन्कोड किए गए हैं।

-d x की पहली बाइट का प्रयोग करें x, यदि खाली है तो ASCII न्यूलाइन वर्ण के बजाय NUL
इनपुट लाइन सीमांकक के रूप में।

-N z पंक्ति के अंत तक पढ़ने के बजाय, ठीक-ठीक पढ़ें z बाइट्स यदि ईओएफ या ए
टाइमआउट होता है, आंशिक पठन निकास स्थिति 1 के साथ लौटाया जाता है।

-n z पंक्ति के अंत तक पढ़ने के बजाय, तक पढ़ें z बाइट्स लेकिन जैसे ही वापस लौटें
किसी भी बाइट्स को पढ़ा जाता है, उदाहरण के लिए धीमे टर्मिनल डिवाइस से, या यदि ईओएफ या टाइमआउट से
होता है।

-p वर्तमान में सक्रिय सह-प्रक्रिया से पढ़ें, देखें सह-प्रक्रियाएँ विवरण के लिए ऊपर
इस पर।

-u[n] फ़ाइल डिस्क्रिप्टर से पढ़ें n (डिफ़ॉल्ट 0 है, यानी मानक इनपुट)।
तर्क को तुरंत विकल्प वर्ण का अनुसरण करना चाहिए।

-t n बाद में पढ़ना बाधित करें n सेकंड (ए के साथ सकारात्मक दशमलव मान के रूप में निर्दिष्ट)।
वैकल्पिक भिन्नात्मक भाग)। की निकास स्थिति पढ़ना यदि टाइमआउट हो तो 1 है
हुआ, लेकिन आंशिक पठन अभी भी लौटाया जा सकता है।

-r आम तौर पर, ASCII बैकस्लैश वर्ण के विशेष अर्थ से बच जाता है
निम्नलिखित चरित्र और इनपुट से हटा दिया गया है; पढ़ना कब नहीं रुकता
बैकस्लैश-न्यूलाइन अनुक्रम का सामना करना पड़ रहा है और उस न्यूलाइन को संग्रहीत नहीं करता है
परिणाम। यह विकल्प रॉ मोड को सक्षम करता है, जिसमें बैकस्लैश नहीं होते हैं
संसाधित।

-s इनपुट लाइन इतिहास में सहेजी गई है।

यदि इनपुट एक टर्मिनल है, तो दोनों -N और -n विकल्प इसे रॉ मोड में सेट करते हैं; वे
यदि -1 को पास किया जाता है तो पूरी फ़ाइल पढ़ें z तर्क।

पहले पैरामीटर में एक प्रश्न चिह्न और उसके साथ एक स्ट्रिंग जुड़ी हो सकती है, जिसमें
यदि स्ट्रिंग को प्रॉम्प्ट के रूप में उपयोग किया जाता है (किसी भी इनपुट से पहले मानक त्रुटि पर मुद्रित किया जाता है)।
पढ़ें) यदि इनपुट एक है TTY(4) (उदा पढ़ना nfoo?'संख्या of फ़ूस: ').

यदि कोई इनपुट नहीं पढ़ा गया या टाइमआउट हुआ, पढ़ना गैर-शून्य स्थिति के साथ बाहर निकलता है।

तरकीबों का एक और उपयोगी सेट: यदि पढ़ना जैसे लूप में चलाया जाता है जब पढ़ना फू; do ...;
किया फिर प्रमुख रिक्त स्थान हटा दिया जाएगा (IFS) और बैकस्लैश संसाधित किए जाएंगे। आप
शायद उपयोग करना चाहें जब आईएफएस= पढ़ना -r फू; do ...; किया प्राचीन I/O के लिए. इसी प्रकार,
का उपयोग करते समय -a विकल्प, का उपयोग -r विकल्प विवेकपूर्ण हो सकता है; यही बात लागू होती है
के लिए:

खोजो । -प्रकार f -प्रिंट0 |&
जबकि IFS= read -d '' -pr फ़ाइल नाम; करना
प्रिंट -आर - "पाया गया <${फ़ाइल नाम#. /}>"
किया

आंतरिक लूप को एक उपकोश में निष्पादित किया जाएगा और परिवर्तनीय परिवर्तन नहीं किए जा सकते
पाइपलाइन में क्रियान्वित होने पर प्रचारित:

बार | बाज़ | जबकि फू पढ़ें; करना ...; पूर्ण

इसके बजाय सह-प्रक्रियाओं का उपयोग करें:

बार | बाज़ |&
जबकि पढ़ें -पी फू; करना ...; पूर्ण
कार्यकारी 3>&पी; कार्यकारी 3>&-

सिफ़ पढ़िये [-p] [प्राचल [=मूल्य] ...]
नामित पैरामीटर की केवल पढ़ने योग्य विशेषता सेट करता है। यदि मान दिए गए हैं,
विशेषता सेट करने से पहले पैरामीटर सेट किए जाते हैं। एक बार एक पैरामीटर बन जाता है
केवल-पढ़ने के लिए, इसे अनसेट नहीं किया जा सकता और इसका मान बदला नहीं जा सकता।

यदि कोई पैरामीटर निर्दिष्ट नहीं है, तो सभी पैरामीटर के नाम केवल-पढ़ने के लिए हैं
विशेषता प्रति पंक्ति एक मुद्रित की जाती है, जब तक कि -p विकल्प का उपयोग किया जाता है, किस स्थिति में
सिफ़ पढ़िये सभी रीड-ओनली पैरामीटर्स को उनके मानों सहित परिभाषित करने वाले कमांड हैं
मुद्रित।

वास्तविक पथ [--] नाम
इसके अनुरूप हल किए गए निरपेक्ष पथनाम को प्रिंट करता है नाम. अगर नाम एक के साथ समाप्त होता है
स्लैश ('/'), इसके अस्तित्व की भी जाँच की जाती है और क्या यह एक निर्देशिका है;
अन्यथा, वास्तविक पथ यदि पथनाम या तो मौजूद है या बनाया जा सकता है तो 0 लौटाता है
तुरंत, यानी अंतिम घटक को छोड़कर सभी मौजूद हैं और निर्देशिकाएं हैं।

नाम बदलने [--] से सेवा मेरे
फ़ाइल का नाम बदलता है से सेवा मेरे सेवा मेरे. दोनों पूर्ण पथनाम और एक ही डिवाइस पर होने चाहिए।
यह बिल्टिन आपातकालीन स्थितियों के लिए है /बिन/एमवी अनुपयोगी हो जाता है, और
सीधे कॉल करता है नाम बदलने(2).

वापसी [हैसियत]
किसी फ़ंक्शन से लौटता है या . स्क्रिप्ट, निकास स्थिति के साथ हैसियत। यदि नही हैसियत दिया हुआ है,
अंतिम निष्पादित कमांड की निकास स्थिति का उपयोग किया जाता है। यदि किसी फ़ंक्शन के बाहर उपयोग किया जाता है
or . स्क्रिप्ट, इसका प्रभाव भी वैसा ही है निकास। ध्यान दें कि mksh प्रोफ़ाइल और दोनों का इलाज करता है
ENV फ़ाइलें इस प्रकार हैं . स्क्रिप्ट, जबकि मूल कॉर्न शेल केवल प्रोफाइल को मानता है .
स्क्रिप्ट।

सेट [+-abCefhiklmnprsUuvXx] [+-ओ विकल्प] [+-ए नाम] [--] [arg ...]
RSI सेट कमांड का उपयोग सेट करने के लिए किया जा सकता है (-) या स्पष्ट (+) शेल विकल्प, स्थितीय सेट करें
पैरामीटर, या एक सरणी पैरामीटर सेट करें। का उपयोग करके विकल्प बदले जा सकते हैं +-ओ विकल्प
वाक्यविन्यास, कहाँ विकल्प किसी विकल्प का लंबा नाम है, या का उपयोग करना +-पत्र वाक्य - विन्यास,
जहां पत्र विकल्प का नाम एक अक्षर है (सभी विकल्पों में एक अक्षर नहीं होता है
नाम)। निम्न तालिका विकल्प अक्षर (यदि वे मौजूद हैं) और लंबे नाम दोनों को सूचीबद्ध करती है
विकल्प क्या करता है इसके विवरण के साथ:

-A नाम
सरणी पैरामीटर के तत्व सेट करता है नाम सेवा मेरे arg ... If -A प्रयोग किया जाता है,
सरणी को पहले रीसेट किया जाता है (यानी खाली किया जाता है); अगर +A का उपयोग किया जाता है, पहले N तत्व सेट किए जाते हैं
(जहाँ N तर्कों की संख्या है); बाकी को अछूता छोड़ दिया गया है।

कमांड के लिए एक वैकल्पिक सिंटैक्स सेट -A foo -- a b c जो कि अनुकूल है
जीएनयू खूब जोर से पीटना और AT&T UNIX द्वारा भी समर्थित है ksh93 है: फू=(ए b सी); फू+=(डी e)

-a | -o ऑलएक्सपोर्ट
सभी नए पैरामीटर निर्यात विशेषता के साथ बनाए जाते हैं।

-b | -o सूचित करें
कार्य अधिसूचना संदेशों को ठीक पहले के बजाय एसिंक्रोनस रूप से प्रिंट करें
तत्पर। केवल तभी उपयोग किया जाता है जब कार्य नियंत्रण सक्षम हो (-m).

-C | -o नोक्लोबर
> पुनर्निर्देशन को मौजूदा फ़ाइलों को अधिलेखित करने से रोकें। इसके बजाय, >| उपयोग किया जाना चाहिए
ओवरराइट करने के लिए बाध्य करना। ध्यान दें कि इसे बनाने के लिए उपयोग करना सुरक्षित नहीं है
चेक में TOCTOU के कारण अस्थायी फ़ाइलें या लॉकफ़ाइलें किसी को रीडायरेक्ट करने की अनुमति देती हैं
उत्पादन करने के लिए / Dev / बातिल या अन्य डिवाइस फ़ाइलों में भी नोक्लोबर मोड।

-e | -o इरेक्सिट
जैसे ही कोई त्रुटि या आदेश आए, बाहर निकलें (ईआरआर ट्रैप निष्पादित करने के बाद)।
विफल रहता है (अर्थात गैर-शून्य स्थिति के साथ बाहर निकलता है)। यह आदेशों पर लागू नहीं होता
जिसकी निकास स्थिति का स्पष्ट रूप से शेल निर्माण द्वारा परीक्षण किया जाता है if, जब तक,
जबया, ! बयान. के लिए && या ||, केवल अंतिम आदेश की स्थिति है
का परीक्षण किया।

-f | -o नोग्लोब
फ़ाइल नाम पैटर्न का विस्तार न करें.

-h | -o ट्रैकऑल
सभी निष्पादित कमांड के लिए ट्रैक किए गए उपनाम बनाएं (देखें)। फर्जी नाम ऊपर)। सक्रिय
गैर-इंटरैक्टिव शेल के लिए डिफ़ॉल्ट रूप से।

-i | -o इंटरैक्टिव
शेल एक इंटरैक्टिव शेल है. इस विकल्प का उपयोग केवल तभी किया जा सकता है जब शेल
आह्वान किया जाता है. इसका क्या मतलब है इसके विवरण के लिए ऊपर देखें।

-k | -o कीवर्ड
पैरामीटर असाइनमेंट को कमांड में कहीं भी पहचाना जाता है।

-l | -o लॉग इन
शेल एक लॉगिन शेल है. इस विकल्प का उपयोग केवल तभी किया जा सकता है जब शेल हो
आह्वान किया. इसका क्या मतलब है इसके विवरण के लिए ऊपर देखें।

-m | -o मॉनिटर
कार्य नियंत्रण सक्षम करें (इंटरैक्टिव शेल के लिए डिफ़ॉल्ट)।

-n | -o noexec
किसी भी आदेश पर अमल न करें. स्क्रिप्ट के सिंटैक्स की जाँच के लिए उपयोगी (अनदेखा)।
यदि इंटरैक्टिव हो)।

-p | -o विशेषाधिकृत
शेल एक विशेषाधिकार प्राप्त शेल है. यह स्वचालित रूप से सेट हो जाता है यदि, जब शेल
प्रारंभ होने पर, वास्तविक यूआईडी या जीआईडी ​​प्रभावी यूआईडी (ईयूआईडी) या जीआईडी ​​से मेल नहीं खाता है
(ईजीआईडी), क्रमशः। इसका क्या मतलब है इसके विवरण के लिए ऊपर देखें।

-r | -o प्रतिबंधित
खोल एक प्रतिबंधित खोल है. इस विकल्प का उपयोग केवल तभी किया जा सकता है जब शेल हो
आह्वान किया. इसका क्या मतलब है इसके विवरण के लिए ऊपर देखें।

-s | -o stdin
यदि शेल को लागू करते समय उपयोग किया जाता है, तो कमांड मानक इनपुट से पढ़े जाते हैं। तय करना
यदि शेल को बिना किसी तर्क के लागू किया जाता है तो स्वचालित रूप से।

. -s के साथ प्रयोग किया जाता है सेट कमांड यह निर्दिष्ट तर्कों का कारण बनता है
उन्हें स्थितीय मापदंडों (या सरणी) में निर्दिष्ट करने से पहले क्रमबद्ध किया गया नाम, अगर
-A प्रयोग किया जाता है)।

-U | -o utf8-मोड
में UTF-8 समर्थन सक्षम करें Emacs संपादन मोड और आंतरिक स्ट्रिंग हैंडलिंग
कार्य. यह ध्वज डिफ़ॉल्ट रूप से अक्षम है, लेकिन इसे सेट करके सक्षम किया जा सकता है
शेल कमांड लाइन पर; इंटरैक्टिव शेल के लिए स्वचालित रूप से सक्षम है यदि
संकलन समय पर अनुरोध किया गया, आपका सिस्टम समर्थन करता है सेटलोकेल(एलसी_CTYPE, "") और
वैकल्पिक रूप से nl_langinfo(कोडसेट), या LC_ALL, LC_CTYPE, या LANG वातावरण
चर, और इनमें से कम से कम एक कुछ ऐसा लौटाता है जो "UTF-8" या से मेल खाता है
"utf8" केस-असंवेदनशील रूप से; के आधार पर प्रत्यक्ष अंतर्निहित कॉल के लिए
उपर्युक्त पर्यावरण चर; या stdin या स्क्रिप्ट के लिए, यदि इनपुट
UTF-8 बाइट ऑर्डर मार्क से शुरू होता है।

निकट भविष्य में, स्थानीय ट्रैकिंग लागू की जाएगी, जिसका अर्थ है सेट -+यू is
जब भी POSIX लोकेल-संबंधित पर्यावरण चर में से कोई एक बदलता है तो बदल जाता है।

-u | -o संज्ञा
"$@" या "$*" के अलावा किसी अनसेट पैरामीटर के संदर्भ को एक के रूप में माना जाता है
त्रुटि, जब तक कि '-', '+', या '=' संशोधक में से किसी एक का उपयोग नहीं किया जाता है।

-v | -o वाचाल
शेल इनपुट को पढ़ते समय मानक त्रुटि में लिखें।

-X | -o मार्कडिर्स
फ़ाइल नाम निर्माण के दौरान निर्देशिकाओं को अनुगामी '/' से चिह्नित करें।

-x | -o एक्सट्रेस
निष्पादित होने पर कमांड ट्री को PS4 के मान से पहले प्रिंट करें।

-o bgnice
पृष्ठभूमि कार्य कम प्राथमिकता के साथ चलाए जाते हैं।

-o ब्रेसएक्सपैंड
ब्रेस विस्तार सक्षम करें (उर्फ वैकल्पिक)। यह डिफ़ॉल्ट रूप से सक्षम है. अगर
अक्षम, बराबर चिह्न के बाद टिल्ड विस्तार को साइड इफेक्ट के रूप में अक्षम कर दिया गया है।

-o Emacs
बीआरएल इमैक-जैसे कमांड-लाइन संपादन सक्षम करें (केवल इंटरैक्टिव शेल); देखना Emacs
संपादन मोड.

-o gmacs
Gmacs-जैसी कमांड-लाइन संपादन सक्षम करें (केवल इंटरैक्टिव शेल)। वर्तमान में
Emacs संपादन के समान, सिवाय इसके कि ट्रांसपोज़-वर्ण (^T) थोड़ा कार्य करता है
अलग ढंग से।

-o अनदेखा करना
जब फ़ाइल का अंत पढ़ा जाएगा तो शेल (आसानी से) बाहर नहीं निकलेगा; निकास उपयोग किया जाना चाहिए।
अनंत लूप से बचने के लिए, यदि ईओएफ को लगातार 13 बार पढ़ा जाए तो शेल बाहर निकल जाएगा।

-o इनहेरिट-एक्सट्रेस
रीसेट न करें -o एक्सट्रेस फ़ंक्शंस में प्रवेश करने पर। यह डिफ़ॉल्ट रूप से सक्षम है.

-o nohup
जब लॉगिन शेल बाहर निकलता है तो SIGHUP सिग्नल के साथ चल रहे कार्यों को बंद न करें।
वर्तमान में डिफ़ॉल्ट रूप से सेट है, लेकिन यह भविष्य में संगत होने के लिए बदल सकता है
एटी एंड टी यूनिक्स के साथ क्ष, जिसमें यह विकल्प नहीं है, लेकिन SIGHUP भेजता है
संकेत.

-o नाल
कोई प्रभाव नहीं। मूल कॉर्न शेल में, यह फ़ंक्शन परिभाषाओं को रोकता है
इतिहास फ़ाइल में संग्रहीत किया जा रहा है।

-o भौतिक
का कारण बनता है cd और लोक निर्माण विभाग "भौतिक" (यानी फ़ाइल सिस्टम का) '..' का उपयोग करने का आदेश
"तार्किक" निर्देशिकाओं के बजाय निर्देशिकाएँ (अर्थात शेल '..' को संभालता है, जो
उपयोगकर्ता को निर्देशिकाओं के प्रतीकात्मक लिंक से बेखबर रहने की अनुमति देता है)। द्वारा साफ़ करें
गलती करना। ध्यान दें कि इस विकल्प को सेट करने से वर्तमान मूल्य प्रभावित नहीं होता है
PWD पैरामीटर; केवल cd कमांड ने PWD को बदल दिया। देखें cd और लोक निर्माण विभाग आज्ञाओं
अधिक जानकारी के लिए ऊपर।

-o पाइप फेल
पाइपलाइन की निकास स्थिति बनाएं (तार्किक रूप से पूरक करने से पहले)।
सबसे दाहिना गैर-शून्य त्रुटि स्तर, या यदि सभी आदेश शून्य से बाहर निकलते हैं तो शून्य।

-o POSIX
मानकों के करीब व्यवहार करें (देखें) POSIX मोड जानकारी के लिए)। खुद ब खुद
यदि शेल आमंत्रण का बेसनाम "sh" और इससे शुरू होता है तो सक्षम किया गया है
ऑटोडिटेक्शन सुविधा संकलित है (मिरबीएसडी में नहीं)। एक साइड इफेक्ट के रूप में, सेटिंग
यह ध्वज बंद हो जाता है ब्रेसएक्सपैंड मोड, जिसे मैन्युअल रूप से वापस चालू किया जा सकता है, और
sh मोड (जब तक कि दोनों एक ही समय में सक्षम न हों)।

-o sh
सक्षम / बिन / श (क्लज) मोड (देखें SH मोड). यदि स्वचालित रूप से सक्षम है
शेल इनवोकेशन का बेसनेम "sh" और इस ऑटोडिटेक्शन सुविधा से शुरू होता है
में संकलित है (मिरबीएसडी में नहीं)। दुष्प्रभाव के रूप में, इस ध्वज को सेट करने से यह बंद हो जाता है
ब्रेसएक्सपैंड मोड, जिसे मैन्युअल रूप से वापस चालू किया जा सकता है, और POSIX मोड (जब तक
दोनों एक ही समय में सक्षम हैं)।

-o vi
सक्षम vi(1)-जैसे कमांड-लाइन संपादन (केवल इंटरैक्टिव शेल)। देखना Vi
संपादन मोड दस्तावेज़ीकरण और सीमाओं के लिए.

-o vi-escपूर्ण
Vi कमांड-लाइन संपादन में, एस्केप होने पर कमांड और फ़ाइल नाम पूरा करें (^[)
कमांड मोड में दर्ज किया गया है.

-o vi-टैबपूर्ण
vi कमांड-लाइन संपादन में, टैब (^I) होने पर कमांड और फ़ाइल नाम पूरा करें
इन्सर्ट मोड में प्रवेश किया गया। यह डिफ़ॉल्ट है.

-o viraw
कोई प्रभाव नहीं। मूल कॉर्न शेल में, जब तक viraw सेट किया गया था, vi कमांड-
लाइन मोड जाने देगा TTY(4) ड्राइवर ईएससी (^[) दर्ज होने तक काम करता है।
mksh हमेशा वायरो मोड में रहता है.

इन विकल्पों का उपयोग शेल के आह्वान पर भी किया जा सकता है। का वर्तमान सेट
विकल्प (एकल अक्षर नाम के साथ) पैरामीटर '$-' में पाए जा सकते हैं। सेट -o साथ में
कोई भी विकल्प नाम सभी विकल्पों को सूचीबद्ध नहीं करेगा और यह भी बताएगा कि प्रत्येक विकल्प चालू है या बंद है; सेट +o मर्जी
वर्तमान में मौजूद सभी विकल्पों के लंबे नाम प्रिंट करें। भविष्य के संस्करण में, सेट
+o वर्तमान विकल्पों को पुनर्स्थापित करने के लिए POSIX अनुरूप व्यवहार करेगा और कमांड प्रिंट करेगा
बजाय.

शेष तर्क, यदि कोई हो, स्थितीय पैरामीटर हैं और उन्हें क्रम से सौंपा गया है
स्थितीय पैरामीटर (यानी $1, $2, आदि)। यदि विकल्प '--' के साथ समाप्त होते हैं और वहाँ
कोई शेष तर्क नहीं हैं, सभी स्थितीय पैरामीटर साफ़ कर दिए गए हैं। यदि कोई विकल्प नहीं है या
तर्क दिए गए हैं, सभी नामों के मान मुद्रित किए गए हैं। अज्ञात ऐतिहासिक के लिए
कारण, एक अकेला '-' विकल्प विशेष रूप से व्यवहार किया जाता है - यह दोनों को साफ़ करता है -v और -x
विकल्प.

पाली [संख्या]
स्थितीय पैरामीटर संख्या+ 1, संख्या+2, आदि का नाम बदलकर '1', '2', आदि कर दिया गया है।
संख्या 1 के लिए डिफ़ॉल्ट।

नींद सेकंड
न्यूनतम के लिए निष्पादन को निलंबित करता है सेकंड सकारात्मक दशमलव मान के रूप में निर्दिष्ट
एक वैकल्पिक भिन्नात्मक भाग के साथ. सिग्नल डिलीवरी का निष्पादन पहले जारी रह सकता है।

स्रोत पट्टिका [arg ...]
पसंद . ("डॉट"), सिवाय इसके कि वर्तमान कार्यशील निर्देशिका को खोज में जोड़ा गया है
पथ (जीएनयू खूब जोर से पीटना विस्तार)।

निलंबित
शेल को ऐसे रोकता है मानो उसे टर्मिनल से सस्पेंड कैरेक्टर प्राप्त हुआ हो। यह है
लॉगिन शेल को निलंबित करना तब तक संभव नहीं है जब तक कि मूल प्रक्रिया इसका सदस्य न हो
एक ही टर्मिनल सत्र लेकिन एक अलग प्रक्रिया समूह का सदस्य है। एक जनरल के तौर पर
नियम, यदि शेल किसी अन्य शेल द्वारा या उसके माध्यम से प्रारंभ किया गया था su(1), इसे निलंबित किया जा सकता है।

परीक्षण अभिव्यक्ति
[ अभिव्यक्ति ]
परीक्षण का मूल्यांकन करता है अभिव्यक्ति और यदि सत्य है तो शून्य स्थिति देता है, यदि गलत है तो 1, या अधिक देता है
यदि कोई त्रुटि हो तो 1 से अधिक. इसे सामान्यतः कंडीशन कमांड के रूप में उपयोग किया जाता है if और
जब बयान. सभी के लिए प्रतीकात्मक लिंक का पालन किया जाता है पट्टिका भावों को छोड़कर -h और
-L.

निम्नलिखित मूल अभिव्यक्तियाँ उपलब्ध हैं:

-a पट्टिका पट्टिका मौजूद।

-b पट्टिका पट्टिका एक ब्लॉक विशेष उपकरण है.

-c पट्टिका पट्टिका एक चरित्र विशेष उपकरण है.

-d पट्टिका पट्टिका एक निर्देशिका है।

-e पट्टिका पट्टिका मौजूद।

-f पट्टिका पट्टिका एक नियमित फ़ाइल है.

-G पट्टिका पट्टिकाका समूह शेल की प्रभावी समूह आईडी है।

-g पट्टिका पट्टिकाके मोड में सेटगिड बिट सेट है।

-H पट्टिका पट्टिका एक संदर्भ पर निर्भर निर्देशिका है (केवल एचपी-यूएक्स पर उपयोगी)।

-h पट्टिका पट्टिका एक प्रतीकात्मक कड़ी है.

-k पट्टिका पट्टिकाके मोड में है चिपचिपा(8) बिट सेट.

-L पट्टिका पट्टिका एक प्रतीकात्मक कड़ी है.

-O पट्टिका पट्टिकाइसका स्वामी शेल की प्रभावी उपयोक्ता आईडी है।

-o विकल्प खोल विकल्प सेट है (देखें सेट की सूची के लिए ऊपर आदेश दें
विकल्प). एक गैर-मानक एक्सटेंशन के रूप में, यदि विकल्प से शुरू होता है
एक '!', परीक्षण अस्वीकृत है; परीक्षण हमेशा विफल रहता है यदि विकल्प
अस्तित्व में नहीं है (इसलिए [ -o foo -o -o !foo ] केवल और केवल सत्य लौटाता है
यदि विकल्प foo मौजूद)। इसे [ -o ?foo ] के साथ हासिल किया जा सकता है
जैसे AT&T UNIX में ksh93. विकल्प के नेतृत्व में छोटा झंडा भी हो सकता है
या तो '-' या '+' (कोई तार्किक निषेध नहीं), उदाहरण के लिए '-x' या '+x'
'एक्सट्रेस' के बजाय।

-p पट्टिका पट्टिका एक नामित पाइप (FIFO) है।

-r पट्टिका पट्टिका मौजूद है और पठनीय है।

-S पट्टिका पट्टिका एक यूनिक्स(4)-डोमेन सॉकेट.

-s पट्टिका पट्टिका खाली नहीं है।

-t fd फ़ाइल विवरणक fd एक TTY(4) युक्ति.

-u पट्टिका पट्टिकाके मोड में सेटुइड बिट सेट है।

-w पट्टिका पट्टिका मौजूद है और लिखने योग्य है।

-x पट्टिका पट्टिका मौजूद है और निष्पादन योग्य है।

file1 -एनटीई file2 file1 से नया है file2 or file1 मौजूद है और file2 नहीं करता।

file1 -ओटी file2 file1 से बूढ़ा है file2 or file2 मौजूद है और file1 नहीं करता।

file1 -ईएफ file2 file1 जैसी ही फ़ाइल है file2.

स्ट्रिंग स्ट्रिंग गैर-शून्य लंबाई है.

-n स्ट्रिंग स्ट्रिंग खाली नहीं है।

-z स्ट्रिंग स्ट्रिंग खाली है।

स्ट्रिंग = स्ट्रिंग तार बराबर हैं.

स्ट्रिंग == स्ट्रिंग तार बराबर हैं.

स्ट्रिंग > स्ट्रिंग पहली स्ट्रिंग का ऑपरेंड दूसरी स्ट्रिंग के ऑपरेंड से बड़ा होता है।

स्ट्रिंग < स्ट्रिंग पहली स्ट्रिंग ऑपरेंड दूसरी स्ट्रिंग ऑपरेंड से कम है।

स्ट्रिंग != स्ट्रिंग तार बराबर नहीं हैं.

संख्या -ईक्यू संख्या संख्याओं की तुलना बराबर होती है.

संख्या -ने संख्या संख्याओं की तुलना बराबर नहीं होती.

संख्या -देना संख्या संख्याओं की तुलना इससे बड़ी या बराबर होती है।

संख्या -gt संख्या संख्याओं की तुलना इससे अधिक होती है.

संख्या -इस संख्या संख्याओं की तुलना इससे कम या बराबर होती है.

संख्या -एलटीई संख्या संख्याओं की तुलना कम से कम होती है.

उपरोक्त मूल अभिव्यक्तियाँ, जिनमें यूनरी ऑपरेटरों को बाइनरी पर प्राथमिकता दी जाती है
ऑपरेटरों को निम्नलिखित ऑपरेटरों के साथ जोड़ा जा सकता है (बढ़ते क्रम में सूचीबद्ध)।
प्राथमिकता का):

expr -o expr तार्किक या।
expr -a expr तार्किक तथा।
! expr तार्किक नहीं।
(एक्सपीआर) समूहीकरण।

ध्यान दें कि कोई संख्या वास्तव में एक अंकगणितीय अभिव्यक्ति हो सकती है, जैसे कि गणितीय
पद या पूर्णांक चर का नाम:

एक्स=1; [ "x" -eq 1 ] सत्य का मूल्यांकन करता है

ध्यान दें कि कुछ विशेष नियम लागू होते हैं (POSIX के सौजन्य से) यदि संख्या
तर्क परीक्षण या कोष्ठक के अंदर [ ... ] पांच से कम है: यदि अग्रणी '!'
तर्कों को इस प्रकार हटाया जा सकता है कि केवल एक से तीन तर्क ही बचे हों, फिर
निचली तुलना निष्पादित की जाती है; (XSI को धन्यवाद) कोष्ठक \( ... \) निचला चार- और
तीन-तर्क रूपों को क्रमशः दो- और एक-तर्क रूपों में; तीन-तर्क
प्रपत्र अंततः द्विआधारी संक्रियाओं को प्राथमिकता देते हैं, जिसके बाद निषेध और कोष्ठक आते हैं
कम करना; दो- और चार-तर्क वाले रूप निषेध के बाद कोष्ठक को प्राथमिकता देते हैं;
एक-तर्क रूप का हमेशा तात्पर्य होता है -n.

नोट: एक सामान्य गलती "if [ $foo = bar ]" का उपयोग करना है जो पैरामीटर "foo" होने पर विफल हो जाता है
शून्य या असेट है, यदि इसमें एम्बेडेड रिक्त स्थान हैं (यानी आईएफएस ऑक्टेट्स), या यदि यह एक यूनरी है
ऑपरेटर जैसे '!' या '-n'. इसके बजाय "if [ x"$foo" = x"bar" ]" जैसे परीक्षणों का उपयोग करें, या
डबल-ब्रैकेट ऑपरेटर "यदि [[$foo = bar ]]" या, पैटर्न मिलान से बचने के लिए (देखें [[
ऊपर): “यदि [[ $foo = "$bar" ]]"

RSI [[ ... ]] निर्माण न केवल उपयोग करने के लिए अधिक सुरक्षित है बल्कि अक्सर तेज़ भी होता है।

पहर [-p] [पाइपलाइन]
एक तो पाइपलाइन दिया गया है, पाइपलाइन को निष्पादित करने के लिए उपयोग किए गए समय की सूचना दी गई है। अगर कोई नहीं
पाइपलाइन दी गई है, फिर शेल द्वारा उपयोग किया जाने वाला उपयोगकर्ता और सिस्टम समय, और सब कुछ
इसके प्रारंभ होने के बाद से इसके द्वारा चलाए गए आदेशों की सूचना दी जाती है। रिपोर्ट किए गए समय हैं
वास्तविक समय (शुरू से अंत तक बीता हुआ समय), उपयोगकर्ता सीपीयू समय (व्यतीत समय)।
उपयोगकर्ता मोड में चल रहा है), और सिस्टम सीपीयू समय (कर्नेल मोड में चलने में बिताया गया समय)।
टाइम्स को मानक त्रुटि के रूप में सूचित किया जाता है; आउटपुट का प्रारूप है:

0m0.00s वास्तविक 0m0.00s उपयोगकर्ता 0m0.00s प्रणाली

अगर -p विकल्प दिया गया है आउटपुट थोड़ा लंबा है:

असली 0.00
उपयोगकर्ता 0.00
सिस्टम 0.00

इसे निर्दिष्ट करना एक त्रुटि है -p विकल्प जब तक पाइपलाइन एक सरल आदेश है.

मानक त्रुटि के सरल पुनर्निर्देशन आउटपुट को प्रभावित नहीं करते हैं पहर आदेश:

$ समय नींद 1 2>एफ़ाइल
$ {समय नींद 1; } 2>एफ़ाइल

पहले कमांड का समय "एफ़ाइल" पर नहीं जाता है, लेकिन दूसरे कमांड का समय जाता है।

बार शेल और प्रक्रियाओं दोनों द्वारा उपयोग किए गए संचित उपयोगकर्ता और सिस्टम समय को प्रिंट करें
कि खोल शुरू हुआ जो बाहर निकल गया है। आउटपुट का प्रारूप है:

0m0.00s 0m0.00s
0m0.00s 0m0.00s

जाल n [संकेत ...]
यदि पहला ऑपरेंड एक दशमलव अहस्ताक्षरित पूर्णांक है, तो यह सभी निर्दिष्ट संकेतों को रीसेट करता है
डिफ़ॉल्ट क्रिया के लिए, यानी कॉलिंग के समान है जाल ऋण चिह्न ('-') के साथ
हैंडलर, उसके बाद तर्क (n [संकेत ...]), इन सभी को इस प्रकार माना जाता है
संकेत है।

जाल [हैंडलर संकेत ...]
एक ट्रैप हैंडलर सेट करता है जिसे किसी भी निर्दिष्ट होने पर निष्पादित किया जाना है संकेतएस रहे हैं
प्राप्त किया। हैंडलर या तो एक खाली स्ट्रिंग है, जो संकेत देती है कि सिग्नल होने चाहिए
नजरअंदाज कर दिया गया, एक ऋण चिह्न ('-'), यह दर्शाता है कि डिफ़ॉल्ट कार्रवाई की जानी है
संकेत (देखें) संकेत(3)), या एक स्ट्रिंग जिसमें निष्पादित किए जाने वाले शेल कमांड हैं
पहला अवसर (अर्थात जब वर्तमान कमांड पूरा हो जाए, या मुद्रण से पहले
किसी एक सिग्नल की प्राप्ति के बाद अगला PS1 प्रॉम्प्ट)। संकेत एक का नाम है
सिग्नल (जैसे PIPE या ALRM) या सिग्नल की संख्या (देखें)। हत्या -l आदेश
ऊपर)।

दो विशेष सिग्नल हैं: EXIT (जिसे 0 के रूप में भी जाना जाता है), जिसे तब निष्पादित किया जाता है
शेल बाहर निकलने वाला है, और ईआरआर, जिसे त्रुटि उत्पन्न होने के बाद निष्पादित किया जाता है; एक त्रुटि है
कुछ ऐसा जो शेल को बाहर निकलने का कारण बनेगा यदि सेट -e or सेट -o इरेक्सिट विकल्प
सेट किया गया। EXIT हैंडलर को अंतिम निष्पादन के वातावरण में निष्पादित किया जाता है
आदेश।

ध्यान दें कि, गैर-इंटरैक्टिव शेल के लिए, सिग्नल के लिए ट्रैप हैंडलर को नहीं बदला जा सकता है
जब शेल शुरू हुआ तो इसे नजरअंदाज कर दिया गया।

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

मूल कॉर्न शेल का DEBUG ट्रैप और ERR और EXIT ट्रैप का प्रबंधन
फ़ंक्शंस अभी तक कार्यान्वित नहीं किए गए हैं.

<strong>उद्देश्य</strong> एक आदेश जो शून्य मान के साथ बाहर निकलता है।

वैश्विक [[+-alpnrtUux] [-L[n]] [-R[n]] [-Z[n]] [-i[n]] | -f [-टक्स]] [नाम [=मूल्य] ...]
टाइपसेट [[+-alpnrtUux] [-एलआरजेड[n]] [-i[n]] | -f [-टक्स]] [नाम [=मूल्य] ...]
पैरामीटर विशेषताएँ प्रदर्शित या सेट करें। कोई साथ नाम तर्क, पैरामीटर विशेषताएँ
प्रदर्शित; यदि कोई विकल्प उपयोग नहीं किया जाता है, तो सभी मापदंडों की वर्तमान विशेषताएँ हैं
के रूप में मुद्रित किया गया टाइपसेट आदेश; यदि कोई विकल्प दिया गया है (या '-' बिना किसी विकल्प अक्षर के),
निर्दिष्ट विशेषताओं के साथ सभी पैरामीटर और उनके मान मुद्रित होते हैं; यदि विकल्प
'+' के साथ प्रस्तुत किए जाते हैं, पैरामीटर मान मुद्रित नहीं होते हैं।

If नाम तर्क दिए गए हैं, नामित मापदंडों की विशेषताएँ निर्धारित की गई हैं (-) या
साफ़ (+). मापदंडों के लिए मान वैकल्पिक रूप से निर्दिष्ट किए जा सकते हैं। के लिए नाम[*], द
परिवर्तन संपूर्ण सरणी को प्रभावित करता है, और कोई मान निर्दिष्ट नहीं किया जा सकता है।

If टाइपसेट किसी फ़ंक्शन के अंदर उपयोग किया जाता है, निर्दिष्ट कोई भी पैरामीटर स्थानीयकृत होता है। यह
अन्यथा समान द्वारा नहीं किया जाता है वैश्विक. नोट: इस का मतलब है कि mksh 's वैश्विक
आदेश है नहीं अन्य प्रोग्रामिंग भाषाओं के समतुल्य' क्योंकि यह अनुमति नहीं देता है
वास्तव में वैश्विक दायरे में एक पैरामीटर तक पहुंचने के लिए किसी अन्य फ़ंक्शन से फ़ंक्शन को कॉल किया जाता है,
लेकिन केवल एक्सेस किए गए को स्थानीय दायरे में डालने से रोकता है।

. -f प्रयोग किया जाता है, टाइपसेट कार्यों की विशेषताओं पर कार्य करता है। साथ ही
पैरामीटर, यदि नहीं नाम तर्क दिए गए हैं, फ़ंक्शंस को उनके मानों के साथ सूचीबद्ध किया गया है
(अर्थात परिभाषाएँ) जब तक विकल्प '+' के साथ प्रस्तुत नहीं किए जाते, उस स्थिति में केवल
फ़ंक्शन नाम बताए गए हैं.

-a अनुक्रमित सरणी विशेषता.

-f फ़ंक्शन मोड. इसके बजाय फ़ंक्शंस और उनकी विशेषताओं को प्रदर्शित या सेट करें
मापदंडों।

-i[n] पूर्णांक विशेषता. n पूर्णांक प्रदर्शित करते समय उपयोग करने के लिए आधार निर्दिष्ट करता है
(यदि निर्दिष्ट नहीं है, तो पहले असाइनमेंट में दिए गए आधार का उपयोग किया जाता है)।
इस विशेषता वाले पैरामीटर्स को अंकगणित युक्त मान निर्दिष्ट किए जा सकते हैं
भाव।

-L[n] वाम औचित्य विशेषता। n फ़ील्ड की चौड़ाई निर्दिष्ट करता है. अगर n निर्दिष्ट नहीं है,
किसी पैरामीटर की वर्तमान चौड़ाई (या उसके पहले निर्दिष्ट मान की चौड़ाई)
प्रयोग किया जाता है। अग्रणी रिक्त स्थान (और शून्य, यदि इसके साथ प्रयोग किया जाता है -Z विकल्प) है
छीन लिया. यदि आवश्यक हो, तो मानों को या तो छोटा कर दिया जाता है या फिट करने के लिए स्थान जोड़ दिया जाता है
फ़ील्ड की चौड़ाई.

-l लोअर केस विशेषता. मानों में सभी अपरकेस वर्णों को परिवर्तित कर दिया जाता है
निचला मामला. (मूल कॉर्न शेल में, इस पैरामीटर का अर्थ "लंबा पूर्णांक" था
जब के साथ प्रयोग किया जाता है -i विकल्प।)

-n एक बाउंड वेरिएबल (नाम संदर्भ) बनाएं: वेरिएबल तक कोई भी पहुंच नाम
वेरिएबल तक पहुंच प्राप्त करेगा मूल्य वर्तमान दायरे में (यह इससे भिन्न है
एटी एंड टी यूनिक्स ksh93!) बजाय। AT&T UNIX से भी भिन्न ksh93 अर्थात
मूल्य उस समय आलस्यपूर्वक मूल्यांकन किया जाता है नाम एक्सेस किया जाता है. इसका उपयोग किया जा सकता है
वेरिएबल्स तक पहुंचने के लिए फ़ंक्शन जिनके नाम इसके बजाय पैरामीटर के रूप में पारित किए जाते हैं
इस्तेमाल करने का तरीका विकसित करना.

-p पूरा प्रिंट करें टाइपसेट वे आदेश जिनका उपयोग विशेषताओं को पुनः बनाने के लिए किया जा सकता है
और पैरामीटर के मान.

-R[n] सही औचित्य गुण। n फ़ील्ड की चौड़ाई निर्दिष्ट करता है. अगर n नहीं है
निर्दिष्ट, एक पैरामीटर की वर्तमान चौड़ाई (या इसके पहले की चौड़ाई
निर्दिष्ट मान) का उपयोग किया जाता है। अनुगामी रिक्त स्थान छीन लिया गया है। यदि आवश्यक है,
मूल्यों को या तो प्रमुख पात्रों से हटा दिया जाता है या उन्हें बनाने के लिए जगह भर दी जाती है
फ़ील्ड की चौड़ाई के अनुरूप।

-r केवल पढ़ने योग्य विशेषता. इस विशेषता वाले पैरामीटर असाइन नहीं किए जा सकते
या परेशान. एक बार यह विशेषता सेट हो जाने पर इसे बंद नहीं किया जा सकता.

-t टैग विशेषता. खोल से कोई मतलब नहीं; एप्लिकेशन उपयोग के लिए प्रदान किया गया।

कार्यों के लिए, -t ट्रेस विशेषता है. जब ट्रेस के साथ कार्य करता है
विशेषता निष्पादित की जाती है, एक्सट्रेस (-x) शेल विकल्प अस्थायी रूप से चालू है
पर।

-U अहस्ताक्षरित पूर्णांक विशेषता. पूर्णांकों को अहस्ताक्षरित मानों के रूप में मुद्रित किया जाता है (संयुक्त करें)।
साथ -i विकल्प)। यह विकल्प मूल कॉर्न शेल में नहीं है.

-u अपरकेस विशेषता. मानों में सभी छोटे अक्षर परिवर्तित हो जाते हैं
अपरकेस। (मूल कॉर्न शेल में, इस पैरामीटर का अर्थ "अहस्ताक्षरित" था
पूर्णांक" जब इसके साथ प्रयोग किया जाता है -i विकल्प जिसका अर्थ है बड़े अक्षर होंगे
10 से बड़े आधारों के लिए कभी भी उपयोग न करें। देखें -U विकल्प।)

कार्यों के लिए, -u अपरिभाषित विशेषता है. देखना कार्य ऊपर के लिए
इसके निहितार्थ.

-x निर्यात विशेषता. पैरामीटर्स (या फ़ंक्शंस) को के वातावरण में रखा जाता है
कोई भी निष्पादित आदेश। निर्यातित फ़ंक्शन अभी तक कार्यान्वित नहीं किए गए हैं.

-Z[n] शून्य भरण विशेषता. यदि साथ न जोड़ा जाए -L, यह वैसा ही है -R, के सिवाय
स्पेस पैडिंग के स्थान पर जीरो पैडिंग का उपयोग किया जाता है। पूर्णांकों के लिए, संख्या
आधार के स्थान पर गद्देदार है।

यदि कोई -i, -L, -l, -R, -U, -uया, -Z विकल्प बदल दिए गए हैं, अन्य सभी इससे
सेट को साफ़ कर दिया जाता है, जब तक कि उन्हें भी उसी कमांड लाइन पर नहीं दिया जाता है।

अलिमित [-aBCcdefHilMmnOPpqrSsTtVvw] [मूल्य]
प्रक्रिया सीमाएँ प्रदर्शित या निर्धारित करें। यदि कोई विकल्प उपयोग नहीं किया जाता है, तो फ़ाइल आकार सीमा (-f) है
माना। मूल्य, यदि निर्दिष्ट किया गया है, तो या तो एक अंकगणितीय अभिव्यक्ति या शब्द हो सकता है
"असीमित"। सीमाएँ शेल और शेल द्वारा बनाई गई किसी भी प्रक्रिया को प्रभावित करती हैं
एक सीमा लागू होने के बाद. ध्यान दें कि कुछ प्रणालियाँ सीमा की अनुमति नहीं दे सकती हैं
सेट हो जाने पर वृद्धि हो जाती है। यह भी ध्यान दें कि उपलब्ध सीमाओं के प्रकार प्रणालीगत हैं
आश्रित - कुछ प्रणालियों में केवल यही होता है -f सीमा।

-a सभी सीमाएँ प्रदर्शित करें; जब तक -H का उपयोग किया जाता है, नरम सीमाएँ प्रदर्शित की जाती हैं।

-B n सॉकेट बफ़र आकार को इस पर सेट करें n किबिबाइट्स.

-C n कैश्ड थ्रेड्स की संख्या निर्धारित करें n.

-c n की आकार सीमा लगाएं n कोर डंप के आकार पर ब्लॉक।

-d n की आकार सीमा लगाएं n डेटा क्षेत्र के आकार पर किबिबाइट्स।

-e n अधिकतम सुन्दरता को पर सेट करें n.

-f n की आकार सीमा लगाएं n शेल और उसके चाइल्ड द्वारा लिखी गई फ़ाइलों पर ब्लॉक
प्रक्रियाएं (किसी भी आकार की फ़ाइलें पढ़ी जा सकती हैं)।

-H केवल हार्ड लिमिट सेट करें (डिफ़ॉल्ट हार्ड और सॉफ्ट दोनों लिमिट सेट करना है)।

-i n लंबित सिग्नलों की संख्या निर्धारित करें n.

-l n की एक सीमा लगाएं n लॉक्ड (वायर्ड) भौतिक मेमोरी की मात्रा पर किबिबाइट्स।

-M n AIO लॉक्ड मेमोरी को पर सेट करें n किबिबाइट्स.

-m n की एक सीमा लगाएं n उपयोग की गई भौतिक मेमोरी की मात्रा पर किबिबाइट्स।

-n n की एक सीमा लगाएं n फ़ाइल डिस्क्रिप्टर जो एक बार में खोले जा सकते हैं।

-O n AIO परिचालनों की संख्या को इस पर सेट करें n.

-P n प्रति प्रक्रिया थ्रेड्स की संख्या सीमित करें n.

-p n की एक सीमा लगाएं n ऐसी प्रक्रियाएँ जिन्हें उपयोगकर्ता द्वारा किसी भी समय चलाया जा सकता है।

-q n POSIX संदेश कतारों का आकार सीमित करें n बाइट्स।

-r n अधिकतम वास्तविक समय प्राथमिकता निर्धारित करें n.

-S केवल सॉफ्ट लिमिट सेट करें (डिफ़ॉल्ट हार्ड और सॉफ्ट दोनों लिमिट सेट करना है)।

-s n की आकार सीमा लगाएं n स्टैक क्षेत्र के आकार पर किबिबाइट्स।

-T n की एक समय सीमा लगाएं n प्रत्येक प्रक्रिया द्वारा उपयोग किए जाने वाले वास्तविक सेकंड।

-t n की एक समय सीमा लगाएं n उपयोगकर्ता मोड में बिताए गए सीपीयू सेकंड प्रत्येक के द्वारा उपयोग किए जाएंगे
प्रक्रिया.

-V n हाइकु पर वीनोड मॉनिटर की संख्या निर्धारित करें n.

-v n की एक सीमा लगाएं n वर्चुअल मेमोरी की मात्रा पर किबिबाइट्स (पता स्थान)
उपयोग किया गया।

-w n की एक सीमा लगाएं n प्रयुक्त स्वैप स्थान की मात्रा पर किबिबाइट्स।

जहाँ तक अलिमित जहाँ तक सवाल है, एक ब्लॉक 512 बाइट्स का होता है।

umask [-S] [मुखौटा]
फ़ाइल अनुमति निर्माण मास्क, या उमास्क प्रदर्शित करें या सेट करें (देखें umask(2))। अगर -S
विकल्प का उपयोग किया जाता है, प्रदर्शित या सेट किया गया मुखौटा प्रतीकात्मक है; अन्यथा, यह अष्टाधारी है
संख्या.

प्रतीकात्मक मुखौटे ऐसे ही होते हैं जिनका प्रयोग किया जाता है परिवर्तन विद्या(1). जब उपयोग किया जाता है, तो वे क्या वर्णन करते हैं
अनुमतियाँ उपलब्ध कराई जा सकती हैं (ऑक्टल मास्क के विपरीत जिसमें एक सेट बिट का अर्थ होता है
संबंधित बिट को साफ़ किया जाना है)। उदाहरण के लिए, “ug=rwx,o=” मास्क को इस प्रकार सेट करता है
फ़ाइलें "अन्य" द्वारा पढ़ने योग्य, लिखने योग्य या निष्पादन योग्य नहीं होंगी, और समकक्ष हैं
(अधिकांश प्रणालियों पर) ऑक्टल मास्क "007" तक।

अनलिया [-आदि] [नाम ...]
दिए गए नामों के उपनाम हटा दिए जाते हैं. यदि -a विकल्प का उपयोग किया जाता है, सभी उपनाम
हटा दिए गए हैं। यदि -t or -d विकल्पों का उपयोग किया जाता है, संकेतित संचालन किये जाते हैं
क्रमशः ट्रैक किए गए या निर्देशिका उपनामों पर।

सेट नहीं [-एफवी] प्राचल ...
नामित पैरामीटर को अनसेट करें (-v, डिफ़ॉल्ट) या फ़ंक्शंस (-f)। साथ में प्राचल[*],
विशेषताएँ रखी जाती हैं, केवल मान सेट नहीं होते हैं।

यदि किसी पैरामीटर में केवल पढ़ने योग्य विशेषता है तो निकास स्थिति गैर-शून्य है
सेट करें, अन्यथा शून्य।

प्रतीक्षा [काम ...]
निर्दिष्ट कार्य के समाप्त होने तक प्रतीक्षा करें। की निकास स्थिति प्रतीक्षा वह आखिरी का है
निर्दिष्ट कार्य; यदि अंतिम कार्य सिग्नल द्वारा समाप्त हो जाता है, तो निकास स्थिति 128 + है
सिग्नल की संख्या (देखें) हत्या -l निकास-स्थिति ऊपर); यदि अंतिम निर्दिष्ट कार्य नहीं हो सकता
पाया जा सकता है (क्योंकि यह कभी अस्तित्व में नहीं था, या पहले ही समाप्त हो चुका था), की निकास स्थिति प्रतीक्षा
127 है. देखें काम नियंत्रण के प्रारूप के लिए नीचे काम. प्रतीक्षा यदि कोई संकेत मिले तो वापस आ जाएगा
जिसके लिए एक जाल बिछाया गया है वह प्राप्त होता है, या यदि कोई SIGHUP, SIGINT, या SIGQUIT सिग्नल प्राप्त होता है
मिला है।

यदि कोई कार्य निर्दिष्ट नहीं है, प्रतीक्षा वर्तमान में चल रही सभी नौकरियों (यदि कोई हो) के लिए प्रतीक्षा करता है
समाप्त करें और शून्य स्थिति के साथ बाहर निकलें। यदि कार्य निगरानी सक्षम है, तो समापन
नौकरियों की स्थिति मुद्रित की जाती है (यह वह स्थिति नहीं है जब नौकरियों को स्पष्ट रूप से निर्दिष्ट किया जाता है)।

जहां से [-पीवी] [नाम ...]
के बिना -v विकल्प, यह वैसा ही है आदेश -v, सिवाय उपनामों के मुद्रित नहीं होते
उपनाम आदेश के रूप में। साथ -v विकल्प, यह बिल्कुल वैसा ही है आदेश -V. में
किसी भी मामले में, -p विकल्प भिन्न है: खोज पथ प्रभावित नहीं होता है जहां से, परंतु
खोज पथ तक ही सीमित है.

काम नियंत्रण
कार्य नियंत्रण से तात्पर्य उन कार्यों की निगरानी और नियंत्रण करने की शेल की क्षमता से है जो प्रक्रियाएं हैं या
कमांड या पाइपलाइनों के लिए बनाई गई प्रक्रियाओं के समूह। कम से कम, शेल ट्रैक रखता है
वर्तमान में मौजूद पृष्ठभूमि (यानी अतुल्यकालिक) नौकरियों की स्थिति; यह
का उपयोग करके जानकारी प्रदर्शित की जा सकती है नौकरियों आदेश. यदि कार्य नियंत्रण पूर्णतः सक्षम है
(का उपयोग करते हुए सेट -m or सेट -o मॉनिटर), जैसा कि यह इंटरैक्टिव शेल्स, किसी कार्य की प्रक्रियाओं के लिए है
उन्हें उनके अपने प्रक्रिया समूह में रखा गया है। सस्पेंड टाइप करके फ़ोरग्राउंड जॉब्स को रोका जा सकता है
टर्मिनल से चरित्र (सामान्यतः ^Z), नौकरियों को अग्रभूमि में या तो फिर से शुरू किया जा सकता है
पृष्ठभूमि का उपयोग कर fg और bg आदेश, और टर्मिनल की स्थिति सहेजी या पुनर्स्थापित की जाती है
जब किसी अग्रभूमि कार्य को क्रमशः रोका या पुनः प्रारंभ किया जाता है।

ध्यान दें कि केवल वे कमांड जो प्रक्रियाएं बनाते हैं (उदाहरण के लिए एसिंक्रोनस कमांड, सबशेल
कमांड, और गैर-अंतर्निहित, गैर-फ़ंक्शन कमांड) को रोका जा सकता है; जैसे आदेश पढ़ना नही सकता
हो।

जब कोई कार्य बनाया जाता है, तो उसे एक कार्य क्रमांक सौंपा जाता है। इंटरैक्टिव शेल के लिए, यह संख्या है
"[..]" के अंदर मुद्रित, उसके बाद कार्य में प्रक्रियाओं की प्रक्रिया आईडी
एसिंक्रोनस कमांड चलाया जाता है। किसी नौकरी का उल्लेख किया जा सकता है bg, fg, नौकरियों, हत्या, तथा प्रतीक्षा
कमांड या तो कमांड पाइपलाइन में अंतिम प्रक्रिया की प्रक्रिया आईडी द्वारा (जैसा कि संग्रहीत है)।
la $! पैरामीटर) या कार्य संख्या के पहले प्रतिशत चिह्न ('%') लगाकर। अन्य प्रतिशत
अनुक्रमों का उपयोग नौकरियों को संदर्भित करने के लिए भी किया जा सकता है:

%+ | %% | % सबसे हाल ही में रुकी हुई नौकरी, या, यदि कोई रुकी हुई नौकरियां नहीं हैं, तो सबसे पुरानी
चलाने का काम.

%- जो नौकरी होगी %+ यदि बाद वाला अस्तित्व में नहीं था तो नौकरी।

%n कार्य क्रमांक सहित कार्य n.

%?स्ट्रिंग वह कार्य जिसके कमांड में स्ट्रिंग है स्ट्रिंग (त्रुटि होती है यदि
एकाधिक नौकरियां मेल खाती हैं)।

%स्ट्रिंग इसकी कमांड वाला कार्य स्ट्रिंग से शुरू होता है स्ट्रिंग (त्रुटि होती है यदि
एकाधिक नौकरियां मेल खाती हैं)।

जब कोई कार्य स्थिति बदलता है (उदाहरण के लिए पृष्ठभूमि कार्य समाप्त हो जाता है या अग्रभूमि कार्य बंद हो जाता है), तो
शेल निम्नलिखित स्थिति जानकारी प्रिंट करता है:

[संख्या] झंडा हैसियत आदेश

कहाँ...

संख्या कार्य का कार्य क्रमांक है;

झंडा यदि कार्य है तो '+' या '-' वर्ण है %+ or %- नौकरी, क्रमशः, या स्थान
यदि यह दोनों नहीं है;

हैसियत कार्य की वर्तमान स्थिति को इंगित करता है और यह हो सकता है:

पूर्ण [संख्या]
नौकरी छूट गई. संख्या नौकरी की निकास स्थिति है जिसे छोड़ दिया गया है
यदि स्थिति शून्य है.

रनिंग कार्य न तो रुका है और न ही बाहर निकला है (ध्यान दें कि रनिंग नहीं है
अनिवार्य रूप से सीपीयू समय की खपत का मतलब है - प्रक्रिया अवरुद्ध हो सकती है
किसी घटना की प्रतीक्षा में)।

रोका हुआ [संकेत]
संकेत द्वारा काम बंद करा दिया गया संकेत (यदि कोई संकेत नहीं दिया गया है, तो
SIGTSTP द्वारा कार्य रोक दिया गया था)।

संकेत-विवरण ["मूल फेंका"]
कार्य एक सिग्नल द्वारा ख़त्म हो गया था (जैसे मेमोरी दोष, हैंगअप); उपयोग हत्या -l
सिग्नल विवरण की सूची के लिए। "कोर डंप" संदेश इंगित करता है
प्रक्रिया ने एक कोर फ़ाइल बनाई।

आदेश वह कमांड है जिसने प्रक्रिया बनाई है। यदि इसमें एकाधिक प्रक्रियाएँ हैं
कार्य, प्रत्येक प्रक्रिया में उसे दर्शाने वाली एक पंक्ति होगी आदेश और संभवतः यह हैसियत, अगर
यह पिछली प्रक्रिया की स्थिति से भिन्न है.

जब रुकी हुई अवस्था में नौकरियाँ होने पर शेल से बाहर निकलने का प्रयास किया जाता है
शेल उपयोगकर्ता को चेतावनी देता है कि कार्य बंद हो गए हैं और बाहर नहीं निकलता है। यदि कोई अन्य प्रयास है
तुरंत शेल से बाहर निकलने के लिए, रुके हुए कार्यों को एक SIGHUP सिग्नल और शेल भेजा जाता है
बाहर निकलता है. इसी प्रकार, यदि nohup विकल्प सेट नहीं है और प्रयास करने पर कार्य चल रहे हैं
लॉगिन शेल से बाहर निकलने के लिए बनाया गया है, शेल उपयोगकर्ता को चेतावनी देता है और बाहर नहीं निकलता है। यदि दूसरा
शेल से बाहर निकलने का तुरंत प्रयास किया जाता है, चल रहे कार्यों को एक SIGHUP सिग्नल भेजा जाता है और
खोल बाहर निकलता है.

POSIX मोड
प्रवेश कर रहा है सेट -o POSIX मोड का कारण बनेगा mksh स्थानों में और भी अधिक POSIX अनुरूप व्यवहार करने के लिए
जहां चूक या राय भिन्न हैं. ध्यान दें कि mksh अभी भी अहस्ताक्षरित के साथ काम करेगा
32-बिट अंकगणित; उपयोग एल.के.एस.एच यदि मेजबान पर अंकगणित है लंबा डेटा प्रकार, आईएसओ सी के साथ पूर्ण
अपरिभाषित व्यवहार, आवश्यक हैं; को देखें एल.के.एस.एच(1) विवरण के लिए मैनुअल पेज। कई अन्य
ऐतिहासिक, एटी एंड टी यूनिक्स क्ष-इसका उपयोग करके संगत, या वैचारिक मतभेदों को अक्षम किया जा सकता है
तरीका; ये हैं:

· जीएनयू खूब जोर से पीटना I / O पुनर्निर्देशन &>पट्टिका अब समर्थित नहीं है.

· I/O पुनर्निर्देशन द्वारा बनाए गए फ़ाइल डिस्क्रिप्टर चाइल्ड प्रक्रियाओं द्वारा विरासत में मिले हैं।

· अग्रणी अंक शून्य वाली संख्याओं की व्याख्या अष्टक के रूप में की जाती है।

· RSI गूंज बिल्टिन बैकस्लैश की व्याख्या नहीं करता है और केवल सटीक विकल्प का समर्थन करता है "-n".

· ... (सूची अधूरी है और R53 के लिए बदल सकती है)

SH मोड
अनुकूलता प्रणाली; ऐसी विरासती स्क्रिप्ट के साथ उपयोग के लिए अभिप्रेत है जिन्हें आसानी से ठीक नहीं किया जा सकता;
परिवर्तन इस प्रकार हैं:

· जीएनयू खूब जोर से पीटना I / O पुनर्निर्देशन &>पट्टिका अब समर्थित नहीं है.

· I/O पुनर्निर्देशन द्वारा बनाए गए फ़ाइल डिस्क्रिप्टर चाइल्ड प्रक्रियाओं द्वारा विरासत में मिले हैं।

· RSI गूंज बिल्टिन बैकस्लैश की व्याख्या नहीं करता है और केवल सटीक विकल्प का समर्थन करता है "-n".

· ... (सूची अधूरी है और R53 के लिए बदल सकती है)

इंटरैक्टिव निवेश line संपादन
शेल कमांड लाइनों को पढ़ने के तीन तरीकों का समर्थन करता है TTY(4) एक इंटरैक्टिव में
सत्र, द्वारा नियंत्रित Emacs, gmacs, तथा vi विकल्प (अधिकतम इनमें से एक को यहां सेट किया जा सकता है
एक बार)। डिफ़ॉल्ट है Emacs. संपादन मोड का उपयोग करके स्पष्ट रूप से सेट किया जा सकता है सेट निर्मित में।
यदि इनमें से कोई भी विकल्प सक्षम नहीं है, तो शेल सामान्य का उपयोग करके लाइनों को पढ़ता है TTY(4)
चालक। यदि Emacs or gmacs विकल्प सेट है, शेल एमएसीएस-जैसे संपादन की अनुमति देता है
आज्ञा; इसी प्रकार, यदि vi विकल्प सेट है, शेल vi जैसे संपादन की अनुमति देता है
आज्ञा। इन विधियों का निम्नलिखित अनुभागों में विस्तार से वर्णन किया गया है।

इन संपादन मोड में, यदि कोई पंक्ति स्क्रीन की चौड़ाई से अधिक लंबी है (कॉलम देखें)।
पैरामीटर), एक '>', '+', या '<' वर्ण अंतिम कॉलम में प्रदर्शित होता है जो दर्शाता है
इसके बाद, पहले और बाद में, या वर्तमान स्थिति से पहले और भी वर्ण हैं,
क्रमश। आवश्यकतानुसार लाइन को क्षैतिज रूप से स्क्रॉल किया जाता है।

पूरी की गई पंक्तियों को इतिहास में धकेल दिया जाता है, जब तक कि वे IFS ऑक्टेट या IFS से शुरू न हों
सफ़ेद स्थान, या पिछली पंक्ति के समान हैं।

Emacs संपादन मोड
जब Emacs विकल्प सेट है, इंटरैक्टिव इनपुट लाइन संपादन सक्षम है। चेतावनी: यह मोड
मूल कॉर्न शेल में इमैक मोड से थोड़ा अलग है। इस विधा में, विभिन्न
संपादन आदेश (आमतौर पर एक या अधिक नियंत्रण वर्णों से बंधे) तत्काल कार्रवाई का कारण बनते हैं
किसी नई पंक्ति की प्रतीक्षा किए बिना. कई संपादन आदेश विशेष नियंत्रण से बंधे हैं
जब शेल का आह्वान किया जाता है तो वर्ण; इन बाइंडिंग्स को का उपयोग करके बदला जा सकता है बाँध आदेश।

निम्नलिखित उपलब्ध संपादन आदेशों की एक सूची है। प्रत्येक विवरण से प्रारंभ होता है
कमांड का नाम, जिसके आगे कोलन लगा है; एक [n] (यदि कमांड को a के साथ उपसर्ग किया जा सकता है
गिनती करना); और कोई भी कुंजी जिससे कमांड डिफ़ॉल्ट रूप से बंधा हुआ है, कैरेट नोटेशन का उपयोग करके लिखा गया है
ASCII ESC वर्ण ^[ के रूप में लिखा गया है। ये नियंत्रण क्रम केस संवेदी नहीं हैं.
किसी कमांड के लिए गिनती उपसर्ग अनुक्रम ^[ का उपयोग करके दर्ज किया जाता हैn, जहां n 1 का क्रम है
या अधिक अंक. जब तक अन्यथा निर्दिष्ट न किया जाए, यदि कोई गिनती छोड़ दी जाती है, तो वह डिफ़ॉल्ट रूप से 1 हो जाती है।

ध्यान दें कि संपादन कमांड नामों का उपयोग केवल के साथ किया जाता है बाँध आज्ञा। इसके अलावा, कई
संपादन आदेश केवल दृश्यमान कर्सर वाले टर्मिनलों पर उपयोगी होते हैं। डिफ़ॉल्ट बाइंडिंग
संबंधित Emacs कुंजी बाइंडिंग से मिलते जुलते होने के लिए चुना गया था। उपयोगकर्ता का TTY(4) अक्षर
(जैसे ERASE) उचित विकल्प से बंधे हैं और डिफ़ॉल्ट बाइंडिंग को ओवरराइड करते हैं।

निरस्त करें: ^सी, ^जी
वर्तमान कमांड को निरस्त करें, लाइन बफ़र को खाली करें और निकास स्थिति को सेट करें
बाधित।

स्वत: सम्मिलित करें: [n]
बस चरित्र को शाब्दिक इनपुट के रूप में प्रदर्शित करने का कारण बनता है। सबसे साधारण पात्र
इससे बंधे हैं.

बैकवर्ड-चार: [n] ^बी, ^एक्सडी, एएनएसआई-करलेफ्ट, पीसी-करलेफ्ट
कर्सर को पीछे ले जाता है n अक्षर.

पिछड़ा-शब्द: [n] ^[बी, एएनएसआई-Ctrl-CurLeft, ANSI-Alt-CurLeft
कर्सर को शब्द के आरंभ में पीछे की ओर ले जाता है; शब्दों से मिलकर बनता है
अक्षरांकीय, अंडरस्कोर ('_'), और डॉलर चिह्न ('$') वर्ण।

इतिहास की शुरुआत: ^[
इतिहास की शुरुआत में ले जाता है.

लाइन की शुरुआत: ^ए, एएनएसआई-होम, पीसी-होम
कर्सर को संपादित इनपुट लाइन की शुरुआत में ले जाता है।

बड़े अक्षरों में शब्द: [n] ^[सी, ^[सी
पहले अक्षर को अगले अक्षर में अपरकेस करें n शब्द, कर्सर को अंत से आगे छोड़ते हुए
आखिरी शब्द का.

क्लियर-स्क्रीन: ^[^L
स्क्रीन को साफ़ करने और कर्सर को होम करने के लिए एक संकलन-समय कॉन्फ़िगर करने योग्य अनुक्रम प्रिंट करता है,
संपूर्ण प्रॉम्प्ट और वर्तमान में संपादित इनपुट लाइन को फिर से बनाता है। डिफ़ॉल्ट क्रम
लगभग सभी मानक टर्मिनलों के लिए काम करता है।

टिप्पणी: ^[#
यदि वर्तमान पंक्ति किसी टिप्पणी वर्ण से प्रारंभ नहीं होती है, तो एक को टिप्पणी वर्ण से प्रारंभ किया जाता है
लाइन की शुरुआत और लाइन दर्ज की गई है (मानो रिटर्न दबाया गया हो);
अन्यथा, मौजूदा टिप्पणी वर्ण हटा दिए जाते हैं और कर्सर को पर रख दिया जाता है
पंक्ति की शुरुआत.

पूर्ण: ^[^[
स्वचालित रूप से उतना पूरा करता है जितना कमांड नाम या फ़ाइल नाम में अद्वितीय है
कर्सर युक्त. यदि संपूर्ण शेष कमांड या फ़ाइल नाम अद्वितीय है, a
स्पेस को इसके पूरा होने के बाद मुद्रित किया जाता है, जब तक कि उस स्थिति में यह एक निर्देशिका नाम न हो
'/' जोड़ा गया है. यदि वर्तमान आंशिक शब्द के साथ कोई कमांड या फ़ाइल नाम नहीं है
इसके उपसर्ग के रूप में, एक घंटी वर्ण आउटपुट होता है (आमतौर पर एक बीप बजने का कारण बनता है)।

पूर्ण-कमांड: ^X^[
स्वचालित रूप से उतना ही पूरा करता है जितना कि आंशिक वाले कमांड नाम का अद्वितीय है
कर्सर को उसके उपसर्ग के रूप में शब्द दें, जैसे कि पूरा ऊपर आदेश.

पूर्ण फ़ाइल: ^[^X
आंशिक वाले फ़ाइल नाम का जितना अद्वितीय है उतना स्वचालित रूप से पूरा करता है
कर्सर को उसके उपसर्ग के रूप में शब्द दें, जैसे कि पूरा आदेश ऊपर वर्णित है.

पूरी सूची: ^I, ^[=
वर्तमान शब्द को जितना संभव हो उतना पूरा करें और जो संभव हो उसे सूचीबद्ध करें
इसके लिए पूर्णताएँ। यदि केवल एक पूर्णता संभव है, तो इस प्रकार मिलान करें पूरा
ऊपर आदेश. ध्यान दें कि ^I आमतौर पर TAB (टेबुलेटर) कुंजी द्वारा उत्पन्न होता है।

डिलीट-चार-बैकवर्ड: [n] मिटाएं, ^?, ^H
हटाता n कर्सर से पहले अक्षर.

डिलीट-चार-फॉरवर्ड: [n] एएनएसआई-डेल, पीसी-डेल
हटाता n कर्सर के बाद के अक्षर.

हटाएँ-शब्द-पिछड़ा: [n] वेयरसे, ^[^?, ^[^एच, ^[एच
हटाता n कर्सर से पहले शब्द.

डिलीट-वर्ड-फ़ॉरवर्ड: [n] ^[डी
कर्सर के बाद के अंत तक के अक्षर हटाता है n शब्द.

डाउन-इतिहास: [n] ^एन, ^एक्सबी, एएनएसआई-कर्डाउन, पीसी-कर्डाउन
इतिहास बफ़र को आगे स्क्रॉल करता है n पंक्तियाँ (बाद में)। प्रत्येक इनपुट लाइन मूल रूप से
इतिहास बफ़र में अंतिम प्रविष्टि के ठीक बाद शुरू होता है, इसलिए डाउन-इतिहास नहीं है
दोनों में से किसी एक तक उपयोगी खोज इतिहास, खोज-इतिहास-ऊपर or उप-इतिहास कर दिया गया है
प्रदर्शन किया।

डाउनकेस-शब्द: [n] ^[एल, ^[एल
अगले को छोटा करें n शब्द.

संपादन-पंक्ति: [n] ^एक्सई
पंक्ति संपादित करें n या वर्तमान लाइन, यदि निर्दिष्ट नहीं है, तो अंतःक्रियात्मक रूप से। वास्तविक
आदेश निष्पादित है fc -e ${दृश्य:-${संपादक:-vi}} n.

इतिहास का अंत: ^[>
इतिहास के अंत की ओर बढ़ता है।

लाइन का अंत: ^ई, एएनएसआई-एंड, पीसी-एंड
कर्सर को इनपुट लाइन के अंत तक ले जाता है।

ईओटी: ^_
फ़ाइल के अंत के रूप में कार्य करता है; यह उपयोगी है क्योंकि संपादन-मोड इनपुट सामान्य रूप से अक्षम हो जाता है
टर्मिनल इनपुट कैनोनिकलाइज़ेशन।

ईओटी-या-डिलीट: [n] ^डी
के समान एक्ट करें EOT यदि किसी लाइन पर अकेला हो; अन्यथा के रूप में कार्य करता है डिलीट-चार-फॉरवर्ड.

त्रुटि: (बाध्य नहीं)
त्रुटि (घंटी बजाओ)।

विनिमय-बिंदु-और-चिह्न: ^X^X
कर्सर को वहां रखता है जहां निशान है और निशान को वहां सेट करता है जहां कर्सर था।

विस्तार-फ़ाइल: ^[*
वर्तमान शब्द में '*' जोड़ता है और शब्द को परिणाम से बदल देता है
शब्द पर फ़ाइल ग्लोबिंग करना। यदि कोई फ़ाइल पैटर्न से मेल नहीं खाती है, तो घंटी है
डंडा.

फॉरवर्ड-चार: [n] ^F, ^XC, ANSI-CurRight, PC-CurRight
कर्सर को आगे ले जाता है n अक्षर.

आगे-शब्द: [n] ^[f, ANSI-Ctrl-CurRight, ANSI-Alt-CurRight
कर्सर को के अंत तक आगे ले जाता है nवां शब्द.

गोटो-इतिहास: [n] ^[जी
इतिहास संख्या में जाता है n.

किल-लाइन: मार डालो
संपूर्ण इनपुट लाइन हटा देता है.

हत्या-क्षेत्र: ^डब्ल्यू
कर्सर और चिह्न के बीच के इनपुट को हटा देता है।

किल-टू-ईओएल: [n] ^के
यदि कर्सर से पंक्ति के अंत तक इनपुट हटा देता है n निर्दिष्ट नहीं है;
अन्यथा कर्सर और कॉलम के बीच के अक्षर हटा देता है n.

सूची: ^[?
कमांड नामों या फ़ाइल नामों (यदि कोई हो) की एक क्रमबद्ध, स्तंभित सूची प्रिंट करता है
कर्सर वाले आंशिक शब्द को पूरा करें। निर्देशिका नाम में '/' जोड़ा गया है
उनको।

सूची-कमांड: ^X?
कमांड नामों (यदि कोई हो) की एक क्रमबद्ध, स्तंभित सूची प्रिंट करता है जो पूरा कर सकता है
कर्सर युक्त आंशिक शब्द.

सूची-फ़ाइल: ^X^Y
फ़ाइल नामों (यदि कोई हो) की एक क्रमबद्ध, स्तंभित सूची प्रिंट करता है जो पूरा कर सकता है
कर्सर युक्त आंशिक शब्द. फ़ाइल प्रकार संकेतक वर्णित अनुसार जोड़े गए हैं
के अंतर्गत सूची ऊपर।

न्यूलाइन: ^जे, ^एम
वर्तमान इनपुट लाइन को शेल द्वारा संसाधित करने का कारण बनता है। वर्तमान कर्सर
स्थिति लाइन पर कहीं भी हो सकती है.

न्यूलाइन-एंड-नेक्स्ट: ^O
वर्तमान इनपुट लाइन को शेल द्वारा संसाधित किया जाता है, और अगली पंक्ति को शेल द्वारा संसाधित किया जाता है
इतिहास वर्तमान रेखा बन जाता है। यह केवल एक के बाद ही उपयोगी है उप-इतिहास,
खोज इतिहास or खोज-इतिहास-ऊपर.

नो-ऑप: छोड़ो
यह कुछ नहीं करता.

उपसर्ग-1: ^[
2-वर्ण कमांड अनुक्रम का परिचय देता है।

उपसर्ग-2: ^X, ^[[, ^[O
2-वर्ण कमांड अनुक्रम का परिचय देता है।

पिछला-इतिहास-शब्द: [n] ^[., ^[_
अंतिम शब्द, या, यदि दिया जाए, तो nपिछले का वां शब्द (शून्य-आधारित) (दोहराए जाने पर)।
निष्पादन, दूसरा-अंतिम, तीसरा-अंतिम, आदि) कमांड कर्सर पर डाला जाता है। का उपयोग
यह संपादन आदेश चिह्न को मिटा देता है।

उद्धरण: ^^, ^वी
निम्नलिखित वर्ण को संपादन आदेश के बजाय शाब्दिक रूप से लिया गया है।

पुनः बनाएं: ^एल
प्रॉम्प्ट स्ट्रिंग की अंतिम पंक्ति और वर्तमान इनपुट लाइन को एक नए पर पुनः प्रिंट करता है
लाइन.

खोज-वर्ण-पिछड़ा: [n] ^[^]
के लिए वर्तमान पंक्ति में पीछे की ओर खोजें nअगले चरित्र की घटना
टाइप किया हुआ.

खोज-चरित्र-आगे: [n] ^]
के लिए वर्तमान पंक्ति में आगे खोजें nअगले चरित्र की घटना
टाइप किया हुआ.

खोज-इतिहास: ^आर
वृद्धिशील खोज मोड दर्ज करें. आंतरिक इतिहास सूची को पीछे की ओर खोजा जाता है
इनपुट से मेल खाने वाले आदेश। खोज स्ट्रिंग में प्रारंभिक '^' एंकर होता है
खोजना। एस्केप कुंजी खोज मोड छोड़ देगी। अनुक्रम सहित अन्य आदेश
भागने के रूप में उपसर्ग-1 इसके बाद ए उपसर्ग-1 or उपसर्ग-2 कुंजी के बाद निष्पादित किया जाएगा
खोज मोड छोड़ रहा हूँ. गर्भपात (^G) कमांड पहले इनपुट लाइन को पुनर्स्थापित करेगा
खोज शुरू हुई. क्रमिक खोज इतिहास आदेश पीछे की ओर खोज जारी रखते हैं
पैटर्न की अगली पिछली घटना। इतिहास बफ़र केवल a को बरकरार रखता है
पंक्तियों की सीमित संख्या; सबसे पुराने को आवश्यकतानुसार त्याग दिया जाता है।

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

खोज-इतिहास-डाउन: एएनएसआई-पीजीडीएन, पीसी-पीजीडीएन
इतिहास बफ़र के माध्यम से उन आदेशों को आगे खोजें जिनकी शुरुआत मेल खाती है
कर्सर से पहले इनपुट लाइन का भाग। जब एक खाली लाइन पर उपयोग किया जाता है, तो यह होता है
जैसा ही प्रभाव डाउन-इतिहास. यह केवल एक के बाद ही उपयोगी है उप-इतिहास,
खोज इतिहास or खोज-इतिहास-ऊपर.

सेट-मार्क-कमांड: ^[
कर्सर स्थिति पर चिह्न सेट करें.

ट्रांसपोज़-वर्ण: ^टी
यदि पंक्ति के अंत में, या यदि gmacs विकल्प सेट है, यह दोनों का आदान-प्रदान करता है
पिछले पात्र; अन्यथा, यह पिछले और वर्तमान वर्णों का आदान-प्रदान करता है और
कर्सर को एक अक्षर दाईं ओर ले जाता है।

उप-इतिहास: [n] ^P, ^XA, ANSI-CurUp, PC-CurUp
इतिहास बफ़र को पीछे की ओर स्क्रॉल करता है n पंक्तियाँ (पहले)।

अपरकेस-शब्द: [n] ^[यू, ^[यू
अगला अपरकेस n शब्द.

संस्करण: ^[^वी
का संस्करण प्रदर्शित करें mksh. वर्तमान संपादन बफ़र एक कुंजी के रूप में जल्द ही बहाल हो जाता है
दबाया जाता है. पुनर्स्थापना कुंजी दबाने पर कार्रवाई की जाती है, जब तक कि यह एक स्थान न हो।

यैंक: ^Y
वर्तमान कर्सर स्थिति में सबसे हाल ही में समाप्त की गई टेक्स्ट स्ट्रिंग सम्मिलित करता है।

यैंक-पॉप: ^[y
इसके तुरंत बाद ए झटका, सम्मिलित टेक्स्ट स्ट्रिंग को पहले वाले अगले से बदल देता है
पाठ स्ट्रिंग को मार डाला।

Vi संपादन मोड
नोट: Vi कमांड-लाइन संपादन मोड अनाथ है, फिर भी कार्यात्मक है। यह 8-बिट साफ़ है
लेकिन विशेष रूप से UTF-8 या MBCS का समर्थन नहीं करता।

Vi कमांड-लाइन संपादक में mksh मूल रूप से वही कमांड हैं vi(1) संपादक के साथ
निम्नलिखित अपवाद:

· आप इन्सर्ट मोड में प्रारंभ करें।

· फ़ाइल का नाम और कमांड पूरा करने के आदेश हैं: =, \, *, ^X, ^E, ^F, और,
वैकल्पिक रूप से, और .

· RSI _ कमांड अलग है (में mksh, यह अंतिम तर्क आदेश है; में vi(1) यह जाता है
वर्तमान लाइन की शुरुआत तक)।

· RSI / और G आदेश विपरीत दिशा में चलते हैं j आदेश।

· जो आदेश एक पंक्ति संपादक में समझ में नहीं आते हैं वे उपलब्ध नहीं हैं (उदाहरण के लिए स्क्रीन
आंदोलन आदेश और ex(1)-स्टाइल कोलन (:) आदेश).

पसंद vi(1), दो मोड हैं: "इन्सर्ट" मोड और "कमांड" मोड। इन्सर्ट मोड में, अधिकांश
अक्षर टाइप होते ही वर्तमान कर्सर स्थिति में बफ़र में डाल दिए जाते हैं;
हालाँकि, कुछ पात्रों के साथ विशेष व्यवहार किया जाता है। विशेषतः निम्नलिखित पात्र हैं
करंट से लिया गया TTY(4) सेटिंग्स (देखें स्टट्टी(1)) और उनके सामान्य अर्थ (सामान्य मूल्य) हैं
कोष्ठक में हैं): मारें (^U), मिटाएं (^?), मिटाएं (^W), eof (^D), intr (^C), और छोड़ें (^\)।
उपरोक्त के अलावा, निम्नलिखित वर्णों का भी विशेष रूप से सम्मिलन में व्यवहार किया जाता है
मोड:

^ई कमांड और फ़ाइल नाम गणना (नीचे देखें)।

^एफ कमांड और फ़ाइल नाम पूरा करना (नीचे देखें)। यदि लगातार दो बार उपयोग किया जाता है, तो की सूची
संभावित पूर्णताएँ प्रदर्शित होती हैं; यदि तीसरी बार उपयोग किया जाता है, तो पूर्णता पूर्ववत हो जाती है।

^H पिछला वर्ण मिटा देता है.

^जे | ^एम पंक्ति का अंत. वर्तमान लाइन को शेल द्वारा पढ़ा, पार्स और निष्पादित किया जाता है।

^V शाब्दिक अगला। टाइप किया गया अगला अक्षर विशेष रूप से व्यवहार नहीं किया जाता है (इसका उपयोग किया जा सकता है)।
यहां वर्णित वर्ण सम्मिलित करें)।

^X कमांड और फ़ाइल नाम विस्तार (नीचे देखें)।

संपादक को कमांड मोड में रखता है (नीचे देखें)।

वैकल्पिक फ़ाइल नाम और कमांड पूर्णता (देखें ^F ऊपर), के साथ सक्षम सेट -o
vi-टैबपूर्ण.

कमांड मोड में, प्रत्येक अक्षर को एक कमांड के रूप में समझा जाता है। ऐसे पात्र जो ऐसा नहीं करते
आदेशों के अनुरूप, आदेशों के अवैध संयोजन हैं, या ऐसे आदेश हैं जो नहीं हो सकते
किया गया, सभी बीप का कारण बनते हैं। निम्नलिखित कमांड विवरण में, एक [n] इंगित करता है
कमांड के पहले एक संख्या लगाई जा सकती है (उदाहरणार्थ) 10l दायीं ओर 10 अक्षर चलता है); यदि कोई संख्या नहीं है
उपसर्ग का प्रयोग किया जाता है, n जब तक अन्यथा निर्दिष्ट न हो, 1 माना जाता है। शब्द "वर्तमान"।
स्थिति" कर्सर और कर्सर से पहले वाले वर्ण के बीच की स्थिति को संदर्भित करती है।
एक "शब्द" अक्षरों, अंकों और अंडरस्कोर वर्णों का एक क्रम या गैर-अंकों का एक क्रम है
अक्षर, गैर-अंकीय, गैर-अंडरस्कोर और गैर-व्हाट्सएप वर्ण (उदाहरण के लिए "ab2*&^" में दो शामिल हैं
शब्द) और "बड़ा-शब्द" गैर-व्हाट्सएप वर्णों का एक क्रम है।

विशिष्ट mksh vi आदेश:

निम्नलिखित कमांड सामान्य vi फ़ाइल संपादक में नहीं हैं, या उससे भिन्न हैं:

[n]_ के बाद एक स्थान डालें nइतिहास के आखिरी आदेश से वां बड़ा शब्द
वर्तमान स्थिति पर और इन्सर्ट मोड दर्ज करें; अगर n निर्दिष्ट नहीं है, अंतिम
शब्द डाला गया है.

# वर्तमान पंक्ति के आरंभ में टिप्पणी वर्ण ('#') डालें और वापस लौटें
शेल की रेखा (के बराबर) मैं#^जे).

[n]जी लाइक G, सिवाय अगर n निर्दिष्ट नहीं है, यह सबसे हाल ही में याद किए गए पर जाता है
लाइन.

[n]v पंक्ति संपादित करें n का उपयोग vi(1) संपादक; अगर n निर्दिष्ट नहीं है, वर्तमान पंक्ति है
संपादित. निष्पादित वास्तविक आदेश है fc -e ${दृश्य:-${संपादक:-vi}} n.

* और ^X कमांड या फ़ाइल नाम विस्तार को वर्तमान बड़े-शब्द (एक के साथ) पर लागू किया जाता है
यदि शब्द में कोई फ़ाइल ग्लोबिंग वर्ण नहीं है तो '*' जोड़ा गया है) - बड़ा शब्द है
परिणामी शब्दों से प्रतिस्थापित किया गया। यदि वर्तमान बड़ा-शब्द सबसे पहले है
पंक्ति या ';', '|', '&', '(', या ')' वर्णों में से किसी एक का अनुसरण करती है, और नहीं
एक स्लैश ('/') शामिल करें, फिर कमांड विस्तार किया जाता है; अन्यथा फ़ाइल नाम
विस्तार किया गया है. कमांड विस्तार सभी के खिलाफ बड़े-शब्द से मेल खाएगा
उपनाम, फ़ंक्शंस, और अंतर्निहित कमांड के साथ-साथ कोई भी निष्पादन योग्य फ़ाइलें मिलीं
PATH पैरामीटर में निर्देशिकाओं को खोजकर। फ़ाइल नाम विस्तार मेल खाता है
वर्तमान निर्देशिका में फ़ाइलों के विरुद्ध बड़ा शब्द। विस्तार के बाद,
कर्सर अंतिम शब्द के ठीक आगे रखा गया है और संपादक इन्सर्ट मोड में है।

[n]\, [n]^एफ, [n] , और [n]
कमांड/फ़ाइल नाम पूरा करना। वर्तमान बड़े शब्द को सबसे लंबे शब्द से बदलें
कमांड और फ़ाइल नाम विस्तार करने के बाद प्राप्त अद्वितीय मिलान।
केवल तभी पहचाना जाता है जब vi-टैबपूर्ण विकल्प सेट है, जबकि केवल है
मान्यता प्राप्त यदि vi-escपूर्ण विकल्प सेट है (देखें) सेट -o)। अगर n अधिकृत है,
la nसंभावित पूर्णता का चयन किया गया है (जैसा कि कमांड/फ़ाइल नाम द्वारा रिपोर्ट किया गया है
गणना आदेश).

= और ^ई कमांड/फ़ाइल नाम गणना। उन सभी कमांड या फ़ाइलों की सूची बनाएं जो मेल खाते हों
वर्तमान बड़ा शब्द.

^V का संस्करण प्रदर्शित करें mksh. जैसे ही वर्तमान संपादन बफ़र बहाल हो जाता है
कुंजी दबायी गयी है. पुनर्स्थापना कुंजी दबाने पर ध्यान नहीं दिया जाता है.

@c स्थूल विस्तार. उपनाम में पाए गए आदेशों को निष्पादित करें c.

इंट्रा-लाइन मूवमेंट कमांड:

[n]हाथ [n]^एच
बाएं खिसको n अक्षर.

[n]भूमि [n]
दाएँ चले n अक्षर.

0 कॉलम 0 पर जाएँ।

^ पहले गैर-व्हाट्सएप वर्ण पर जाएँ।

[n]| कॉलम पर ले जाएँ n.

$ अंतिम अक्षर पर जाएँ.

[n]बी पीछे हटो n शब्द.

[n]बी पीछे हटो n बड़े शब्द।

[n]ई शब्द के अंत तक आगे बढ़ें, n बार.

[n]ई बड़े शब्द के अंत तक आगे बढ़ें, n बार.

[n]डब्ल्यू आगे बढ़ें n शब्द.

[n]डब्ल्यू आगे बढ़ें n बड़े शब्द।

% जोड़ी मिलाओ। संपादक निकटतम कोष्ठक, ब्रैकेट या ब्रेस की प्रतीक्षा करता है
और फिर कर्सर को मिलान वाले कोष्ठक, ब्रैकेट या ब्रेस पर ले जाता है।

[n]fc की ओर आगे बढ़ें nचरित्र की घटना c.

[n]Fc की ओर पीछे की ओर जाएँ nचरित्र की घटना c.

[n]tc के ठीक पहले आगे बढ़ें nचरित्र की घटना c.

[n]Tc के ठीक पहले पीछे की ओर जाएँ nचरित्र की घटना c.

[n]; अंतिम दोहराता है f, F, tया, T आदेश।

[n], अंतिम को दोहराता है f, F, tया, T आदेश देता है, लेकिन विपरीत दिशा में चलता है।

अंतर-पंक्ति संचलन आदेश:

[n]जे, [n]+, और [n]^एन
में ले जाएँ nइतिहास की अगली पंक्ति.

[n]क, [n]-, और [n]^पी
में ले जाएँ nइतिहास की पिछली पंक्ति.

[n]जी लाइन पर जाएँ n इतिहास में; अगर n निर्दिष्ट नहीं है, पहले की संख्या
स्मरणीय पंक्ति का प्रयोग किया गया है।

[n]जी लाइक G, सिवाय अगर n निर्दिष्ट नहीं है, यह सबसे हाल ही में याद की गई पंक्ति पर जाता है।

[n]/स्ट्रिंग
इतिहास में पीछे जाकर खोजें nवें पंक्ति युक्त स्ट्रिंग; अगर स्ट्रिंग
'^' से शुरू होता है, स्ट्रिंग का शेष भाग इतिहास की शुरुआत में दिखाई देना चाहिए
इसके मिलान के लिए लाइन।

[n]?स्ट्रिंग
के समान /, सिवाय इसके कि यह इतिहास के माध्यम से आगे की खोज करता है।

[n]n खोजें nअंतिम खोज स्ट्रिंग की घटना; खोज की दिशा
अंतिम खोज के समान ही है.

[n]एन खोजें nअंतिम खोज स्ट्रिंग की घटना; खोज की दिशा
अंतिम खोज के विपरीत है.

एएनएसआई-कर्अप, पीसी-पीजीयूपी
पंक्ति के आरंभ से लेकर वर्तमान कर्सर स्थिति तक के वर्णों को इस प्रकार लें
स्ट्रिंग खोजें और इससे शुरू होने वाली पंक्तियों के लिए पीछे की ओर इतिहास खोजें
डोरी; कर्सर की स्थिति रखें. यह केवल इन्सर्ट मोड में काम करता है और इसे रखता है
सक्षम होना चाहिए।

आदेश संपादित करें

[n]एक पाठ जोड़ें n समय; वर्तमान स्थिति के ठीक बाद इन्सर्ट मोड में चला जाता है।
एपेंड केवल तभी दोहराया जाता है जब कमांड मोड दोबारा दर्ज किया जाता है प्रयोग किया जाता है।

[n]ए जैसा ही a, सिवाय इसके कि यह पंक्ति के अंत में जुड़ता है।

[n]मैं टेक्स्ट सम्मिलित करता हूं n समय; वर्तमान स्थिति में इन्सर्ट मोड में चला जाता है। प्रविष्टि
केवल तभी दोहराया जाता है जब कमांड मोड दोबारा दर्ज किया जाता है प्रयोग किया जाता है।

[n]मैं भी वैसा ही हूं i, सिवाय इसके कि सम्मिलन पहले गैर-रिक्त वर्ण से ठीक पहले किया जाता है।

[n] अगला स्थानापन्न करें n अक्षर (अर्थात अक्षर हटाएं और सम्मिलित करें
मोड)।

एस स्थानापन्न पूरी पंक्ति. पहले गैर-रिक्त वर्ण से अंत तक सभी वर्ण
पंक्ति का भाग हटा दिया जाता है और इन्सर्ट मोड दर्ज किया जाता है।

[n]cचाल-cmd
वर्तमान स्थिति से परिणामी स्थिति में परिवर्तन n चाल-cmdसी ई
संकेतित क्षेत्र को हटाएं और इन्सर्ट मोड में जाएं); अगर चाल-cmd is c, रेखा
पहले गैर-रिक्त वर्ण से प्रारंभ करके परिवर्तन किया जाता है।

C वर्तमान स्थिति से पंक्ति के अंत तक बदलें (अर्थात पंक्ति के अंत तक हटाएँ)।
लाइन और इन्सर्ट मोड में जाएं)।

[n]x अगला हटाएं n अक्षर.

[n]X पिछला हटाएँ n अक्षर.

D पंक्ति के अंत तक हटाएँ.

[n]dचाल-cmd
वर्तमान स्थिति से परिणामी स्थिति तक हटाएँ n चाल-cmds;
चाल-cmd एक मूवमेंट कमांड है (ऊपर देखें) या d, जिस स्थिति में वर्तमान लाइन है
नष्ट कर दिया।

[n]rc अगले को बदलें n चरित्र के साथ पात्र c.

[n]आर बदलें. सम्मिलित मोड दर्ज करें लेकिन सम्मिलित करने के बजाय मौजूदा वर्णों को अधिलेखित करें
मौजूदा पात्रों से पहले. प्रतिस्थापन दोहराया जाता है n बार.

[n]~ अगले का केस बदलें n अक्षर.

[n]yचाल-cmd
वर्तमान स्थिति से परिणामी स्थिति तक यांक n चाल-cmds में
यांक बफ़र; अगर चाल-cmd is y, पूरी लाइन झटक दी गई है।

Y यांक वर्तमान स्थिति से पंक्ति के अंत तक।

[n]p यैंक बफ़र की सामग्री को वर्तमान स्थिति के ठीक बाद चिपकाएँ, n बार.

[n]पी के समान p, सिवाय इसके कि बफ़र को वर्तमान स्थिति में चिपकाया गया है।

विविध vi आदेश

^जे और ^एम
वर्तमान लाइन को शेल द्वारा पढ़ा, पार्स और निष्पादित किया जाता है।

^एल और ^आर
वर्तमान लाइन को फिर से बनाएं.

[n]. अंतिम संपादन आदेश पुनः करें n बार.

आप अंतिम संपादन आदेश को पूर्ववत करें।

यू वर्तमान लाइन में किए गए सभी परिवर्तनों को पूर्ववत करें।

पीसी होम, एंड, डेल और कर्सर कुंजियाँ
वे इन्सर्ट और कमांड मोड दोनों में अपेक्षा के अनुरूप चलते हैं।

विस्मयबोधक और छोड़ना
इंटरप्ट और क्विट टर्मिनल वर्णों के कारण वर्तमान लाइन डिलीट हो जाती है और
मुद्रित करने के लिए एक नया संकेत.

onworks.net सेवाओं का उपयोग करके ऑनलाइन mksh का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम