यह कमांड आरसी है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।
कार्यक्रम:
नाम
आरसी - खोल
SYNOPSIS
rc [-deiIlnopsvx] [-c आदेश] [तर्क]
वर्णन
rc एक कमांड इंटरप्रेटर और प्रोग्रामिंग भाषा के समान है sh(1). यह पर आधारित है
इसी नाम का AT&T प्लान 9 शेल। शेल सी-जैसा सिंटैक्स प्रदान करता है (इससे कहीं अधिक)।
सी शेल), और चर में हेरफेर करने के लिए एक शक्तिशाली तंत्र। यह यथोचित छोटा है
और यथोचित तेज़, विशेषकर जब समसामयिक सीपियों से तुलना की जाए। इसका उपयोग अभीष्ट है
इंटरैक्टिव होने के लिए, लेकिन भाषा स्वयं को स्क्रिप्ट के लिए अच्छी तरह से उधार देती है।
विकल्प
-सी यदि -सी मौजूद है, तो कमांड तुरंत निम्नलिखित तर्क से निष्पादित होते हैं।
कोई और तर्क rc $* में रखे गए हैं। इस प्रकार:
आरसी -सी 'इको $*' 1 2 3
प्रिंट आउट
1 2 3
-d यह ध्वज कारण बनता है rc SIGQUIT या SIGTERM को नजरअंदाज न करें। इस प्रकार rc डंप करने के लिए बनाया जा सकता है
यदि भेजा जाए तो कोर SIGQUIT. यह फ़्लैग केवल डिबगिंग के लिए उपयोगी है rc.
-ई यदि -ई ध्वज मौजूद है, तो rc यदि कमांड की निकास स्थिति है तो बाहर निकल जाएगा
असत्य (अशून्य)। rc हालाँकि, यदि कोई सशर्त विफल हो जाता है, तो बाहर नहीं निकलेंगे, उदाहरण के लिए, एक if()
आदेश।
-i यदि -i ध्वज मौजूद है या यदि इनपुट है rc एक टर्मिनल से है (जैसा निर्धारित किया गया है)।
by इसट्टी(3)) फिर rc में होगा इंटरैक्टिव तरीका। अर्थात्, एक संकेत (से)
$शीघ्र(1)) इनपुट लाइन लेने से पहले मुद्रित किया जाएगा, और rc नजरअंदाज कर देंगे
हस्ताक्षर.
-I यदि -I ध्वज मौजूद है, या यदि इनपुट है rc तो फिर, यह किसी टर्मिनल से नहीं है rc
इंटरैक्टिव मोड में नहीं होगा. कोई संकेत मुद्रित नहीं किया जाएगा, और SIGINT कारण बनेगा
rc बाहर निकलने के लिए।
-l यदि -l ध्वज मौजूद है, या यदि rcतो argv[0][0] एक डैश (-) है rc क्या रखना होगा
लॉगिन शेल के रूप में। अर्थात्, यदि यह फ़ाइल है, तो यह $home/.rcrc से कमांड चलाएगा
किसी अन्य इनपुट को पढ़ने से पहले मौजूद है।
-n यह ध्वज कारण बनता है rc इसके इनपुट को पढ़ने और इसे पार्स करने के लिए, लेकिन किसी को निष्पादित करने के लिए नहीं
आदेश. यह स्क्रिप्ट पर सिंटैक्स जाँच के लिए उपयोगी है। यदि संयोजन में उपयोग किया जाए
-x ध्वज के साथ, rc प्रत्येक कमांड को उसी रूप में पार्स किए जाने पर प्रिंट करेगा
जिसका उपयोग पर्यावरण में कार्यों को निर्यात करने के लिए किया जाता है।
-o यह ध्वज फ़ाइल पर /dev/null खोलने का प्रयास करने की सामान्य प्रथा को रोकता है
डिस्क्रिप्टर 0, 1, और 2, यदि इनमें से कोई भी डिस्क्रिप्टर इनहेरिट किया गया है तो बंद कर दिया गया है।
-p यह ध्वज रोकता है rc पर्यावरण से शेल फ़ंक्शंस प्रारंभ करने से। यह
की अनुमति देता है rc संरक्षित मोड में चलाना, जिससे यह और अधिक कठिन हो जाता है rc
वातावरण में गलत कमांड रखकर स्क्रिप्ट को विकृत किया जाना है। (ध्यान दें कि
इस झंडे की मौजूदगी से पता चलता है नहीं इसका मतलब है कि setuid चलाना सुरक्षित है rc स्क्रिप्ट;
सेतुइड बिट के बारे में सामान्य चेतावनियाँ अभी भी लागू होती हैं।)
-s यह ध्वज कारण बनता है rc मानक इनपुट से पढ़ने के लिए. कोई भी तर्क $* में रखा जाता है।
-v यह ध्वज कारण बनता है rc जैसे ही इसे पढ़ा जाता है, इसके इनपुट को मानक त्रुटि में प्रतिध्वनित करना।
-x यह ध्वज कारण बनता है rc प्रत्येक कमांड को निष्पादित होने से पहले मानक त्रुटि पर प्रिंट करना।
यह डिबगिंग के लिए उपयोगी हो सकता है rc स्क्रिप्ट।
कमानों
एक साधारण कमांड शब्दों का एक क्रम है, जो सफेद स्थान (स्पेस और टैब) द्वारा अलग किया जाता है
वे वर्ण जो एक नई पंक्ति, अर्धविराम (;), या एम्परसेंड (&) के साथ समाप्त होते हैं। ए का पहला शब्द
कमांड उस कमांड का नाम है. यदि नाम /, ./, या ../ से शुरू होता है, तो नाम
निष्पादन योग्य फ़ाइल को संदर्भित करने वाले पूर्ण पथ नाम के रूप में उपयोग किया जाता है। अन्यथा, का नाम
कमांड को शेल फ़ंक्शंस की तालिका, बिल्ट-इन कमांड या फ़ाइल के रूप में देखा जाता है
$path द्वारा नामित निर्देशिकाएँ।
पृष्ठभूमि कार्य
& से समाप्त होने वाला एक कमांड पृष्ठभूमि में चलाया जाता है; अर्थात शेल तुरंत वापस आ जाता है
आदेश के पूरा होने की प्रतीक्षा करने के बजाय। बैकग्राउंड कमांड में /dev/null है
उनके मानक इनपुट से जुड़ा हुआ है जब तक कि मानक इनपुट के लिए कोई स्पष्ट पुनर्निर्देशन न हो
उपयोग किया गया।
सदस्यता
एट-साइन (@) के साथ उपसर्ग वाला एक कमांड एक सबशेल में निष्पादित किया जाता है। यह इंसुलेट करता है
राज्य परिवर्तन संचालन के प्रभाव से मूल शैल जैसे कि cd या एक चर
कार्यभार। उदाहरण के लिए:
@ {सीडी ..; बनाना}
दौड़ेगा बनाना(1) मूल निर्देशिका में (..), लेकिन शेल को चालू में चालू छोड़ देता है
निर्देशिका.
लाइन सिलसिला
प्रत्येक पंक्ति को समाप्त करके एक लंबी तार्किक रेखा को कई भौतिक रेखाओं पर जारी रखा जा सकता है
(अंतिम को छोड़कर) बैकस्लैश (\) के साथ। बैकस्लैश-न्यूलाइन अनुक्रम को इस प्रकार माना जाता है
अंतरिक्ष। बैकस्लैश अन्यथा विशेष नहीं है rc. (इसके अलावा, अंदर के उद्धरण a
बैकस्लैश अपना विशेष अर्थ खो देता है, भले ही उसके बाद कोई नई लाइन आती हो।)
का हवाला देते हुए
rc अनेक पात्रों की विशेष व्याख्या करता है; विशेष वर्ण स्वतः समाप्त हो जाते हैं
शब्द। निम्नलिखित पात्र विशेष हैं:
# ; और | ^ $ = ` ' { } ( ) < >
एकल उद्धरण (') स्वयं के अलावा किसी अन्य चरित्र के विशेष उपचार को रोकता है। सभी
वर्ण, जिसमें नियंत्रण वर्ण, न्यूलाइन और दो उद्धरणों के बीच बैकस्लैश शामिल हैं
वर्णों को एक अव्याख्यायित स्ट्रिंग के रूप में माना जाता है। एक उद्धरण चरित्र को स्वयं उद्धृत किया जा सकता है
एक पंक्ति में दो उद्धरण रखकर. उद्धरण वर्ण दर्ज करने के लिए आवश्यक न्यूनतम अनुक्रम
है ''''। खाली स्ट्रिंग को '' द्वारा दर्शाया गया है। इस प्रकार:
प्रतिध्वनि 'क्या योजना है, स्टेन?'
प्रिंट आउट
क्या योजना है, स्टेन?
संख्या चिह्न (#) से टिप्पणी शुरू होती है rc. तक के सभी पात्र लेकिन इसमें शामिल नहीं हैं
अगली नई पंक्ति को नजरअंदाज कर दिया जाता है। ध्यान दें कि बैकस्लैश निरंतरता a के अंदर काम नहीं करती है
टिप्पणी, यानी, बैकस्लैश को बाकी सभी चीजों के साथ नजरअंदाज कर दिया जाता है।
समूहीकरण
शून्य या अधिक कमांड को ब्रेसिज़ ("{" और "}") के भीतर समूहीकृत किया जा सकता है, और फिर उनके साथ व्यवहार किया जा सकता है
एक आदेश. ब्रेसिज़ अन्यथा दायरे को परिभाषित नहीं करते हैं; इनका उपयोग केवल कमांड के लिए किया जाता है
समूहीकरण. विशेष रूप से, आदेश से सावधान रहें:
(i) के लिए {
आदेश
} | आज्ञा
चूंकि पाइप पहले से अधिक मजबूती से बंधता है, इसलिए यह कमांड वह कार्य नहीं करता है जिसकी उपयोगकर्ता अपेक्षा करता है
को। इसके बजाय, संपूर्ण कथन को ब्रेसिज़ में संलग्न करें:
{for (i) कमांड} | आज्ञा
सौभाग्य से, rcका व्याकरण इतना सरल है कि एक (आश्वस्त) उपयोगकर्ता इसे समझ सकता है
कंकाल की जांच याक(1) इस मैन पेज के अंत में व्याकरण (अनुभाग देखें)।
हकदार व्याकरण).
निवेश और उत्पादन
मानक आउटपुट को किसी फ़ाइल पर पुनर्निर्देशित किया जा सकता है
कमांड > फ़ाइल
और मानक इनपुट एक फ़ाइल से लिया जा सकता है
कमांड <फ़ाइल
पुनर्निर्देशन पंक्ति में कहीं भी दिखाई दे सकता है: पुनर्निर्देशन प्रतीक के बाद आने वाला शब्द है
फ़ाइल नाम और यदि उसमें रिक्त स्थान या अन्य विशेष वर्ण हैं तो उसे उद्धृत किया जाना चाहिए। इन
सभी समकक्ष हैं।
इको 1 2 3 > फू
> फू इको 1 2 3
इको 1 2 > फू 3
0 और 1 के अलावा अन्य फ़ाइल डिस्क्रिप्टर भी निर्दिष्ट किए जा सकते हैं। उदाहरण के लिए, पुनर्निर्देशित करना
किसी फ़ाइल में मानक त्रुटि, उपयोग करें:
कमांड >[2] फ़ाइल
किसी फ़ाइल डिस्क्रिप्टर को डुप्लिकेट करने के लिए, >[ का उपयोग करेंn=m]. इस प्रकार दोनों मानक पुनर्निर्देशित करने के लिए
एक ही फ़ाइल में आउटपुट और मानक त्रुटि, उपयोग करें
आदेश > फ़ाइल >[2=1]
जैसे की sh, पुनर्निर्देशन बाएँ से दाएँ संसाधित किया जाता है। इस प्रकार यह क्रम
कमांड >[2=1] > फ़ाइल
आमतौर पर एक गलती है. यह पहले मानक त्रुटि को मानक आउटपुट में डुप्लिकेट करता है; तब
मानक आउटपुट को किसी फ़ाइल में रीडायरेक्ट करता है, जहां भी मानक आउटपुट होता है वहां मानक त्रुटि छोड़ देता है
मूलतः था.
किसी फ़ाइल डिस्क्रिप्टर को बंद करने के लिए जो खुला हो सकता है, >[ का उपयोग करेंn=]. उदाहरण के लिए, फ़ाइल बंद करने के लिए
वर्णनकर्ता 7:
आदेश >[7=]
ध्यान दें कि इन निर्माणों में कोई रिक्त स्थान दिखाई नहीं दे सकता:
कमांड > [2] फ़ाइल
कमांड के आउटपुट को इच्छित फ़ाइल नाम के साथ [2] नामक फ़ाइल में भेज देगा
कमांड की तर्क सूची में दिखाई दे रहा है।
किसी कमांड के आउटपुट को पहले से मौजूद फ़ाइल के अंत में रखने के लिए, इसका उपयोग करें:
कमांड >> फ़ाइल
यदि फ़ाइल मौजूद नहीं है, तो इसे बनाया जाता है।
"यहाँ दस्तावेज़" इस प्रकार समर्थित हैं sh इसके उपयोग से
कमांड << 'ईओएफ-मार्कर'
बाद की पंक्तियाँ कमांड का मानक इनपुट बनाती हैं, जब तक कि एक पंक्ति न हो जाए
मार्कर, इस मामले में ईओफ़-मार्कर, का सामना करना पड़ता है।
यदि फ़ाइल का अंत मार्कर उद्धरण चिह्नों में संलग्न है, तो कोई परिवर्तनीय प्रतिस्थापन नहीं होता है
यहाँ दस्तावेज़ के अंदर. अन्यथा, प्रत्येक चर को उसके स्थान द्वारा प्रतिस्थापित किया जाता है-
पृथक-सूची मान (देखें फ्लैट सूचियाँ, नीचे), और यदि ^ वर्ण एक चर का अनुसरण करता है
नाम, इसे हटा दिया गया है. यह पाठ से सटे चरों के सुस्पष्ट उपयोग की अनुमति देता है, जैसे कि
$वैरिएबल^फ़ॉलो करें
यहां किसी दस्तावेज़ में एक शाब्दिक $ शामिल करने के लिए जब एक गैर-उद्धृत अंत-ऑफ़-फ़ाइल मार्कर किया जा रहा हो
उपयोग किया गया है, इसे $$ के रूप में दर्ज करें।
इसके अतिरिक्त, rc "यहां स्ट्रिंग्स" का समर्थन करता है, जो उस इनपुट को छोड़कर, यहां दस्तावेज़ों की तरह हैं
कमांड लाइन पर सीधे एक स्ट्रिंग से लिया जाता है। उनका उपयोग यहां दर्शाया गया है:
बिल्ली <<< 'यह यहां एक स्ट्रिंग है' | स्वागत
(यह सुविधा सक्षम करती है rc यहां दस्तावेजों का उपयोग करके पर्यावरण में कार्यों को निर्यात करना;
लेखक को यह उम्मीद नहीं है कि उपयोगकर्ता इस सुविधा को उपयोगी पाएंगे।)
पाइप्स
दो या दो से अधिक कमांड को बीच में वर्टिकल बार (|) लगाकर एक पाइपलाइन में जोड़ा जा सकता है
उन्हें। बाईं ओर कमांड का मानक आउटपुट (फ़ाइल डिस्क्रिप्टर 1) से जुड़ा हुआ है
दाईं ओर कमांड का मानक इनपुट (फ़ाइल डिस्क्रिप्टर 0)। संकेतन |[n=m]
उस फ़ाइल डिस्क्रिप्टर को इंगित करता है n बाईं ओर की प्रक्रिया फ़ाइल डिस्क्रिप्टर से जुड़ी है m of
सही प्रक्रिया. |[n] |[ के लिए एक आशुलिपि हैn=0]. उदाहरण के तौर पर, मानक को पाइप करने के लिए
करने के आदेश की त्रुटि wc(1), उपयोग करें:
कमांड |[2] डब्ल्यूसी
फ़ाइल पुनर्निर्देशन की तरह, क्रमांकित फ़ाइल को निर्दिष्ट करने वाले निर्माण में कोई स्थान नहीं हो सकता है
वर्णनकर्ता।
किसी पाइपलाइन की निकास स्थिति को तभी सत्य माना जाता है जब प्रत्येक कमांड
पाइपलाइन सत्य से बाहर निकलती है।
कमानों as तर्क
कुछ आदेश, जैसे सीएमपी(1) या diff(1), उनके तर्कों को कमांड लाइन पर लें, और करें
मानक इनपुट से इनपुट नहीं पढ़ा गया। कभी-कभी अरेखीय निर्माण करना सुविधाजनक होता है
पाइपलाइनें ताकि एक कमांड पसंद हो सीएमपी एक साथ दो अन्य कमांड के आउटपुट को पढ़ सकता है।
rc क्या यह इसे पसंद है:
सीएमपी <{कमांड} <{कमांड}
ब्रेसिज़ में दो कमांड के आउटपुट की तुलना करता है। ध्यान दें: पुनर्निर्देशन के इस रूप के बाद से
किसी प्रकार के पाइप के साथ कार्यान्वित किया जाता है, और चूंकि कोई नहीं कर सकता है लसीक(2) एक पाइप पर, आदेश
वह उपयोग करें लसीक(2) फाँसी हो जायेगी। उदाहरण के लिए, के कुछ संस्करण diff(1) उपयोग लसीक(2) उन पर
आदानों।
डेटा को एक पाइप के माध्यम से कई कमांडों तक भेजा जा सकता है टी(1) और का आउटपुट संस्करण
यह संकेतन:
नमस्ते गूंजें | टी >{sed 's/^/p1 /'} >{sed 's/^/p2 /'}
नियंत्रण संरचनाएं
प्रवाह को नियंत्रित करने के लिए निम्नलिखित का उपयोग किया जा सकता है rc:
यदि नहीं तो वक्तव्य
अगर (परीक्षण) {
सीएमडी
} अन्य सीएमडी
RSI परीक्षण निष्पादित किया जाता है, और यदि इसकी वापसी स्थिति शून्य है, तो पहला आदेश है
निष्पादित, अन्यथा दूसरा है। आदेशों के आसपास ब्रेसिज़ अनिवार्य नहीं हैं।
हालाँकि, कोई अन्य कथन केवल तभी मान्य होता है जब वह उसी पर क्लोज-ब्रेस का अनुसरण करता है
रेखा। अन्यथा, यदि को सरल-यदि के रूप में लिया जाता है:
यदि (परीक्षण)
आदेश
जबकि और के लिए लूप्स
जबकि (परीक्षण) सीएमडी
rc निष्पादित करता है परीक्षण और जब तक कमांड निष्पादित करता है परीक्षण सच हैं।
के लिये (था in सूची) सीएमडी
rc सेट था के प्रत्येक तत्व को सूची (जिसमें वेरिएबल और बैककोट शामिल हो सकते हैं
प्रतिस्थापन) और चलता है सीएमडी. मैं फ़िन सूचीतो फिर छोड़ दिया जाता है rc स्थापित करेगा था प्रत्येक के लिए
$* का तत्व. उदाहरण के लिए:
के लिए (i in `{ls -F | grep '\*$' | sed 's/\*$//'}) { कमांड }
निष्पादन योग्य वर्तमान निर्देशिका में प्रत्येक फ़ाइल के नाम पर $i सेट करेगा।
स्विच
स्विच (सूची) { मामला ... }
rc शब्द से शुरू होने वाले कथनों पर स्विच करने के बाद ब्रेसिज़ के अंदर देखता है
मामला। यदि निम्नलिखित मामलों में से कोई भी पैटर्न स्विच करने के लिए आपूर्ति की गई सूची से मेल खाता है,
फिर अगले केस स्टेटमेंट के निष्पादित होने तक कमांड जारी रहेगा।
मेटाएक्टर *, [ या ? उद्धृत नहीं किया जाना चाहिए; मिलान केवल विरुद्ध किया जाता है
में तार सूची, फ़ाइल नामों के विरुद्ध नहीं। (केस स्टेटमेंट के लिए मिलान है
~ कमांड के समान।)
तार्किक ऑपरेटरों
इसमें बहुत सारे ऑपरेटर हैं rc जो किसी कमांड की निकास स्थिति पर निर्भर करता है।
आदेश && आदेश
पहले कमांड को निष्पादित करता है और फिर दूसरे कमांड को निष्पादित करता है यदि और केवल यदि पहले
कमांड शून्य निकास स्थिति (यूनिक्स में "सही") के साथ बाहर निकलता है।
आदेश || आज्ञा
पहले कमांड को निष्पादित करता है और फिर दूसरे कमांड को निष्पादित करता है यदि और केवल यदि पहले
कमांड एक गैर-शून्य निकास स्थिति (यूनिक्स में "गलत") के साथ बाहर निकलता है।
! आज्ञा
किसी कमांड की निकास स्थिति को नकारता है।
प्रतिरूप मेल मिलाना
इसमें पैटर्न मिलान के दो रूप हैं rc. एक पारंपरिक शैल ग्लोबिंग है। यह
तर्क सूचियों में फ़ाइल नामों के मिलान में होता है:
आदेश तर्क तर्क...
जब अक्षर *, [ या ? किसी तर्क या आदेश में घटित होता है, rc तर्क को देखता है
फ़ाइलों के विरुद्ध मिलान के लिए एक पैटर्न के रूप में। (अन्य शैलों द्वारा प्रदर्शित व्यवहार के विपरीत,
rc पैटर्न मिलान केवल तभी किया जाएगा जब कोई मेटाकैरेक्टर बिना उद्धृत और शाब्दिक रूप से घटित होता है
इनपुट। इस प्रकार,
फू='*'
प्रतिध्वनि $foo
हमेशा एक सितारा ही गूंजता रहेगा। गैर-शाब्दिक मेटाकैरेक्टर का विस्तार करने के लिए, a
इनपुट को पुनः स्कैन करने के लिए eval स्टेटमेंट का उपयोग किया जाना चाहिए।) पैटर्न मिलान होता है
निम्नलिखित नियमों के अनुसार: a * वर्णों की किसी भी संख्या (शून्य सहित) से मेल खाता है।
ए ? किसी एक वर्ण से मेल खाता है, और [ के बाद कई वर्ण आते हैं
a ] उस वर्ग के एकल वर्ण से मेल खाता है। वर्ण वर्ग मिलान के नियम हैं
उनके लिए भी वैसा ही ed(1), इस अपवाद के साथ कि चरित्र वर्ग निषेध हासिल किया गया है
टिल्ड (~) के साथ, कैरेट (^) के साथ नहीं, क्योंकि कैरेट का मतलब पहले से ही कुछ और है rc.
rc ~ कमांड के साथ स्ट्रिंग्स के विरुद्ध पैटर्न से भी मेल खाता है:
~विषय पैटर्न पैटर्न...
~ $status को शून्य पर सेट करता है यदि और केवल तभी जब आपूर्ति किया गया पैटर्न इसके किसी एक तत्व से मेल खाता हो
विषय सूची. इस प्रकार
~ फू एफ*
जबकि स्थिति को शून्य पर सेट करता है
~ (बार बाज़) च*
स्थिति को एक पर सेट करता है। शून्य सूची शून्य सूची से मेल खाती है, इसलिए
~$फू ()
यह देखने के लिए जाँच करता है कि $foo खाली है या नहीं। यह परीक्षण द्वारा भी प्राप्त किया जा सकता है
~$#फू 0
ध्यान दें कि ~ कमांड के अंदर rc फ़ाइल नामों के विरुद्ध पैटर्न मेल नहीं खाता है, इसलिए ऐसा नहीं है
*, [ और ? वर्णों को उद्धृत करना आवश्यक है। तथापि, rc के विरुद्ध विषय का विस्तार करता है
फ़ाइल नाम यदि इसमें मेटाअक्षर शामिल हैं। इस प्रकार, आदेश
~ * ?
यदि वर्तमान निर्देशिका की किसी भी फ़ाइल में एकल-अक्षर का नाम है, तो यह सत्य लौटाता है।
यदि ~ कमांड को इसके पहले तर्क के रूप में एक सूची दी गई है, तो इसके विरुद्ध एक सफल मिलान
उस सूची का कोई भी तत्व ~ के सत्य लौटने का कारण बनेगा। उदाहरण के लिए:
~ (फू गू चिड़ियाघर) z*
सच हैं।
सूचियों और चर
में प्राथमिक डेटा संरचना rc वह सूची है, जो शब्दों का एक क्रम है। कोष्टक
सूचियों को समूहीकृत करने के लिए उपयोग किया जाता है। खाली सूची को () द्वारा दर्शाया गया है। सूचियों में कोई पदानुक्रम नहीं है
संरचना; किसी अन्य सूची के अंदर की सूची का विस्तार किया जाता है इसलिए बाहरी सूची में सभी शामिल होते हैं
आंतरिक सूची के तत्व. इस प्रकार, निम्नलिखित सभी समतुल्य हैं
एक दो तीन
(एक दो तीन)
((एक दो तीन)))
ध्यान दें कि शून्य स्ट्रिंग, '', और शून्य सूची, (), दो बहुत अलग चीजें हैं।
किसी वेरिएबल को शून्य स्ट्रिंग निर्दिष्ट करना एक वैध ऑपरेशन है, लेकिन यह इसे हटाता नहीं है
परिभाषा।
शून्य = '' खाली = () प्रतिध्वनि $#शून्य $#खाली
आउटपुट उत्पन्न करता है
1 0
सूची कड़ी
दो सूचियों को कॉन्सटेनेशन ऑपरेटर (^) द्वारा जोड़ा जा सकता है। सम्मिलन तदनुसार कार्य करता है
निम्नलिखित नियमों के अनुसार: यदि दोनों सूचियों में तत्वों की संख्या समान है, तो
संयोजन जोड़ीवार है:
प्रतिध्वनि (ए- बी- सी-)^(1 2 3)
आउटपुट उत्पन्न करता है
ए-1 बी-2 सी-3
अन्यथा, सूचियों में से कम से कम एक में एक तत्व अवश्य होना चाहिए, और फिर
संयोजन वितरणात्मक है:
सीसी -^(ओ जीसी) (मॉलोक एलोका)^.सी
आदेश निष्पादित करने का प्रभाव पड़ता है
cc -O -g -c Malloc.c alloca.c
एक शब्द एक लंबाई की एक सूची है, इसलिए
इको फू^बार
आउटपुट उत्पन्न करता है
foobar
मुक्त कैरेट
rc कुछ स्थितियों में, कैरेट्स (कॉन्केटेनेशन ऑपरेटर्स) निःशुल्क सम्मिलित करता है
उपयोगकर्ता की ओर से कुछ टाइपिंग सहेजें। उदाहरण के लिए, उपरोक्त उदाहरण को टाइप भी किया जा सकता है
इस रूप में:
opts=(O gc) फ़ाइलें=(malloc alloca) cc -$opts $files.c
rc "-" और $ऑप्ट्स के साथ-साथ $फ़ाइलों के बीच एक फ्री-कैरेट डालने का ध्यान रखता है
और सी। फ्री कैरेट का नियम इस प्रकार है: यदि कोई शब्द या कीवर्ड तुरंत है
उसके बाद कोई अन्य शब्द, कीवर्ड, डॉलर-चिह्न या बैककोट आता है rc एक कैरेट सम्मिलित करता है
उनके बीच।
चर
नोटेशन का उपयोग करके एक सूची को एक चर को सौंपा जा सकता है:
था = सूची
इस नोटेशन का उपयोग करने के लिए विशेष चर * भी निर्दिष्ट किया जा सकता है; rc नहीं है सेट बिल्टिन।
केवल अंकों सहित अनुक्रम को छोड़कर, वर्णों के किसी भी गैर-रिक्त अनुक्रम का उपयोग किया जा सकता है
एक परिवर्तनीय नाम के रूप में. = को छोड़कर किसी भी वर्ण का उपयोग किया जा सकता है, लेकिन विशेष वर्ण अवश्य होने चाहिए
उद्धृत. सभी उपयोगकर्ता-परिभाषित चर पर्यावरण में निर्यात किए जाते हैं।
एक चर का मान डॉलर ($) ऑपरेटर के साथ संदर्भित किया जाता है:
$था
कोई भी वेरिएबल जिसे कोई मान निर्दिष्ट नहीं किया गया है, शून्य सूची लौटाता है, (), जब
संदर्भित. एकाधिक संदर्भों की अनुमति है:
ए = फू
बी = ए
प्रतिध्वनि $$ बी
प्रिंट
foo
किसी वेरिएबल को शून्य सूची निर्दिष्ट करके एक वेरिएबल की परिभाषा को भी हटाया जा सकता है:
था=()
"मुफ़्त देखभाल" के सही ढंग से काम करने के लिए, rc किस चीज़ के बारे में कुछ निश्चित धारणाएँ बनानी चाहिए
वर्ण एक परिवर्तनीय नाम में प्रकट हो सकते हैं। rc यह मानता है कि एक वेरिएबल नाम में केवल एक ही नाम होता है
अक्षरांकीय वर्ण, अंडरस्कोर (_) और स्टार (*)। किसी वेरिएबल को संदर्भित करने के लिए
इसके नाम में अन्य वर्ण, चर नाम उद्धृत करें। इस प्रकार:
प्रतिध्वनि $'we$Ird:Variab!le'
स्थानीय चर
किसी भी संख्या में वैरिएबल असाइनमेंट को टाइप करके एक ही कमांड में स्थानीय बनाया जा सकता है:
a=foo b=bar ... कमांड
कमांड एक कंपाउंड कमांड हो सकता है, उदाहरण के लिए:
पथ=. यदि =() {
...
}
के लिए रास्ता तय करता है. और एक लंबे कंपाउंड कमांड की अवधि के लिए ifs को हटा देता है।
परिवर्तनीय सबस्क्रिप्ट
वेरिएबल्स को नोटेशन के साथ सबस्क्रिप्ट किया जा सकता है
$var(n)
जहां n पूर्णांकों की एक सूची है (मूल 1)। प्रारंभिक कोष्ठक का तुरंत पालन होना चाहिए
परिवर्तनीय नाम. सबस्क्रिप्ट की सूची क्रम में या अद्वितीय होने की आवश्यकता नहीं है। इस प्रकार,
ए=(एक दो तीन)
प्रतिध्वनि $a(3 3 3)
प्रिंट
तीन तीन तीन
If n एक अस्तित्वहीन तत्व का संदर्भ देता है, फिर $var(n) शून्य सूची लौटाता है। संकेतन
$n, जहां n एक पूर्णांक है, $*( के लिए एक आशुलिपि हैn)। इस प्रकार, rcके तर्कों का उल्लेख किया जा सकता है
$1, $2, इत्यादि के रूप में।
यह भी ध्यान दें कि सबस्क्रिप्ट की सूची इनमें से किसी के द्वारा भी दी जा सकती है rcकी सूची संचालन:
$var(`{awk 'BEGIN{for(i=1;i<=10;i++)print i;exit; }'})
$var के पहले 10 तत्व लौटाता है।
किसी वेरिएबल में तत्वों की संख्या गिनने के लिए, उपयोग करें
$#var
यह $var में तत्वों की संख्या के साथ एकल-तत्व सूची लौटाता है।
फ्लैट सूचियाँ
घटकों के साथ, बहु-तत्व सूची से एकल-तत्व सूची बनाने के लिए
स्थान-पृथक, डॉलर-कैरेट ($^) ऑपरेटर का उपयोग करें:
$^वर
यह तब उपयोगी होता है जब सामान्य सूची संयोजन नियमों को दरकिनार करने की आवश्यकता होती है। उदाहरण के लिए,
$path के अंत में एक अवधि जोड़ने के लिए, इसका उपयोग करें:
प्रतिध्वनि $^पथ.
बैककोट प्रतिस्थापन
बैककोट प्रतिस्थापन का उपयोग करके कमांड के आउटपुट से एक सूची बनाई जा सकती है:
`{ आदेश }
ब्रेसिज़ में कमांड के मानक आउटपुट से बनी एक सूची लौटाता है। $ifs का उपयोग किया जाता है
आउटपुट को सूची तत्वों में विभाजित करें। डिफ़ॉल्ट रूप से, $ifs का मान space-tab-newline होता है।
यदि आदेश एक शब्द है तो ब्रेसिज़ को छोड़ा जा सकता है। इस प्रकार इसके स्थान पर `ls का उपयोग किया जा सकता है
`{ls} का. यह अंतिम सुविधा उन फ़ंक्शंस को परिभाषित करते समय उपयोगी होती है जो उपयोगी तक विस्तारित होते हैं
तर्क सूचियाँ. एक बारंबार उपयोग है:
एफएन स्रोत { इको *.[ची] }
द्वारा पीछा
wc `src
(यह वर्तमान निर्देशिका में सभी सी स्रोत फ़ाइलों की शब्द-गणना प्रिंट करेगा।)
एकल बैककोट प्रतिस्थापन के लिए $ifs के मान को ओवरराइड करने के लिए, इसका उपयोग करें:
`` (ifs-list) {कमांड }
$ifs को अस्थायी रूप से अनदेखा कर दिया जाएगा और कमांड के आउटपुट को निर्दिष्ट अनुसार विभाजित किया जाएगा
डबल बैककोट के बाद की सूची। उदाहरण के लिए:
`` ($nl :) {बिल्ली / Etc / पासवर्ड}
बंट जाता है / Etc / पासवर्ड फ़ील्ड में, यह मानते हुए कि $nl में इसके मान के रूप में एक नई पंक्ति शामिल है।
विशेष चर
अनेक चर ज्ञात हैं rc और उनका विशेष उपचार किया जाता है। निम्नलिखित सूची में,
"डिफ़ॉल्ट" यह इंगित करता है rc स्टार्टअप पर वेरिएबल को एक डिफ़ॉल्ट मान देता है; "कोई निर्यात नहीं"
इंगित करता है कि चर कभी निर्यात नहीं किया जाता है; और "रीड-ओनली" इंगित करता है कि एक प्रयास
वेरिएबल सेट करने से चुपचाप कोई प्रभाव नहीं पड़ेगा।
इसके अलावा, "उपनाम" का अर्थ है कि चर को बड़े अक्षरों में उसी नाम से उपनाम दिया गया है। के लिए
उदाहरण के लिए, $cdpath को एक असाइनमेंट $CDPATH को एक स्वचालित असाइनमेंट का कारण बनता है, और इसके विपरीत-
उलटा. यदि $CDPATH कब सेट किया गया है rc प्रारंभ किया गया है, इसका मान $cdpath में आयात किया गया है। $cdpath
और $पथ हैं rc सूचियाँ; $CDPATH और $PATH कोलन से अलग की गई सूचियाँ हैं। केवल नाम लिखे गए हैं
राजधानियों में पर्यावरण में निर्यात किया जाता है।
* (कोई निर्यात नहीं)
की तर्क सूची rc. $1, $2, आदि $*(1), $*(2), आदि के समान हैं।
0 (डिफ़ॉल्ट नो-एक्सपोर्ट)
वेरिएबल $0 argv[0] का मान रखता है जिसके साथ rc आह्वान किया गया था।
इसके अतिरिक्त, निष्पादन की अवधि के लिए $0 को फ़ंक्शन के नाम पर सेट किया गया है
उस फ़ंक्शन का, और $0 को उस फ़ाइल के नाम पर भी सेट किया गया है जिसके लिए व्याख्या की जा रही है
ए की अवधि. आज्ञा। $0, $* का तत्व नहीं है और इसे कभी भी इस रूप में नहीं माना जाता है
एक।
एपीआईडी (कोई निर्यात नहीं)
पृष्ठभूमि में प्रारंभ हुई अंतिम प्रक्रिया की प्रक्रिया आईडी.
एपिड्स (केवल-निर्यात-रहित)
एक सूची जिसके तत्व सभी पृष्ठभूमि प्रक्रियाओं की प्रक्रिया आईडी हैं
अभी भी जीवित हैं, या जो मर चुके हैं और जिनकी अभी तक प्रतीक्षा नहीं की गई है।
bqstatus (कोई निर्यात नहीं)
की निकास स्थिति rc नवीनतम बैककोट प्रतिस्थापन को निष्पादित करने के लिए फोर्क किया गया।
ध्यान दें कि, $status के विपरीत, $bqstatus हमेशा एक एकल तत्व सूची होती है (देखें)। बाहर निकलें
स्थिति नीचे)। उदाहरण के लिए:
इको फू | ग्रेप बार; स्थिति क्या है
प्रिंट
स्थिति=(0 1)
जहाँ तक
x=`{echo foo |grep bar}; bqstatus क्या है?
प्रिंट
bqस्थिति=1
सीडीपथ (उपनाम)
के लक्ष्य को खोजने के लिए निर्देशिकाओं की एक सूची cd आज्ञा। खाली स्ट्रिंग
वर्तमान निर्देशिका को दर्शाता है। ध्यान दें कि यदि $cdpath वैरिएबल नहीं है
वर्तमान निर्देशिका शामिल है, तो वर्तमान निर्देशिका की खोज नहीं की जाएगी;
यह निर्देशिका खोज को वर्तमान के अलावा किसी अन्य निर्देशिका में शुरू करने की अनुमति देता है
निर्देशिका.
इतिहास
$history में एक फ़ाइल का नाम होता है जिसमें कमांड इस प्रकार जोड़े जाते हैं rc पढ़ता
उन्हें। यह एक स्टैंड-अलोन इतिहास कार्यक्रम (जैसे कि) के उपयोग की सुविधा प्रदान करता है
इतिहास(1)) जो इतिहास फ़ाइल की सामग्री को पार्स करता है और उन्हें प्रस्तुत करता है rc
पुनर्व्याख्या के लिए. यदि $इतिहास सेट नहीं है, तो rc आदेशों को इसमें नहीं जोड़ता
कोई भी फ़ाइल।
घर (उपनाम)
बिल्टिन के लिए डिफ़ॉल्ट निर्देशिका cd कमांड, और वह निर्देशिका जिसमें rc
इसकी इनिशियलाइज़ेशन फ़ाइल, .rcrc, ढूँढने की कोशिश कर रहा है rc लॉगिन के रूप में प्रारंभ किया गया है
खोल।
यदि (डिफ़ॉल्ट)
आंतरिक फ़ील्ड विभाजक, बैककोट के आउटपुट को विभाजित करने के लिए उपयोग किया जाता है
एक सूची के रूप में पाचन के लिए आदेश। चालू होने पर, rc युक्त सूची निर्दिष्ट करता है
अक्षर स्थान, टैब, और $ifs के लिए नई पंक्ति।
पथ (उपनाम)
यह कमांडों को खोजने के लिए निर्देशिकाओं की एक सूची है। खाली स्ट्रिंग खड़ी है
वर्तमान निर्देशिका के लिए. यदि स्टार्टअप समय पर न तो $PATH और न ही $path सेट है,
$path आपके सिस्टम के लिए उपयुक्त एक डिफ़ॉल्ट मान मानता है। यह सामान्यतः है
(/ Usr / स्थानीय / बिन / Usr / bin /यूएसआर/यूसीबी / bin .)
पीआईडी (डिफ़ॉल्ट नो-एक्सपोर्ट)
स्टार्टअप पर, $pid को वर्तमान में चल रही संख्यात्मक प्रक्रिया आईडी से प्रारंभ किया जाता है
rc.
शीघ्र (डिफ़ॉल्ट)
यह वेरिएबल दो संकेत रखता है (निश्चित रूप से सूची के रूप में)। rc प्रिंट।
$शीघ्र(1) प्रत्येक कमांड को पढ़ने से पहले मुद्रित किया जाता है, और $शीघ्र(2) कब मुद्रित होता है
इनपुट अगली पंक्ति पर जारी रहने की उम्मीद है। rc $prompt को ('; '') पर सेट करता है
गलती करना। इसका कारण यह है कि यह सक्षम बनाता है rc उपयोगकर्ता से आदेश प्राप्त करने के लिए
माउस का उपयोग करके पिछली पंक्तियाँ, और उन्हें प्रस्तुत करना rc पुनःव्याख्या के लिए;
अर्धविराम संकेत को आसानी से नजरअंदाज कर दिया जाता है rc. शून्य $शीघ्र(2) का भी है
औचित्य: एक rc स्क्रिप्ट, जब अंतःक्रियात्मक रूप से टाइप की जाती है, तो $ नहीं छोड़ेगीशीघ्र(2) एस
स्क्रीन पर, और इसलिए इसे माउस द्वारा पकड़ा जा सकता है और सीधे इसमें रखा जा सकता है
शेल स्क्रिप्ट के रूप में उपयोग के लिए फ़ाइल, आगे संपादन आवश्यक किए बिना।
शीघ्र (फ़ंक्शन)
यदि इस फ़ंक्शन को परिभाषित किया जाता है, तो यह हर बार निष्पादित होता है rc छापने वाला है
$शीघ्र(1).
स्थिति (केवल-निर्यात नहीं)
अंतिम आदेश की निकास स्थिति. यदि आदेश संख्यात्मक मान के साथ बाहर निकलता है,
वह संख्या स्थिति है. यदि कमांड सिग्नल के साथ मर गया, तो स्थिति है
उस सिग्नल का नाम; यदि कोई कोर फ़ाइल बनाई गई है, तो स्ट्रिंग "+कोर" जोड़ दी जाती है।
एक पाइपलाइन के लिए $status का मान एक सूची है, जिसमें प्रत्येक के लिए, जैसा कि ऊपर बताया गया है, एक प्रविष्टि है
प्रक्रिया पाइपलाइन में है. उदाहरण के लिए, आदेश
एलएस | स्वागत
आमतौर पर $status को (0 0) पर सेट करता है।
संस्करण (डिफ़ॉल्ट)
स्टार्टअप पर, इस सूची चर का पहला तत्व एक स्ट्रिंग में प्रारंभ किया गया है
जो इस संस्करण की पहचान करता है rc. दूसरे तत्व को एक स्ट्रिंग में प्रारंभ किया गया है
जिसे पाया जा सकता है अध्यक्ष(1) और द क्या इसका आदेश SCCS(1).
कार्य
rc कार्य समान हैं rc स्क्रिप्ट, सिवाय इसके कि वे मेमोरी में संग्रहीत हैं और हैं
स्वचालित रूप से पर्यावरण में निर्यात किया जाता है। एक शेल फ़ंक्शन इस प्रकार घोषित किया गया है:
एफएन नाम { आदेश }
rc क्लोज़-ब्रेस तक परिभाषा को स्कैन करता है, ताकि फ़ंक्शन एक से अधिक तक फैल सके
रेखा। टाइप करके फ़ंक्शन परिभाषा को हटाया जा सकता है
एफएन नाम
(एक या अधिक नाम निर्दिष्ट किए जा सकते हैं। एक संलग्न परिभाषा के साथ, सभी नाम प्राप्त होते हैं
वही परिभाषा. यह कभी-कभी समान सिग्नल हैंडलर को असाइन करने के लिए उपयोगी होता है
कई संकेत. परिभाषा के बिना, सभी नामित फ़ंक्शन हटा दिए जाते हैं।) जब कोई फ़ंक्शन होता है
निष्पादित, $* को कमांड की अवधि के लिए उस फ़ंक्शन के तर्कों पर सेट किया जाता है।
इस प्रकार एल के लिए एक उचित परिभाषा, एक संक्षिप्त रूप ls(1), हो सकता है:
एफएन एल { एलएस -एफसी $* }
लेकिन नहीं
एफएन एल { एलएस -एफसी } # गलत
बीच में आता है और सिग्नल
rc कई संकेतों को पहचानता है, और उपयोगकर्ता को कार्य करने वाले शेल फ़ंक्शंस को परिभाषित करने की अनुमति देता है
सिग्नल हैंडलर के रूप में। rc जब यह इंटरैक्टिव मोड में होता है तो डिफ़ॉल्ट रूप से SIGINT को ट्रैप कर लेता है। सिगक्विट
और SIGTERM को अनदेखा किया जाता है, जब तक rc -d ध्वज के साथ आह्वान किया गया है। हालाँकि, उपयोगकर्ता-
इन और अन्य सभी सिग्नलों के लिए परिभाषित सिग्नल हैंडलर लिखे जा सकते हैं। परिभाषित करने का तरीका
एक सिग्नल हैंडलर को लोअर केस में सिग्नल के नाम से एक फ़ंक्शन लिखना होता है। इस प्रकार:
एफएन सिघअप { इको हैंगअप; rm /tmp/rc$pid.*; बाहर निकलना }
यूनिक्स सिग्नल के अलावा, rc कृत्रिम सिग्नल SIGEXIT को पहचानता है जो इस प्रकार होता है
rc बाहर निकलने वाला है.
सिग्नल हैंडलर की परिभाषा को हटाने के लिए, इसे ऐसे हटाएं जैसे कि यह एक नियमित हो
समारोह। उदाहरण के लिए:
एफएन हस्ताक्षर
SIGINT के हैंडलर को डिफ़ॉल्ट मान पर लौटाता है। किसी सिग्नल को अनदेखा करने के लिए, सेट करें
सिग्नल हैंडलर का मान {}। इस प्रकार:
एफएन हस्ताक्षर {}
शेल द्वारा SIGINT को अनदेखा करने का कारण बनता है। केवल उन संकेतों को पारित किया जाता है जिन्हें अनदेखा किया जा रहा है
द्वारा चलाये जा रहे कार्यक्रमों पर rc; सिग्नल फ़ंक्शंस निर्यात नहीं किए जाते हैं.
सिस्टम V-आधारित यूनिक्स सिस्टम पर, rc आपको SIGCLD को फंसाने की अनुमति नहीं देगा।
अंतर्निहित कमानों
बिल्टइन कमांड शेल के संदर्भ में निष्पादित होते हैं, लेकिन अन्यथा बिल्कुल उसी तरह व्यवहार करते हैं
अन्य आदेश. हालांकि !, ~ और @ ये कड़ाई से अंतर्निहित कमांड नहीं बोल रहे हैं, वे ऐसा कर सकते हैं
आमतौर पर इस तरह इस्तेमाल किया जाता है।
. [-i] पट्टिका [arg ...]
पुस्तकें पट्टिका इनपुट के रूप में rc और इसकी सामग्री निष्पादित करता है। -i ध्वज के साथ, इनपुट है
इंटरैक्टिव. इस प्रकार एक शेल स्क्रिप्ट के भीतर से,
. -i /dev/tty
"सही काम" करता है.
तोड़ना अंतरतम से कुछ समय के लिए या कुछ समय के लिए टूट जाता है, जैसा कि सी में होता है। इसे लागू करना एक त्रुटि है तोड़ना
एक लूप के बाहर. (ध्यान दें कि कोई नहीं है तोड़ना स्विच में कमांड के बीच कीवर्ड
कथन, सी के विपरीत।)
builtin आदेश [arg ...]
समान नाम की किसी भी फ़ंक्शन परिभाषा को अनदेखा करते हुए कमांड निष्पादित करता है। यह
कमांड बिल्टिन के समान नामों वाले कार्यों को उपयोग करने की अनुमति देने के लिए मौजूद है
अंतर्निहित बिल्टिन या बाइनरी। उदाहरण के लिए:
एफएन एलएस {बिल्टिन एलएस -एफसी $* }
तर्कों के डिफ़ॉल्ट सेट को पारित करने का एक उचित तरीका है ls(1), जबकि
एफएन एलएस { एलएस -एफसी $* } # गलत
एक नॉन-टर्मिनेटिंग रिकर्सन है, जिसके कारण आरसी अपने स्टैक स्थान को समाप्त कर देगी
(अंततः) यदि इसे निष्पादित किया जाता है तो समाप्त कर दें।
cd [डायरेक्टरी]
वर्तमान निर्देशिका को बदलता है डायरेक्टरी. वेरिएबल $cdpath की खोज की गई है
के संभावित स्थान डायरेक्टरी, निष्पादन योग्य के लिए $path की खोज के अनुरूप
फ़ाइलें. बिना किसी तर्क के, cd वर्तमान निर्देशिका को $home में बदलता है।
गूंज [-n] [--] [arg ...]
अपने तर्कों को मानक आउटपुट पर प्रिंट करता है, जिसे एक नई लाइन द्वारा समाप्त किया जाता है। तर्क हैं
रिक्त स्थान द्वारा अलग किया गया। यदि पहला तर्क -n है तो कोई अंतिम नई पंक्ति मुद्रित नहीं होती है। अगर
पहला तर्क है --, फिर अन्य सभी तर्क वस्तुतः प्रतिध्वनित होते हैं। यह है
शाब्दिक -n को प्रतिध्वनित करने के लिए उपयोग किया जाता है।
विकसित करना [सूची]
के तत्वों को जोड़ता है सूची रिक्त स्थान के साथ और परिणामी स्ट्रिंग को फ़ीड करता है rc
पुनः स्कैनिंग के लिए. यह एकमात्र समय है जब इनपुट को दोबारा स्कैन किया जाता है rc.
कार्यकारी [arg ...]
के स्थान पर rc दिए गए आदेश के साथ. यदि निष्पादन में केवल पुनर्निर्देशन शामिल है, तो
ये पुनर्निर्देशन वर्तमान शेल पर लागू होते हैं और शेल बाहर नहीं निकलता है। के लिए
उदाहरण,
कार्यकारी >[2] त्रुटि.आउट
फ़ाइल में मानक त्रुटि के लिए आगे आउटपुट रखता है ग़लती.बाहर.
निकास [हैसियत]
वर्तमान शेल को दिए गए निकास के साथ बाहर निकलने का कारण बनाएं हैसियत. यदि कोई तर्क नहीं है
दिया गया है, $status का वर्तमान मान उपयोग किया जाता है।
सीमा [-h] [संसाधन [मूल्य]]
के समान csh(1) सीमा बिल्टिन, यह कमांड बीएसडी-शैली पर काम करता है
किसी प्रक्रिया की संसाधन सीमाएँ। -h ध्वज कठोर सीमाओं को प्रदर्शित/परिवर्तित करता है।
वे संसाधन जिन्हें दिखाया या बदला जा सकता है cputime, फाइल का आकार, डेटासाइज़, ढेर का आकार,
coredumpsize, स्मृतिउपयोग, और, जहां समर्थित है, वर्णनकर्ता, स्मृतिउपयोग, मेमोरीआरएस,
मैक्सप्रोक, मेमोरीलॉक्ड, तथा filelocks। उदाहरण के लिए:
सीमा कोरडम्पसाइज 0
कोर डंप अक्षम करता है। कठोर सीमा के बराबर नरम सीमा निर्धारित करने के लिए:
सीमा `{सीमा -एच डेटा आकार}
न्यूपीजीआरपी
डालता है rc एक नये प्रक्रिया समूह में. यह बिल्टिन बनाने के काम आता है rc इस तरह का व्यवहार
प्रतिकूल वातावरण में कार्य-नियंत्रण कवच। इसका एक उदाहरण नेक्स्ट टर्मिनल है
प्रोग्राम, जो स्पष्ट रूप से मानता है कि प्रत्येक शेल अपने आप को एक में डाल देगा
नई प्रक्रिया समूह.
वापसी [n]
स्थिति के साथ, वर्तमान फ़ंक्शन से रिटर्न n, जहां n एक वैध निकास स्थिति है,
या उनकी एक सूची. इस प्रकार यह होना कानूनी है
वापसी (सिगपाइप 1 2 3)
(यह आमतौर पर किसी फ़ंक्शन को ए की निकास स्थिति के साथ वापस लौटने की अनुमति देने के लिए उपयोग किया जाता है
आदेशों की पहले निष्पादित पाइपलाइन।) यदि n छोड़ दिया गया है, तो $status बचा है
अपरिवर्तित. इसे लागू करना एक त्रुटि है वापसी जब किसी फ़ंक्शन के अंदर नहीं हो.
पाली [n]
हटाता n $* की शुरुआत से तत्व और अन्य तत्वों को नीचे स्थानांतरित कर देता है
n. n 1 के लिए डिफ़ॉल्ट।
umask [मुखौटा]
वर्तमान उमास्क सेट करता है (देखें)। umask(2)) अष्टक को मुखौटा. यदि कोई तर्क नहीं है
वर्तमान, वर्तमान मुखौटा मूल्य मुद्रित है।
प्रतीक्षा [पीआईडी]
निर्दिष्ट के साथ प्रक्रिया की प्रतीक्षा करता है पीआईडी, जिसकी शुरुआत जरूर हुई होगी rc, करने के लिए
बाहर निकलना। अगर कोई नहीं पीआईडी अधिकृत है, rc अपनी सभी चाइल्ड प्रक्रियाओं के बाहर निकलने की प्रतीक्षा करता है।
क्या है [-b] [-f] [-p] [-s] [-v] [--] [नाम ...]
नामित वस्तुओं की परिभाषा प्रिंट करता है। बिल्टिन के लिए, बिल्टिन foo मुद्रित है;
सिग्नल हैंडलर सहित कार्यों के लिए, उनकी परिभाषाएँ मुद्रित की जाती हैं; के लिए
निष्पादन योग्य फ़ाइलें, पथ नाम मुद्रित होते हैं; और चरों के लिए, उनके मान हैं
मुद्रित. झंडे आउटपुट को बिल्टिन, फ़ंक्शंस, निष्पादन योग्य प्रोग्राम तक सीमित करते हैं,
सिग्नल हैंडलर, और चर, क्रमशः। अगर कोई नहीं नामs निर्दिष्ट हैं, rc सूचियों
उस प्रकार की सभी वस्तुएँ। (-p के लिए इसकी अनुमति नहीं है) बिना तर्क के,
व्हाटिस व्हाटिस -एफवी के बराबर है, और सभी शेल वेरिएबल्स के मान प्रिंट करता है
और कार्य।
ध्यान दें कि क्या है आउटपुट इनपुट के लिए उपयुक्त है rc; के आउटपुट को सेव करके क्या है
किसी फ़ाइल में, की स्थिति को फिर से बनाना संभव होना चाहिए rc इस फ़ाइल को सोर्स करके
के साथ । आज्ञा। एक और नोट: Whatis -s > फ़ाइल को स्टोर करने के लिए उपयोग नहीं किया जा सकता है
का राज्य rcकिसी फ़ाइल में सिग्नल हैंडलर, क्योंकि पुनर्निर्देशन वाले बिल्टिन चलाए जाते हैं
एक उपकोश में, और rc इसके बाद सिग्नल हैंडलर को हमेशा उनके डिफ़ॉल्ट मान पर पुनर्स्थापित करता है
एक कांटा()।
जबसे क्या है का उपयोग करता है गेटोप्ट(3) इसके तर्कों को पार्स करने के लिए, आप विशेष का उपयोग कर सकते हैं
तर्क--इसके झंडे ख़त्म करने के लिए. यह आपको a से शुरू होने वाले नामों का उपयोग करने की अनुमति देता है
डैश, जैसे इतिहास(1) आदेश. उदाहरण के लिए,
क्या है -- -प
उदाहरण
RSI पाली बिल्टिन केवल $* बदलता है। यह फ़ंक्शन किसी भी वेरिएबल ($lshift को छोड़कर) को शिफ्ट कर सकता है।
एफएन एलशिफ्ट { एलशिफ्ट=$*; *=$$1; शिफ्ट $lshift(2); $lshift(1)=$*}
इस परिभाषा के साथ,
वालरस = (जूते जहाज सील-मोम गोभी राजा)
एलशिफ्ट वालरस 3
वालरस क्या है?
प्रिंट
वालरस=(गोभी राजा)
$^var ऑपरेटर प्रत्येक तत्व को एक स्थान से अलग करके एक सूची को समतल करता है। यह फ़ंक्शन
विभाजक को एक मनमाना स्ट्रिंग होने की अनुमति देता है।
एफएन एलफ्लैट {
एलफ्लैट=$*; *=$$1
जबकि () {
प्रतिध्वनि -n $1; बदलाव
~ $#* 0 && ब्रेक
प्रतिध्वनि -एन $एलफ्लैट(2)
}
इस परिभाषा के साथ,
हॉप्स=(यूयूनेट मैकवैक्स यूकेसी टीएलजी)
एलफ्लैट हॉप्स!
प्रिंट (बिना किसी अंतिम नई पंक्ति के)
यूनेट!एमसीवैक्स!यूकेसी!टीएलजी
बाहर निकलें स्थिति
बाहर निकलने की स्थिति rc सामान्यतः निष्पादित अंतिम कमांड के समान ही होता है। यदि
अंतिम आदेश एक पाइपलाइन था, rc यदि पाइपलाइन में प्रत्येक कमांड ने काम किया है तो 0 से बाहर निकलता है; अन्यथा यह
निकास 1.
rc का उपयोग करके किसी विशेष स्थिति से बाहर निकाला जा सकता है निकास बिल्टिन।
व्याकरण
यहाँ है rcका व्याकरण, अर्थ संबंधी क्रियाओं को हटाने के लिए संपादित किया गया।
%टर्म एंडएंड बैकबैक बैंग केस काउंट डुप एल्स एंड फ्लैट एफएन फॉर इफ इन
% टर्म ओरोर पाइप रेडिर सब सबशेल स्विच ट्विडल जबकि वर्ड हुह
%बाएं जबकि ')' अन्यथा
%बाएँ ANDAND OROR '\n'
%लेफ्ट बैंग सबशेल
%बायाँ पाइप
%सही '$'
%बाएं उप
%प्रारंभ आरसी
%%
आरसी: लाइन अंत
| त्रुटि अंत
अंत: अंत /* ईओएफ */ | '\एन'
सीएमडीएसए: सीएमडी ';' | सीएमडी '&'
लाइन: सीएमडी | सीएमडीएसए लाइन
बॉडी: सीएमडी | सीएमडीएसएएन बॉडी
सीएमडीएसएएन: सीएमडीएसए | सीएमडी '\n'
ब्रेस: '{'बॉडी'}'
माता-पिता: '('शरीर')'
असाइन करें: पहला '=' शब्द
उपसंहार: /* खाली */ | रेडिर एपिलॉग
रेडिर: डीयूपी | रेडिर शब्द
केस: केस शब्द ';' | केस शब्द '\n'
सीबॉडी: सीएमडी | केस सीबॉडी | सीएमडीएसएएन सीबॉडी
iftail: cmd% सटीक ELSE
| ब्रेस ईएलएसई ऑप्टएनएल सीएमडी
सीएमडी: /* खाली */% सटीक जबकि
| सरल
| ब्रेस एपिलॉग
| आईएफ पैरेन ऑप्टएनएल इफटेल
| '(' शब्दों में शब्द ')' के लिए ऑप्टएनएल सीएमडी
| '(' शब्द ')' के लिए ऑप्टएनएल सीएमडी
| जबकि पैरेन ऑप्टनल सीएमडी
| स्विच '(' शब्द ')' ऑप्टएनएल '{' सीबॉडी '}'
| TWIDDLE ऑप्टकेयरट शब्द शब्द
| cmd ANDAND Optnl cmd
| सीएमडी याओआरओआर ऑप्टएनएल सीएमडी
| सीएमडी पाइप ऑप्टनल सीएमडी
| रेडिर सीएमडी %prec बैंग
| Cmd %prec BANG असाइन करें
| बैंग ऑप्टकेरेट सीएमडी
| सबशेल ऑप्टकेरेट सीएमडी
| एफएन शब्द ब्रेस
| एफएन शब्द
ऑप्टकैरेट: /* खाली */ | '^'
सरल: प्रथम | सरल शब्द | सरल redir
पहला: कॉमवर्ड | पहली '^' तलवार
तलवार: कॉमवर्ड | कीवर्ड
शब्द: तलवार | शब्द '^' तलवार
कॉमवर्ड: '$' तलवार
| '$' तलवार उप शब्द ')'
| तलवार गिनें
| सपाट तलवार
| '' तलवार
| '' '' ब्रेस
| बैकबैक शब्द ब्रेस | बैकबैक शब्द तलवार
| '(' शब्द ')'
| रेडिर ब्रेस
| शब्द
कीवर्ड: के लिए | में | जबकि | यदि | बदलना
| एफएन | अन्यथा | मामला | ट्विडल | बैंग | सबशेल
शब्द: /* खाली */ | शब्द शब्द
ऑप्टएनएल: /* खाली */ | ऑप्टनल '\n'
onworks.net सेवाओं का उपयोग करके rc ऑनलाइन का उपयोग करें