शाइन - लिनक्स कमांड - यूनिक्स कमान्ड

NAME

बाश - GNU Bourne-Again SHell

SYNOPSIS

बाश [विकल्पहरू] [फाइल]

वर्णन

बाश एक शर्म- अगत आदेश भाषा शब्दावली हो जसले मानक इनपुटबाट वा फाइलबाट पढ्ने आदेशहरू कार्य गर्दछ। बाशले कोर्नसी गोल्स ( केशसीएच ) बाट उपयोगी सुविधाहरू पनि समावेश गर्दछ।

बश को आईईईई पोसिक्स शैल र उपकरण विवरण (आईईईई कार्य समूह 1003.2) को एक निष्पक्ष कार्यान्वयन हुनु पर्छ।

विकल्पहरू

सेट बनाइने कमाण्डको वर्णनमा लिखित एकल-क्यारेल खोल विकल्पहरूको अतिरिक्त, बाशले निम्न अनुप्रयोगहरूलाई व्याख्या गर्दा व्याख्या गर्दछ:

-c string

यदि -c विकल्प उपस्थित छ भने, त्यसपछि आदेशबाट स्ट्रिङ पढ्न सकिन्छ। यदि स्ट्रिंग पछि तर्कहरू छन् भने, तिनीहरू वास्तविक मापदण्डहरूमा $ 0 सँग सुरू हुन्छ।

-i

यदि -i विकल्प उपस्थित छ भने, शेल अन्तरक्रियात्मक छ

-l

बाश कार्य गर्नुहोस् जस्तै लगइन खोलको रूपमा बोलाइयो (तल INVOCATION हेर्नुहोस्)।

-r

यदि -r विकल्प उपस्थित छ भने, शेललाई सीमित हुन्छ (तल उल्लेखित शेल हेर्नुहोस्)।

-s

यदि -एस विकल्प उपस्थित छ, वा कुनै तर्कहरू विकल्प प्रशोधन पछि बाँकी रहँदैन भने, त्यसपछि मानक आगतबाट पढ्ने आदेश गर्दछ। यो विकल्पले अन्तर्राष्ट्रिय मापदण्डहरूलाई अन्तरक्रियात्मक खोल प्रयोग गर्दा सेट गर्न अनुमति दिन्छ।

-D

$ 9 भन्दा अघि सबै डबल उद्धृत तारहरूको सूची मानक बाह्य मा प्रिन्ट गरिएको छ। यी तारहरू हुन् जुन वर्तमान अनुवाद सी वा POSIX होइन जब भाषा अनुवादको विषय हो। यो -n विकल्प; कुनै आदेशहरू निष्पादित गरिने छैन।

[- +] हे [ shopt_option ]

पसिनाको ढोका ढोकामा राखिएको छ। यदि shopt_option उपस्थित छ भने, -ओ त्यो विकल्पको मान सेट गर्दछ; + हे यो अनसेट गर्दछ। यदि shopt_option आपूर्ति छैन भने पसल द्वारा स्वीकार गरिएको शेल विकल्पहरूको नामहरू र मान मानक आउटपुटमा प्रिन्ट गरिएको छ। यदि आभ्वाइस विकल्प हो + O , आउटपुट एक ढाँचामा प्रदर्शित हुन्छ जुन इनपुटको रूपमा पुनः प्रयोग गरिएको हुन सक्छ।

A - विकल्पहरूको अन्त्य संकेत गर्दछ र थप विकल्प प्रसोधन अक्षम गर्दछ। पछि कुनै पनि तर्क - फाइलहरू र तर्कको रूपमा व्यवहार गरिएको छ। को एक तर्क - को बराबर छ -

बाशले धेरै बहु वर्णक विकल्पहरू पनि व्याख्या गर्दछ। यी विकल्पहरू एकल वर्ण विकल्पहरू पहिचान गर्न अघि आदेश लाइनमा देखा पर्छ।

- dump-po-strings

-D को बराबर, तर आउटपुट GNU gettext po (पोर्टेबल वस्तु) फाइल ढाँचामा छ।

- dump-strings

-D को बराबर

--help

मानक आउटपुटमा प्रयोग सन्देश प्रदर्शन गर्नुहोस् र सफलतापूर्वक निस्कनुहोस्।

--इनट-फाईल फाइल

--rcfile फाइल

मानक व्यक्तिगत सुरूवात फाइलको सट्टा फाइलबाट आदेशहरू कार्यान्वयन गर्नुहोस् ~ / .bashrc यदि शेल अन्तरक्रियात्मक छ (तल INVOCATION हेर्नुहोस्)।

--लग - इन

-l बराबर

- मतदान

GNU पढाई लाईब्रेरी प्रयोग नगर्नुहोस् क्यान्सर लाइनहरू पढ्न जब शेल अन्तरक्रियात्मक छ।

--नप्रोफाइल

प्रणाली-विस्तृत स्टार्टअप फाइल / आदि / प्रोफाईल वा व्यक्तिगत सुरुवात फाइलहरू मध्ये कुनै पनि पढ्न नगर्नुहोस् ~ / .bash_profile , ~ / .bash_login , वा ~ / .profile । पूर्वनिर्धारित रूपमा, बाशले यी फाईलहरूलाई लगइन खोलको रूपमा बोलाइएको बेला पढ्छ (तल INVOCATION हेर्नुहोस्)।

--नोर

यदि शेल अन्तरक्रियात्मक हो भने व्यक्तिगत सुरूआत फाइल ~ ~ .bashrc पढ्न र निष्पादित नगर्नुहोस्। यो विकल्प पूर्वनिर्धारितमा छ भने यदि शेलको रूपमा श शताब्दी हुन्छ

--पोक्स

बाशको व्यवहार परिवर्तन गर्नुहोस् जहाँ पूर्वनिर्धारित अपरेशनले POSIX 1003.2 मानकबाट मानक ( पोस्िक्स मोड ) मेल खान्छ।

- अवरोधित

शेल प्रतिबन्धित हुन्छ (तल उल्लेखित शेल हेर्नुहोस्)।

--rpm-need

शेल स्क्रिप्ट चलाउनका लागि आवश्यक फाइलहरूको सूची सिर्जना गर्नुहोस्। यसले '-एन' लागू गर्दछ र त्यही सीमाहरूको अधीनमा रहेको छ जस्तै समय जाँच जाँच जाँच गर्न; Backticks, [] परीक्षणहरू, र पदहरू पार्सित छैनन् त्यसैले केहि निर्भरताहरू सम्झन सक्दछ। -v बराबर बराबर -v

--वर्धन

यस उदाहरणको लागि मानक उत्पादनमा बाशको संस्करण संस्करण सफलतापूर्वक बाहिर निस्कनुहोस्।

ARGUMENTS

यदि तर्कहरू विकल्प प्रशोधन पछि बाँकी रहन्छन्, र न त सी -सी विकल्पहरू प्रदान गरिएको छ, पहिलो तर्कले शेल आदेशहरू समावेश गरेको फाइलको रूपमा ग्रहण गरिन्छ। यदि यस फेसनमा बाश बोकेको छ भने, $ 0 फाईलको नाममा सेट गरिएको छ, र आन्तरिक प्यारामिटरहरू बाँकी आर्गुमेन्टहरूमा सेट गरिएका छन्। बाशले यो फाईलबाट आदेशहरू पढ्छ र कार्यान्वयन गर्दछ, त्यसपछि बाहिर निस्कन्छ। बाश को बाहिर निकलें स्थिति स्क्रिप्ट मा निष्पादित अंतिम कमांड को बाहिर निकलें स्थिति हो। यदि कुनै आदेशहरू कार्यान्वयन गरिएन भने बाहिर निस्कने स्थिति 0. हालको डाइरेक्टरीमा फाईल खोल्न कोसिस गरिएको छ, र, यदि कुनै फाईल फेला परेन भने, शेलले स्क्रिप्टको लागि PATH मा निर्देशिकाहरू खोज्छ।

INVOCATION

लगइन खोल एक हो जसको शून्य तर्कको पहिलो वर्ण - - वा एक --login विकल्पको साथ सुरु भयो।

एक अन्तरक्रियात्मक खोल एक हो एक गैर विकल्प विकल्प बिना र बिना - सी विकल्प जसको मानक इनपुट र आउटपुट दुवै टर्मिनलहरू (जस्तै isatty (3) द्वारा निर्धारित, वा एक -i विकल्पको साथ सुरु भयो। PS1 सेट र $ - समावेश गर्दछ यदि बाश अन्तरक्रियात्मक छ, शेल लिपि वा यो स्टेटस परीक्षण गर्न एक स्टार्टअप फाइललाई अनुमति दिन्छ।

निम्न अनुच्छेदहरूले कसरी ब्यास आफ्नो स्टार्टअप फाइलहरू कार्यान्वयन गर्दछ भनेर वर्णन गर्दछ। यदि कुनै पनि फाईलहरू अवस्थित छन् तर पढ्न सकिँदैन, ब्यास त्रुटि रिपोर्ट गर्दछ। टेलिभिजन नामहरूमा विस्तार गरिएका छन् जसका रूपमा तल टेलिभिजन विस्तारको तल EXPANSION खण्डमा वर्णन गरिएको छ।

जब बाश को एक इंटरैक्टिव लगइन शैल को रूप मा आचरण गरिन्छ, या --लगइन विकल्प संग एक गैर इंटरैक्टिव खोल को रूप मा, यो पहिले फाइल / etc / प्रोफाइल देखि आदेश पढ्छ र निष्पादित गर्दछ, यदि यो फाइल अवस्थित छ। त्यो फाइल पढ्न पछि, यो ~ / .bash_profile , ~ / .bash_login , र ~ /। प्रोफाइलको लागि हेर्दछ , र यो आदेशमा पढ्ने र पढ्ने कार्यान्वयन गर्दछ र पढ्न योग्य छ। यस व्यवहारलाई रोक लगाउन शेल सुरू गरेपछि --नप्रोफाइल विकल्प प्रयोग गर्न सकिन्छ।

जब लगइन खोल बाहिर निस्कन्छ, बाश पढ्छ र फाइल ~ ~ .bash_logout बाट आदेशहरू कार्यान्वयन गर्दछ भने, यदि यो अवस्थित हुन्छ।

जब एउटा अन्तरक्रियात्मक खोल जुन लगइन शेल होइन, शुरू हुन्छ र ~ / .bashrc बाट आदेशहरू कार्यान्वयन गर्दछ, यदि यो फाइल अवस्थित छ भने। यो --अन्य विकल्प प्रयोग गरेर रोक लगाउन सकिन्छ। --rcfile फाइल विकल्पले बाशलाई पढ्न र ~ / .bashrc को सट्टा फाइलबाट आदेशहरू कार्यान्वयन गर्न बाध्य गर्नेछ।

जब बाशले गैर-अन्तरक्रियात्मक रूपमा सुरु गर्यो, शेल लिपि चलाउनको लागि, उदाहरणका लागि, यो परिवेशमा BASH_ENV चरमा देखिन्छ, यसको मूल्य विस्तार गर्दछ यदि त्यहाँ त्यहाँ देखिन्छ, र विस्तारित मान को प्रयोग गर्न र कार्यान्वयन गर्न फाइलको नामको रूपमा प्रयोग गर्दछ। । बश व्यवहार गर्दछ कि निम्न आदेश को कार्यान्वयन गरियो भने:

यदि [-N "$ BASH_ENV"]; त्यसपछि। "$ BASH_ENV"; fi

तर फाइल नामको खोजी गर्न PATH चरको मान प्रयोग गरिने छैन।

यदि बाश नाम श्याममा बोलाइएको छ भने, यो sh को ऐतिहासिक संस्करणहरु को स्टार्टअप व्यवहार को नकल गर्न को लागी को रूप मा संभव छ निकट को रूप मा, जबकि POSIX मानक को अनुरूप। जब एक अन्तरक्रियात्मक लगइन खोल को रूप मा बोलायो, ​​या गैर - इंटरैक्टिव खोल --loglog विकल्प को साथ, यो पहिले / etc / प्रोफाइल~ / .profile ले आदेशहरु लाई पढ्न र निष्पादित गर्ने प्रयास गर्दछ। यस व्यवहार लाई रोकन को लागी --नप्रोफाइल विकल्प प्रयोग गर्न सकिन्छ। नाम शर्मासँग अन्तरक्रियात्मक खोलको रूपमा बोलाउँदा , बाशले चर ENV को लागी देखिन्छ, यसको परिभाषित भएमा यसको मान विस्तार गर्दछ, र विस्तारित मान को प्रयोग गर्न र कार्यान्वयन गर्नको लागि फाईलको नामको रूपमा प्रयोग गर्दछ। कुनै पनि स्टार्टअप फाईलहरूबाट आदेशहरू पढ्न र कार्यान्वयन गर्न को लागी शेल को रूपमा निलम्बन गरेन भने, --rcfile विकल्पमा कुनै प्रभाव छैन। नाम sh सँग बोलाइएको गैर-अन्तरक्रियात्मक खोल कुनै अन्य स्टार्टअप फाइलहरू पढ्न प्रयास गर्दैन। जब sh को रूपमा बोलाइयो, स्टाश फाइलहरू पढ्न पछि पिकिक्स मोड प्रवेश गर्दछ।

जब प्याकिक्स मोडमा सुरु हुन्छ, --posix कमांड लाइन विकल्पको रूपमा, यो स्टार्टअप फाइलहरूको लागि POSIX मानक पछ्याउँछ। यस मोडमा, अन्तरक्रियात्मक गोलाहरू ENV चरनीय विस्तार गर्नुहोस् र आदेशहरू पढ्ने र कमाइएका फाइलबाट जसको नाम विस्तारित मान हो। कुनै अन्य स्टार्टअप फाइलहरू पढ्न सक्दैनन्।

Bash को रिमोट शेल डेमन द्वारा चलाइन्छ जब निर्धारित गर्न प्रयास गर्दछ, सामान्यतया rshd । यदि बाश निर्धारित गर्दछ कि यो rshd द्वारा चलाइन्छ , यो ~ / .bashrc बाट आदेशहरू पढ्छ र कार्यान्वयन गर्दछ भने, यदि यो फाइल अवस्थित छ र पठनीय छ। यो यो यदि यदि श को रूपमा बोलायो भने यो गर्नेछैन। यो व्यवहार लाई रोकन को लागी --नोर विकल्प को उपयोग गर्न सकिन्छ, र --rcfile विकल्प को उपयोग गर्न को लागि अर्को फाईल पढन को लागी उपयोग गर्न को लागी सक्छ, तर rshd ले सामान्यतया उन विकल्पहरु संग शेल को निमंत्रण गर्दैन या उनलाई निर्दिष्ट गरेन।

यदि शेल प्रभावकारी प्रयोगकर्ता (समूह) आईडीको साथ सुरु भएको छ भने वास्तविक प्रयोगकर्ता (समूह) आईडीको बराबर छैन, र the -p विकल्प प्रदान गरिएको छैन, कुनै स्टार्टअप फाईलहरू पढ्न सकिँदैन, शेल कार्यहरू पर्यावरणबाट जन्मिएका छैनन्, SHELLOPTS चर, यदि यो वातावरणमा देखा पर्दछ भने, उपेक्षा गरिन्छ, र प्रभावकारी प्रयोगकर्ता आईडी वास्तविक प्रयोगकर्ता आईडीमा सेट गरिएको छ। यदि -p विकल्प निमन्त्रणामा आपूर्ति गरिन्छ भने, स्टार्टअप व्यवहार त्यहि हो, तर प्रभावकारी प्रयोगकर्ता आईडी रिसेट छैन।

परिभाषाहरू

निम्न परिभाषाहरू यस कागजातका सबै बाकसहरू प्रयोग गरिन्छ।

खाली

एउटा स्पेस वा ट्याब।

शब्द

शेलद्वारा एकल एकाइको रूपमा मानहरूको वर्णहरूको अनुक्रम। टोकनको रूपमा पनि जान्छ।

नाम

अल्फान्युमेरिक क्यारेक्टरहरू मात्र छन् र अन्डरसेर्सहरू मात्र समावेश हुन्छन्, र वर्णमाला वर्ण वा अन्डरकोरको साथ सुरु हुन्छ। एक पहिचानकर्ताको रूपमा पनि उल्लेख गरिएको छ।

metacharacter

एउटा क्यारेक्टर, जब अपरिचित हुँदा शब्दहरू अलग गर्दछ। निम्न मध्ये एक:

| &; () <> स्पेस ट्याब

नियन्त्रण परिचालक

एक टोकन जसले नियन्त्रण प्रकार्य प्रदर्शन गर्दछ। यो निम्न प्रतीकहरूको एक हो:

|| &&; ;; () |

अनुरोध गरिएका शब्दहरू

सुरक्षित शब्दहरू शब्दहरू छन् जुन शेलको लागि विशेष अर्थ छ। निम्न शब्दहरू आरक्षित रूपमा पहिचान गरिन्छ जब अपरिचित र एक साधारण आदेश को पहिलो शब्द (तल SHELL ग्रैमर हेर्नुहोस्) वा एक मामलाको तेस्रो शब्द वा आदेशको लागि :

! केडीईले काम गरेको छ।

ग्लैमर

सरल आदेशहरू

एक सरल आदेश वैकल्पिक चर असाइनमेन्टहरूको अनुक्रम हो जसको पछि खाली खाली शब्दहरू र पुनःनिर्देशनहरू, र नियन्त्रण परिचालकद्वारा समाप्त हुन्छ। पहिलो शब्दले कार्यान्वयन गर्न आदेश निर्दिष्ट गर्छ, र शून्य तर्कको रूपमा पारित गरिएको छ। बाँकी शब्दहरू आक्रोशित आदेशमा आर्गुमेन्टको रूपमा उत्तीर्ण हुन्छन्।

सरल आदेशको फिर्ती मान यसको निस्कन स्थिति हो, वा 128 + n यदि आदेश संकेत एन द्वारा समाप्त हुन्छ।

पाइपलाइनहरू

एक पाइपलाइन वर्ण द्वारा विभाजित एक वा बढी आदेशहरूको अनुक्रम हो । पाइपलाइनको ढाँचा यो हो:

[ समय [ -पी ]] [! ] कमांड [ | कमांड 2 ...]

आदेशको मानक आउटपुट एक पाइप मा कमांड 2 को मानक इनपुटमा जोडिएको छ । यो जडान आदेश द्वारा निर्दिष्ट कुनै रिडायरेक्ट्स भन्दा पहिले प्रदर्शन गरिएको छ (तल उल्टो हेर्नुहोस्)।

यदि आरक्षित शब्द हो ! पाइपलाइन अघि बढ्छ, कि पाइपलाइनको बाहिर निस्कने अन्तिम आदेश अन्तिम आदेशको बाहिर निस्कने तार्किक छैन। अन्यथा, पाइपलाइनको स्थिति अन्तिम आदेशको निस्कन स्थिति हो। मूल्य फिर्ता गर्नु अघि खोल पाइप लाइनमा सबै आदेशहरूको लागि पर्ख्छ।

यदि आरक्षित समय शब्द पाइपलाइन भन्दा अघि रहेको छ, भत्काइएको साथै प्रयोगकर्ता र प्रणाली समय यसको निष्पादन द्वारा उपभोग गरिन्छ भने पाइपलाइन समाप्त हुन्छ। The -p विकल्पले आउटपुट ढाँचा परिवर्तन गर्दछ जुन POSIX द्वारा निर्दिष्ट गरिएको छ। TIMEFORMAT चर एक ढाँचा स्ट्रिङमा सेट गर्न सकिन्छ जुन निर्दिष्ट जानकारी कसरी प्रदर्शित हुनुपर्छ भनेर निर्दिष्ट गर्दछ; TIMEFORMAT को वर्णन शेल चर विचलन अन्तर्गत हेर्नुहोस्।

पाइपलाइनमा प्रत्येक आदेश अलग प्रक्रियाको रूपमा कार्यान्वित गरिएको छ (यानी, सब्सक्राइबमा)।

सूचीहरू

सूची एक एक वा बढी पाइपलाइनहरूको अनुक्रम हो जुन एक अपरेटरहरूको द्वारा विभाजित ; , & , && , या || , र वैकल्पिक रूपमा एक को द्वारा समाप्त ; , , वा

यी सूची अपरेटरहरूको &&|| बराबरको समानता छ, पछि ;&, जो बराबर पूर्वनिर्धारित छ।

एक वा धेरै नयाँलाइनहरूको क्रम अनुक्रममा डेमिमित आदेशहरूको सट्टामा सूचीमा देखा पर्न सक्छ।

यदि एक आदेश नियन्त्रण अपरेटर द्वारा समाप्त हुन्छ भने, शेलले सब्बिलमा पृष्ठभूमिमा कमांडलाई निष्पादित गर्दछ। शेलले आदेश समाप्त गर्न पर्खदैन, र फिर्तीको स्थिति हो। 0 आदेशहरू द्वारा अलग ; क्रमिक रूपमा क्रियान्वित गरिन्छ; बारीमा बन्द गर्न प्रत्येक आदेशको शेल पर्खन्छ। फिर्ती स्थिति अन्तिम आदेश निष्पादित को बाहिर निकलें स्थिति हो।

नियन्त्रण अपरेटरहरू &&|| क्रमशः र सूचिहरू र OR सूचीहरू क्रमशः। एउटा र सूचीको फारम छ

कमान 1 & कमान 2

कमान 2 लाई क्रियान्वित गरिएको छ, र केवल यदि, कमांड 1 शून्यको बाहिर निस्कन स्थिति फर्काउँछ।

एक सूची वा फारम छ

कमान 1 || कमांड 2

कमान 2 लाई क्रियान्वित गरिएको छ र यदि मात्र यदि कमाण्ड 1 गैर-शून्य प्रस्थान स्थिति फर्काउँछ। AND र OR को फिर्ती स्थिति सूचीमा कार्यान्वयन गरिएका अन्तिम आदेशको निस्कन स्थिति हो।

मिश्रित आदेशहरू

एक कम्पाउन्ड आदेश निम्न मध्ये एक हो:

( सूची )

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

{ सूची ; }

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

(( अभिव्यक्ति )

अभिव्यक्ति ARITHMETIC EVALUATION अन्तर्गत वर्णन गरिएका नियमहरूको अनुसार मूल्याङ्कन गरिएको छ यदि अभिव्यक्तिको मान गैर-शून्य हो भने फिर्तीको स्थिति 0 हो; अन्यथा फिर्ती स्थिति छ 1. यो " अभिव्यक्ति " गर्न को लागी एकदम समतुल्य छ।

[[ अभिव्यक्ति ]]

सशर्त अभिव्यक्ति अभिव्यक्तिको मूल्यांकनमा आधारित 0 वा 1 को स्थिति फर्काउनुहोस्। अभिव्यक्तिहरू CONDITIONAL EXPRESSIONS अन्तर्गत वर्णन गरिएका प्रिमियमहरूबाट बनाइएको छ शब्द विभाजन र मार्गनाम विस्तार [[]] बीचका शब्दहरूमा प्रदर्शन गरिएको छैन; tilde विस्तार, प्यारामिटर र चर विस्तार, गणित विस्तार, आदेश प्रतिस्थापन, प्रक्रिया प्रतिस्थापन, र उद्धरण हटाइएको प्रदर्शन गरिन्छ।

जब ==! = अपरेटरहरू प्रयोग गरिन्छ, सञ्चालकको दायाँतिरको स्ट्रिङ ढाँचा मानिन्छ र पन्टिन मिलानिङ तलको वर्णन गरिएका नियमहरूको अनुसार मिलान गरिन्छ । फिर्ती मान 0 हो भने स्ट्रिंग म्याचहरू वा ढाँचासँग मेल खाँदैन, क्रमशः, र 1 अन्यथा। स्ट्रिङको कुनै पनि भाग उद्धृत हुन सक्छ यो string को रूपमा मिलाउन बल गर्न।

अभिव्यक्ति निम्न अपरेटरहरु को उपयोग गर्न को लागी संयुक्त हुन सक्छ, पूर्वता को कम आदेश मा सूचीबद्ध:

( अभिव्यक्ति )

अभिव्यक्तिको मान फर्काउँछ। यो अपरेटरहरूको सामान्य पूर्वनिर्धारित अधिलेखन गर्न प्रयोग गर्न सकिन्छ।

! अभिव्यक्ति

सही यदि अभिव्यक्ति गलत छ।

अभिव्यक्ति 1 अभिव्यक्ति 2

सही यदि दुवै अभिव्यक्ति 1अभिव्यक्ति 2 सही हो।

अभिव्यक्ति 1 || अभिव्यक्ति 2 सही यदि वा अभिव्यक्ति 2 वा अभिव्यक्ति 2 सही हो।

&&|| संचालकहरूले अभिव्यक्ति 2 का मूल्यांकन गर्दैन भने अभिव्यक्ति 1 को मूल्य सम्पूर्ण सशर्त अभिव्यक्तिको फिर्ती मान निर्धारण गर्न पर्याप्त छ।

नाम [ शब्दमा ]; सूची बनाउनुहोस् ; गरे

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

को लागि (( expr1 ; expr2 ; expr3 )); सूची बनाउनुहोस् ; गरे

पहिलो, arithmetic अभिव्यक्ति expr1 ARITHMETIC इभोल्युशन अन्तर्गत वर्णन गरिएका नियमहरूको अनुसार मूल्याङ्कन गरिएको छ गणित अभिव्यक्ति expr2 त्यसपछि शून्यको मूल्याङ्कन नगरेसम्म बारम्बार यसको मूल्यांकन गरिन्छ। प्रत्येक समय expr2 को गैर-शून्य मानमा मूल्याङ्कन गर्दछ, सूची क्रियान्वित गरिएको छ र गणित अभिव्यक्ति expr3 मूल्याङ्कन गरिएको छ। यदि कुनै अभिव्यक्तिलाई हटाइयो भने, यसले व्यवहार गर्दछ जस्तो व्यवहार गर्दछ 1. रिटर्न मान निष्पादित सूचीमा अन्तिम आदेशको निस्कन स्थिति हो, वा गलत यदि कुनै अभिव्यक्तिको कुनै अमान्य छ।

नाम चयन गर्नुहोस् [ शब्दमा ]; सूची बनाउनुहोस् ; गरे

निम्न शब्दहरूको सूची विस्तार गरिएको छ, वस्तुहरूको सूची सिर्जना गर्दै। विस्तारित शब्दहरूको सेट मानक त्रुटिमा प्रिन्ट गरिएको छ, प्रत्येक नम्बरले अघिल्लो पटक। यदि शब्द मेटाइयो भने, मौलिक मापदण्डहरू मुद्रित हुन्छन् (तल PARAMETERS हेर्नुहोस्)। त्यसपछि PS3 प्रम्प्ट र प्रदर्शन गरिएको मानक इनपुटबाट लाइन। यदि रेखाले प्रदर्शित शब्दहरूको एक नम्बरमा समावेश गर्दछ भने, त्यसपछि नामको मान त्यस शब्दमा सेट गरिएको छ। यदि रेखा रिक्त छ भने, शब्दहरू र तुरुन्तै फेरि प्रदर्शन गरिन्छ। यदि EOF पढेको छ भने, आदेश पूरा गर्दछ। कुनै पनि अन्य मान पढ्ने कारणहरूले नाम खाली गर्न सेट गर्न। लाइन पढ्ने चर REPLY मा बचत गरिएको छ। प्रत्येक कक्ष पछि एक ब्रेक आदेश कार्यान्वयन भएपछि सूची निष्पादित गरिएको छ। चयन को बाहिर निकलें स्थिति सूची मा निष्पादित अंतिम आदेश को बाहिर निकलें स्थिति या शून्य यदि कुनै आदेश निष्पादित गरेन।

[ शब्द ] शब्द [[] ढाँचा [ | ढाँचा ]

एक क्यान्सर आदेशले पहिल्यै शब्द विस्तार गर्छ, र प्रत्येक पद्धतिलाई बदल्नमा म्याच गर्न कोसिस गर्दछ, उही मेल नियमहरु लाई Pathname विस्तारको रूपमा प्रयोग गर्दछ (हेर्नुहोस् Pathname तल विस्तार )। जब मिल्दो फेला पर्यो, त्यहि सूची क्रियान्वित गरिएको छ। पहिलो म्याच पछि, पछि कुनै म्याचहरू प्रयास गरिएन। कुनै पङ्क्ति मेल छैन भने बाहिर निस्कन स्थिति शून्य छ। अन्यथा, यो सूचीमा कार्यान्वयन गरिएका अन्तिम आदेशको निस्कन स्थिति हो।

यदि सूची ; त्यसपछि सूची; [ elif सूची ; त्यसपछि सूची ; ] ... [ सूची ; ] fi

यदि सूची क्रियान्वित गरिएको छ। यदि बाहिर निस्कने स्थिति शून्य छ भने त्यसपछि सूची निष्पादित गरिएको छ। अन्यथा, प्रत्येक elif सूची बारीमा कार्यान्वयन गरिएको छ, र यदि बाहिर निस्कने स्थिति शून्य हो, त्यस पछि सूची निष्पादित गरिन्छ र आदेश पूरा गर्दछ। अन्यथा, अर्को सूची क्रियान्वित हुन्छ, यदि वर्तमान। बाहिर निस्क्रिय स्थिति अन्तिम आदेश निष्पादित वा शून्यको बाहिर निस्किने स्थिति हो यदि कुनै हालत परीक्षण छैन भने।

जबकि सूची ; सूची बनाउनुहोस् ; गरे

सूची सम्म ; सूची बनाउनुहोस् ; गरे

जबकिआदेशले सूचीमा अन्तिम आदेश शून्यको बाहिरको स्थिति फर्काउँछ जबसम्म लामो समयसम्म सूचीमा कार्य सूची गर्दछ। जबसम्म आदेश कमान्ड आदेशसँग समान छ, बाहेक परीक्षण निषेध गरिएको छ; सूचीमा अन्तिम आदेशले गैर-शून्य प्रस्थान स्थिति फर्काउँछ जब सम्म सूची निष्पादित गरिएको छ। समयको अन्त्य स्थिति र अर्डर नभएसम्म अन्तिम कार्य सूची निष्पादित वा शून्य बाहिर निस्कने स्थितिमा कुनै पनि कार्यान्वयन भएन भने शून्य।

[ प्रकार्य ] नाम () { सूची ; }

यसले नाम नामक प्रकार्य परिभाषित गर्दछ। प्रकार्यको शरीर {र} को बीच आदेशहरूको सूची हो। यस सूचीलाई क्रियान्वित गरिन्छ जब नाम एक साधारण आदेशको नामको रूपमा निर्दिष्ट गरिएको छ। प्रकार्यको बाहिर निस्कने स्थिति शरीरमा निष्पादित अन्तिम आदेशको निस्कन स्थिति हो। (हेर्नुहोस् FUNCTIONS तल।)

टिप्पणी

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

QUOTING

उद्धरणलाई शेलमा निश्चित क्यारेक्टर वा शब्दहरूको विशेष अर्थ हटाउन प्रयोग गरिन्छ। उद्धरण विशेष क्यारेक्टरहरूको लागि विशेष उपचार अक्षम गर्न प्रयोग गर्न सकिन्छ, सुरक्षित शब्दहरू जस्तै मान्यता प्राप्त गर्नबाट रोक्न र पैरामीटर विस्तारलाई रोक्न रोक्न।

DEFINITIONS अन्तर्गत सूचीबद्ध metacharacters मध्ये प्रत्येक को शेल को लागि विशेष अर्थ छ र यो उद्धृत हुनुपर्छ यदि यसलाई प्रतिनिधित्व गर्दछ।

जब कमान इतिहास विस्तार सुविधाहरू प्रयोग गरिँदै, इतिहास विस्तार अक्षर, सामान्यतया ! इतिहासको विस्तार रोक्न उद्धृत हुनुपर्छ।

त्यहाँ तीन उद्धरण तंत्रहरू छन्: भाग्य वर्ण , एक उद्धरण, र डबल उद्धरणहरू।

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

एक उद्धरणमा क्यारेक्टरहरू संलग्न गर्ने उद्धरणहरू भित्र प्रत्येक क्यारेक्टरको लेटरल मान सुरक्षित गर्छ। एक एकल उद्धरण एक उद्धरण को बीच हुन सक्छ, हुन सक्छ जब ब्याकस्ल्याश देखि पहिले।

डबल उद्धरणमा क्यारेक्टरहरू संलग्न गर्ने $ , ` , र \ अपवादका साथ, सबै क्यारेक्टरहरूको उद्धरण भित्र उद्धृत मानहरू उद्धृत गर्दछ। वर्णहरू $` डबल उद्धरणहरू भित्रको विशेष अर्थ राख्नुहोस्। ब्याकस्ल्याशले यसको विशेष अर्थ मात्र राख्छ जब निम्नका क्यारेक्टरहरू मध्ये एक पछि: $ , ` , " , \ , वा । एक ब्याकस्ल्याशसँग अघिल्लो पटक डबल क्वोटहरू भित्र उद्धरण गर्न सकिन्छ।

विशेष प्यारामिटर *@ सँग विशेष अर्थ छ जब डबल उद्धरणहरू (तल PARAMETERS हेर्नुहोस्)।

$ ' स्ट्रिंग ' फारमको शब्दहरू विशेष रूपमा व्यवहार गरिन्छ। शब्दलाई स्ट्रिंगमा विस्तार गर्दछ, ब्याकस्ल्याश-एस्केप अक्षरहरूसँग ANSI C मानक द्वारा निर्दिष्ट रूपमा प्रतिस्थापित गरियो। ब्याकस्ल्याश एस्केप एनिमेसनहरू, यदि अवस्थित भएमा निम्न रूपमा डिकोड गरिएका छन्:

\ a

अलर्ट (घण्टी)

\ b

ब्याकस्पेस

\ e

एक भाग्य वर्ण

\ f

फारम फारम

\ n

नयाँ लाइन

\ r

गाडी फिर्ता

\ t

तेर्सो ट्याब

\ v

ठाडो ट्याब

\\

ब्याकस्ल्याश

\ '

एकल उद्धरण

\ nnn

आठ-बिट वर्ण जसको मूल्य अल्ट्रा मान हो एनएनएन (एक देखि तीन अङ्कहरू)

\ x एचएच

आठ-बिट क्यारेक्टर जसको मूल्य हेक्सडेसिमल मान एचएच (एक वा दुई हेक्स अङ्क) हो।

\ c x

एक नियन्त्रण एक्स चरित्र

विस्तृत परिणाम एकल उद्धृत छ, जस्तै कि डलर चिन्ह उपस्थित थिएन।

एक डलर चिन्ह ( $ ) द्वारा पहिले डबल-उद्धृत स्ट्रिङले हालको स्थानीय अनुसार अनुसार स्ट्रिङलाई अनुवाद गरिनेछ। यदि वर्तमान स्थान C या POSIX हो भने , डलर चिन्ह उपेक्षा गरिएको छ। यदि स्ट्रिङ अनुवाद र प्रतिस्थापन गरिएको छ भने, प्रतिस्थापन डबल उद्धृत छ।

PARAMETERS

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

एक प्यारामिटर सेट गरिएको छ भने यो मान निर्दिष्ट गरिएको छ। रिक्त स्ट्रिङ एक मान्य मान हो। एक पटक एक चर सेट भएको बेला, यो मात्र सेटअप बनाइएको आदेश प्रयोग गरेर अनसेट हुन सक्छ (तल SHELL बिनलिंक कमेन्टहरू हेर्नुहोस्)।

एक चर एक फारमको द्वारा निर्दिष्ट गर्न सकिन्छ

नाम = [ मूल्य ]

यदि मान दिइएको छैन भने, चरलाई रिक्त स्ट्रिङ सङ्कलन गरिएको छ। सबै मानहरूले टिडे विस्तार, परिमिति र चर विस्तार, आदेश प्रतिस्थापन, अंकवृद्धि विस्तार, र उद्धरण हटाइरहेको छ (तल EXPANSION हेर्नुहोस्)। यदि चरसँग यसको पूर्णांक विशेषता सेट छ, त्यसपछि मान गणित विस्तारको विषय हो भने पनि $ ((...) विस्तार प्रयोग गरिएको छैन (तल अंक विस्तारित हेर्नुहोस्)। शब्द विभाजन प्रदर्शन गरिएको छैन, "$ @" को अपवादको रूपमा निर्दिष्ट पैरामीटरहरू तल तल वर्णन गरिएको। पथनाम विस्तार प्रदर्शन गरिएको छैन। असाइनमेंट स्टेटमेंट घोषणा , प्रकार , निर्यात , पढ्नको लागि , र स्थानीय निर्मित आदेशहरू को लागी तर्कको रूपमा देखा पर्न सक्छ।

सकारात्मक परिमितिहरू

एक परिमिती प्यारामिटर एक वा बढी अङ्कहरू द्वारा वर्णित एक प्यारामिटर हो, एकल अङ्कहरू भन्दा अन्य 0. स्थितिको प्यारामिटरहरू श्वेत भएको बेलामा खण्डको आर्गुमेन्टले असाइन गरिन्छ, र सेट बनाइने कमान प्रयोग गरेर पुन: नामाकरण गर्न सकिन्छ। मौलिक मापदण्डहरू असाइनमेंट स्टेटहरूसँग असाइन गर्न सकिँदैन। जब एउटा शेल प्रकार्यलाई क्रियान्वित गरेमा मौलिक परिमितिहरू अस्थायी रूपमा प्रतिस्थापित हुन्छन् (तल FUNCTIONS हेर्नुहोस्)।

जब एक परिमितिक प्यारामिटर एक एकल अंक भन्दा बढि विस्तार भएको छ, यो ब्रेसिजमा संलग्न हुनुपर्छ (तल EXPANSION हेर्नुहोस्)।

विशेष प्यारामिटरहरू

शेलले धेरै मापदण्डहरू विशेष रूपमा व्यवहार गर्दछ। यी प्यारामिटरहरू मात्र सन्दर्भित हुन सक्छ; तिनीहरूलाई असाइनमेन्ट अनुमति छैन।

*

एकबाट सुरु हुने स्थिती परिमितिहरूमा विस्तार गर्दछ। जब विस्तार डबल उद्धरणहरू भित्र हुन्छ, यो एकल शब्दमा विस्तार गर्दछ प्रत्येक पैरामीटरको मान IFS विशेष चरको पहिलो वर्ण द्वारा विभाजित। त्यो हो, " $ * " " $ 1 c $ 2 c ... " को बराबर हो, जहाँ सी आईएफएस चरको मानको पहिलो अक्षर हो। यदि IFS अनसेट छैन भने, मापदण्ड रिक्त स्थानहरूद्वारा विभाजित हुन्छन्। यदि IFS रिक्त छ भने, प्यारामिटरहरू अलगावहरू हस्तक्षेप बिना सामेल हुन्छन्।

@

एकबाट सुरु हुने स्थिती परिमितिहरूमा विस्तार गर्दछ। जब विस्तार डबल उद्धरणहरू भित्र हुन्छ, प्रत्येक प्यारामिटरले फरक शब्दमा विस्तार गर्छ। त्यो हो, " $ @ " " $ 1 " " $ 2 " को बराबर हो ... जब कुनै पनि वास्तविक परिमितिहरू छैनन्, " $ @ " र $ @ केहि पनि होइन (जस्तै, तिनीहरू हटाइयो)।

#

दशमलव मा स्थितिक परिमितिहरूको संख्यामा विस्तार गर्दछ।

?

हालैको निष्पादित अग्रभूमि पाइपलाइनको स्थितिमा विस्तार गर्दछ।

-

हालको विकल्प फ्ल्यागलाई विस्तारित रूपमा उल्लेखित रूपमा निर्दिष्ट गर्दछ, सेट बनाइएको आदेश, वा शेल आफै ( जस्तै-i विकल्प) द्वारा सेट द्वारा सेट।

$

शेलको प्रक्रिया ID मा विस्तार गर्दछ। एक () सब्सल मा, यो हालको शेलको प्रक्रिया ID मा विस्तार गर्दछ, सब्सक्रिप्ट छैन।

!

हालैका कार्यान्वयन गरिएको पृष्ठभूमि (एसिक्र्रोस) कमानको प्रक्रिया आइडीमा विस्तार गर्दछ।

0

शेल वा शेल स्क्रिप्टको नाम विस्तार गर्दछ। यो शेल सुरूमा सेट गरिएको छ। यदि बाहिरी फाइलहरूको साथ बाश बोकेको छ भने $ 0 फाइलको नाममा सेट गरिएको छ। यदि बाश -c विकल्पको साथ सुरू भएको छ भने, $ 0 लाई स्ट्राइक गर्न को लागी पहिलो तर्कमा सेट गरिएको छ, यदि एक छ भने। अन्यथा, यो श्याकलाई बोल्न प्रयोग गरिएको फाइल नाममा सेट गरिएको छ, जस्तै शून्य तर्क दिईएको छ।

_

शेल स्टार्टअपमा, शेल वा शेल स्क्रिप्टको पूर्ण फाइल नाम सेट गर्नुहोस् तर्क सूचीमा पासको रूपमा क्रियान्वित गरिएको छ। त्यसपछि, विस्तार पछि, अन्तिम आदेशमा अन्तिम तर्कलाई विस्तार गर्दछ। साथै प्रत्येक कमांडको पूर्ण फाइल नाम सेट गरिएको छ जुन त्यो आदेशमा निर्यात गरिएको वातावरणमा राखिएको छ। मेल जाँच गर्दा, यो प्यारामिटरले अहिलेको मेल फाइलको नाम जाँच गरेको छ।

शेल चर

निम्न चरहरू शेलद्वारा सेट गरिएका छन्:

BASH

यस फाइललाई बाशको उदाहरण बोल्न प्रयोग गरिएको पूर्ण फाइल नाममा विस्तार गर्दछ।

BASH_VERSINFO

एक पढ्ने मात्र array variable जसका सदस्यहरूले यस प्रकारको बाशको संस्करण संस्करण जानकारी राख्छन्। Array members लाई सौंपिएको मानहरू निम्नानुसार छन्:

BASH_VERSINFO [ 0]

प्रमुख संस्करण संख्या ( रिलीज )।

BASH_VERSINFO [ 1]

सानो संस्करण संख्या ( संस्करण )।

BASH_VERSINFO [ 2]

प्याच स्तर।

BASH_VERSINFO [ 3]

निर्माण संस्करण।

BASH_VERSINFO [ 4]

रिलीज स्थिति (उदाहरण, बीटा 1 )।

BASH_VERSINFO [ 5]

MACHTYPE को मान

BASH_VERSION

एक उदाहरणलाई बाशको यो संस्करणको संस्करण वर्णन गर्दै string मा विस्तार गर्दछ।

COMP_CWORD

COMP_LINE

हालको आदेश लाइन। यो चर मात्र खोल कार्यहरू र प्रोग्रामयोग्य समाप्ति सुविधाहरूद्वारा आन्तरिक आदेशहरू मा उपलब्ध छ (तल प्रोग्रामिङ समापन हेर्नुहोस्)।

COMP_POINT

COMP_WORDS

Array variable (तल अन्धहरू हेर्नुहोस्) हालको कमांड लाइनमा व्यक्तिगत शब्दहरू हुन्छन्। यो चर प्रोग्रामल पूर्ण सुविधाहरू द्वारा निलम्बित मात्र खोल कार्यहरूमा उपलब्ध छ (तल प्रोग्रामिङ समापन हेर्नुहोस्)।

DIRSTACK

Array array ( under arrays हेर्नुहोस्) डाइरेक्टरी स्ट्याकको हालको सामग्रीहरू समावेश छन्। डाइरेक्टरीहरू क्रमबद्ध बनाइएको क्रममा स्ट्याकमा देखा पर्दछ। यो array चरको सदस्यहरूलाई असाइन गर्न स्ट्याकमा पहिल्यै डाइरेक्टरीहरू परिमार्जन गर्न प्रयोग गर्न सकिन्छ, तर pushdpopd buildins प्रयोग गर्नका लागि डाइरेक्टरीहरू थप्न र हटाउनका लागि प्रयोग गरिनुपर्दछ। यस चरमा असाइनमेन्टले हालको डाइरेक्टरी परिवर्तन गर्दैन। यदि DIRSTACK अनसेट छैन, यसले यसको विशेष गुणहरू गुमाउँछ, भले पनि यो पछि रिसेट हुन्छ।

EUID

हालको प्रयोगकर्ताको प्रभावकारी प्रयोगकर्ता आईडीमा विस्तार गर्छ, शेल स्टार्टअपमा प्रारम्भ गरिएको। यो चर पढ्ने मात्र हो।

FUNCNAME

कुनै पनि हाल-कार्यान्वयन खोल प्रकार्यको नाम। यो चर मात्र जब शेल प्रकार्य कार्यान्वयन गरिरहेको छ। FUNCNAME लाई असाइनमेन्ट कुनै प्रभाव छैन र त्रुटि स्थिति फर्काउँछ। यदि FUNCNAME सेट छैन भने, यसको विशेष गुणहरू गुमाउँछ, भले यो पछि रिसेट हुन्छ।

GROUPS

हालको प्रयोगकर्ता एक सदस्य हो जुन समुहहरूको सूची समावेश गरिएको array variable। GROUPS मा असाइनमेन्टहरू कुनै असर छैन र त्रुटि स्थिति फर्काउँछ। यदि GROUPS सेट छैन, यसले यसको विशेष गुणहरू गुमाउँछ, भले पनि यो पछि रिसेट हुन्छ।

HISTCMD

हालको आदेशको इतिहास सूचीमा इतिहास संख्या, वा अनुक्रमणिका। यदि HISTCMD सेट छैन भने, यसको विशेष गुणहरू गुमाउँछ, भले पनि यो पछि रिसेट हुन्छ।

HOSTNAME

हालको होस्टको नाममा स्वचालित रूपमा सेट गर्नुहोस्।

HOSTTYPE

स्वचालित रूपले एक स्ट्रिंगमा सेट गर्नुहोस् जुन अनियमित रूपमा मशीनको प्रकारको वर्णन गर्दछ जुन बाश निष्पादित गर्दछ। पूर्वनिर्धारित प्रणाली-निर्भर छ।

LINENO

प्रत्येक समय यो प्यारामिटर सन्दर्भ गरिएको छ, शेलले लिपि वा प्रकार्य भित्र हालको अनुक्रमिक लाइन नम्बर (1 सँग सुरु) प्रतिनिधित्व गर्ने दशमलव नम्बरलाई प्रतिस्थापन गर्छ। जब लिपि वा प्रकार्यमा छैन, मूल्य प्रतिस्थापनलाई सार्थक हुन गाह्रो छैन। यदि LINENO अनसेट छैन, यसले यसको विशेष गुणहरू गुमाउँछ, भले पनि यो पछि रिसेट हुन्छ।

MACHTYPE

स्ट्रिंगमा स्वचालित रूपमा सेट गर्नुहोस् जुन प्रणाली प्रकार टाइप गर्दछ जसले बाश निष्पादित गर्दछ, मानक जीएनयू सीपीयू-प्रणाली-प्रणाली ढाँचामा। पूर्वनिर्धारित प्रणाली-निर्भर छ।

OLDPWD

अघिल्लो कार्य डाइरेक्टरी सीडी कमाण्ड द्वारा सेट भएको।

OPTARG

Getopts builtin command द्वारा प्रशोधन गरिएको अन्तिम विकल्प तर्कको मूल्य (तल शेल बाइलिन कमेन्टहरू हेर्नुहोस्)।

OPTIND

प्राप्ताङ्कको निर्माण गरिएको आदेश द्वारा प्रसोधन गरिने अर्को तर्कको सूचकांक (तल शेल बाइलिन कमेन्टहरू हेर्नुहोस्)।

OSTYPE

स्वचालित रूपले एक स्ट्रिंगमा सेट गर्दछ जुन सञ्चालन प्रणालीमा ब्यास सञ्चालन गर्दछ। पूर्वनिर्धारित प्रणाली-निर्भर छ।

PIPESTATUS

सरणी चर (तल अङ्कहरू हेर्नुहोस्) सबैभन्दा हालसालै-निष्पादित अग्रभूमि पाइपलाइनमा प्रक्रियाहरूबाट बाहिर निस्कने वस्तु मानहरूको सूची समावेश गर्दछ (जुन जुन एक मात्र आदेश हुन सक्छ)।

PPID

शेलको अभिभावकको प्रक्रिया परिचय। यो चर पढ्ने मात्र हो।

PWD

हालको काम गर्ने डाइरेक्टरी जस्तै सीडी कमाण्ड द्वारा सेट गरिएको छ।

RANDOM

प्रत्येक समय यो प्यारामिटर सन्दर्भ गरिएको छ, 0 र 32767 बीचको यादृच्छिक पूर्णाङ्क उत्पन्न हुन्छ। यादृच्छिक नम्बरहरूको अनुक्रम RANDOM लाई मान असाइन गरेर प्रारम्भ गरिएको हुन सक्छ। यदि RANDOM सेटअप छैन भने, यसको विशेष गुणहरू गुमाउँछ, भले पनि यो पछि रिसेट हुन्छ।

जवाफ दिनुहोस्

कुनै आर्गुमेन्टलाई प्रदान गरिएपछि पढिएको निर्माण आदेश द्वारा पढ्ने इनपुटको लाइनमा सेट गर्नुहोस्।

SECONDS

प्रत्येक पङ्क्ति यो प्यारामिटर सन्दर्भ गरिएको छ, शेल आदेशन फर्काइएको छ पछि सेकेन्डको संख्या। यदि एक मान SECONDS को लागि तोकिएको छ भने, उल्लेखित मूल्यमा फर्किएको मान असाइनमेन्ट र मूल्य तोकिएपछि सेकेन्डको संख्या हो। यदि SECONDS अनसेट छैन, यसले यसको विशेष गुणहरू गुमाउँछ, भले पनि यो पछि रिसेट हुन्छ।

SHELLOPTS

सक्षम खोल विकल्पहरूको बृहदान्त्र विभाजित सूची। सूचीमा प्रत्येक शब्द एक निर्मित तर्कको लागि -O विकल्प को लागि बनाइएको आदेश को लागी (तल SHELL BILILIN COMMANDS हेर्नुहोस्)। SHELLOPTS मा देखा पर्ने विकल्पहरू सेट -ओ द्वारा को रूपमा रिपोर्ट गरिएका छन्। यदि यो चर वातावरणमा छ भने बाश अप सुरु हुन्छ, कुनै पनि स्टार्टअप फाइलहरू पढ्नु अघि सूचीमा प्रत्येक खोल विकल्प सक्षम हुनेछ। यो चर पढ्ने मात्र हो।

SHLVL

प्रत्येक पटक एक पटक बढेको बाशको उदाहरण सुरू भयो।

UID

हालको प्रयोगकर्ताको प्रयोगकर्ता आइडीमा विस्तार गर्छ, शेल स्टार्टअपमा प्रारम्भ गरिएको। यो चर पढ्ने मात्र हो।

शेलद्वारा निम्न चरहरू प्रयोग गरिन्छ। केहि अवस्थामा, बाशले पूर्वनिर्धारित मान चरमा प्रदान गर्दछ; यी घटनाहरू तल उल्लेख गरिएका छन्।

BASH_ENV

यदि बार्स लिपि कार्यान्वयन गरिरहेको बेला यो प्यारामिटर सेट गरिएको छ भने, यो मान शेल को प्रारम्भ गर्न आदेशमा समावेश फाइलनामको रूपमा व्याख्या गरिएको छ, जस्तै ~ / .bashrc माBASH_ENV को मान फाइल फाइलको रूपमा व्याख्या गर्नु अघि पैरामीटर विस्तार, आदेश प्रतिस्थापन, र गणित विस्तारको अधीनमा छ। नतिजा फाइल नाम खोजी गर्न PATH प्रयोग गरिएको छैन।

CDPATH

सीडी कमाण्डको खोजी खोजी। यो डाइरेक्टरीहरूको बृहदान्त्र-विभाजित सूची हो जुन शेल सीडी कमाण्ड द्वारा निर्दिष्ट गन्तव्य निर्देशिकाहरूको लागि देखिन्छ। एक नमूना मान हो "।: ~: / Usr"।

COLUMNS

चयन सूचिहरू मुद्रण गर्दा टर्मिनल चौडाइ निर्धारण गर्न चयन गरिएको निर्माण आदेश द्वारा प्रयोग गरिएको। स्वचालित रूपमा SIGWINCH को रसिद सेट अप गर्नुहोस्।

रचना

एक सरणी चर जो बाट ब्यास प्रोग्रामयोग्य समाप्ति सुविधा द्वारा निलम्बित शेल प्रकार्य द्वारा उत्पन्न संभावित पूरक पढ्छ (तल प्रोग्रामिंग पूर्णिमा हेर्नुहोस्)।

FCEDIT

एफसी निर्माण आदेशको लागि डिफल्ट सम्पादक।

FIGNORE

फाइलनाम पूरा गर्दा प्रदर्शनलाई बेवास्ता गर्न प्रत्यमा कोलोन-विभाजित सूची (तल हेर्नुहोस् READLINE )। एक फाइलनाम जसको प्रत्युत्तर FIGNORE मा प्रविष्टिहरू मध्ये एकसँग मेल खान्छ मेल खाएको फाइलहरूको सूचीबाट हटाइएको छ। नमूना मान ".o: ~" हो।

GLOBIGNORE

पथनाम विस्तार द्वारा बेवास्ता गर्न फाइलहरूको सेटको परिभाषित नमूनाहरूको बृहदान्त्र विभाजित सूची। यदि पथनाम विस्तार ढाँचा द्वारा मिलेको फाईलनामले GLOBIGNORE मा एउटा ढाँचाको पनि मेल खान्छ, यो मिल्दोको सूचीबाट हटाइएको छ।

HISTCONTROL

यदि उपेक्षास्पेसको मानमा सेट गरियो भने, रेखाहरू जुन स्पेस क्यारेक्टरको साथ सुरू हुन्छ इतिहास सूचीमा प्रविष्ट गरिएको छैन। यदि बेवास्ता गरिएको मानमा सेट गरियो भने, अन्तिम इतिहास लाइन मेल खाने लाइनहरू प्रविष्टि गरिएका छैनन्। बेवास्ता बेथको मूल्य दुई विकल्पहरूलाई जोड दिन्छ। यदि सेट अप गर्नुहोस्, वा ती माथिको तुलनामा कुनै पनि अन्य मान सेट गर्नुहोस्, पार्सर द्वारा पढ्ने सबै रेखाहरू इतिहास सूचीमा सुरक्षित छन्, HISTIGNORE को मानको अधीनमा। यो चरको प्रकार्य HISTIGNORE द्वारा सुपरस्पोड गरिएको छ। बहु- कन्ट्री कम्जन्डर कमानको दोस्रो र पछिल्लो रेखाहरू परीक्षण गरिएका छैनन्, र इतिहासमा थपिएको छ कि हिस्ट्रीको मूल्यको बाहेक।

HISTFILE

फाइलको नाम जुन आदेश इतिहास सुरक्षित हुन्छ (तल HISTORY हेर्नुहोस्)। पूर्वनिर्धारित मान ~ / .bash_history हो । यदि अनसेट भएमा, आदेश इतिहास इतिहास बचत नभएसम्म अन्तरक्रियात्मक खोलबाट निस्कन्छ।

HISTFILESIZE

इतिहास फाइलमा समावेश गरिएका रेखाहरूको अधिकतम संख्या। जब यो चर एक मान सङ्कलन गरिन्छ, इतिहास फाईल छोटो छ, यदि आवश्यक भएमा, रेखाहरूको संख्या भन्दा बढि हुन सकेन। पूर्वनिर्धारित मान 500 हो। इतिहास फाइल पनि यो आकारमा यसलाई टाइप गरेर पछि ट्रंक गरिएको छ जब अन्तरक्रियात्मक खोलबाट निस्कन्छ।

HISTIGNORE

इतिहास सूचीमा कुन कमान रेखाहरू सुरक्षित गरिनु पर्दछ निर्णय गर्न प्रयोग गरिएको ढाँचा-विभाजित सूची। प्रत्येक ढाँचा रेखाको शुरुआतमा लंगर गरिएको छ र पूरा लाइनसँग मेल खान पर्छ (कुनै निहितार्थ ` * 'संलग्न गरिएको छ)। प्रत्येक प्यास्ट HISTCONTROL द्वारा निर्दिष्ट जाँच पछि लाइनको विरुद्ध परीक्षण गरिएको छ। साधारण खोल ढाँचा मिलान क्यारेक्टरहरूको अतिरिक्त, ` & 'अघिल्लो इतिहास रेखासँग मेल खान्छ। ` & 'ब्याकस्ल्याश प्रयोग गरेर बचाउन सकिन्छ; एक मिलान प्रयास गर्नु अघि ब्याकस्ल्याश हटाइएको छ। बहु-लाइन कम्पाउन्ड कमानको दोस्रो र पछिल्लो रेखाहरू परीक्षण गरिएका छैनन्, र इतिहासमा थपिएको छ HISTIGNORE को मूल्य को बाहेक

HISTSIZE

आदेश इतिहासमा सम्झनको लागि आदेशहरूको संख्या (तल HISTORY हेर्नुहोस्)। डिफल्ट मान 500 हो।

घर

वर्तमान प्रयोगकर्ताको गृह डाइरेक्टरी; सीडी buildin कमांडका लागि पूर्वनिर्धारित तर्क। टेलिभिजन विस्तार गर्दा यो चरको मान पनि प्रयोग गरिन्छ।

HOSTFILE

फाइलको नाममा समान स्वरूपमा / etc / hosts समावेश गर्दछ जुन शेलले होस्टनाम पूरा गर्न आवश्यक पर्दछ। शेल चलिरहेको बेला सम्भव होस्टनाम नामको सूची परिवर्तन हुन सक्छ; अर्को पटक होस्टनाम नाम पूरा भएपछि मूल्य परिवर्तन भएपछि प्रयास गरिन्छ, बाशले नयाँ फाइलको सामग्रीहरू अवस्थित सूचीमा थप्दछ। यदि HOSTFILE सेट गरिएको छ भने, तर कुनै मान छैन, सम्भावित होस्टनामनाम समाप्तिहरूको सूची प्राप्त गर्नका लागि पढ्न / आदि / होस्टहरू पाउने प्रयास गर्नुहोस्। HOSTFILE अनसेट हुँदा, होस्टनाम सूची खाली छ।

IFS

आन्तरिक फिल्ड सेपरेटर जुन विस्तार पछि शब्द विभाजनको लागि प्रयोग गरिन्छ र पढिएको बनाइने आदेशसँग लाइनहरूमा विभाजन गर्न सकिन्छ । पूर्वनिर्धारित मान `` '' हो।

IGNOREEOF

EOF क्यारेक्टर एकमात्र इनपुटको रूपमा प्राप्त गर्न अन्तरक्रियात्मक खोलको कार्यलाई नियन्त्रण गर्दछ। यदि सेट छ, मान लगातार EOF क्यारेक्टरहरूको संख्या हो जुन बाश बाहिर निस्कनु अघि इन्पुट रेखामा पहिलो क्यारेक्टरको रूपमा टाईप गर्नु पर्छ। यदि चर अवस्थित छ तर संख्यात्मक मान छैन, वा कुनै मान छैन, पूर्वनिर्धारित मान 10। यदि अवस्थित छैन भने, EOF इनपुटको अन्त्य शेलमा संकेत गर्दछ।

INPUTRC

पढ्ने सुरुआत फाइलको लागि फाइलनाम, ~ / .inputrc को पूर्वनिर्धारित अधिलेखन (तल हेर्नुहोस्)।

LANG

कुनै पनि श्रेणी को लागि विशेष रूप देखि चयन गरिएको चर को लागी LC_ संग चर श्रेणी को निर्धारण गर्न को लागी प्रयोग गरे।

LC_ALL

यो चर LANG को मूल्य ओभरराइड गर्दछ र कुनै अन्य LC_ चर को स्थानीय श्रेणी को निर्दिष्ट गर्दछ।

LC_COLLATE

यो चरले पथनाम विस्तारको परिणामहरू क्रमबद्ध गर्दा कलेक्शन अर्डर प्रयोग गर्दछ, र दायरा अभिव्यक्ति, सम्वन्ध वर्गहरू, र पथनाम विस्तार र ढाँचा मिलानमा पङ्क्तिबद्ध अनुक्रमहरूको व्यवहार निर्धारण गर्छ।

LC_CTYPE

यो चरले क्यारेक्टरको व्याख्या निर्धारण गर्दछ र क्यारेक्टर वर्गहरूको व्यवहारमा पथनाम विस्तार र ढाँचा मिल्ने भित्र व्यवहार गर्दछ।

LC_MESSAGES

यो चरले स्थानीय को $ $ द्वारा डबल-उद्धृत स्ट्रिंग अनुवाद गर्न प्रयोग गरेको निर्धारण गर्दछ।

LC_NUMERIC

यो चरले डेटा ढाँचाको लागि प्रयोग गरिएको स्थानीय श्रेणी निर्धारण गर्दछ।

LINES

मुद्रण चयन सूचीहरूको लागि स्तम्भ लम्बाइ निर्धारण गर्न चयन गरिएको निर्माण आदेश द्वारा प्रयोग गरिएको। स्वचालित रूपमा SIGWINCH को रसिद सेट अप गर्नुहोस्।

MAIL

यदि यो प्यारामिटर फाइल फाइलमा सेट गरिएको छ र MAILPATH चर सेट गरिएको छैन भने, बाशले निर्दिष्ट फाइलमा मेलको प्रयोगकर्तालाई सूचित गर्दछ।

MAILCHECK

कति पटक (सेकेण्डमा) कसरी मेलको लागि बाश जाँच गर्दछ। डिफल्ट 60 सेकेन्ड छ। जब यो मेल जाँच गर्न समय हो, शेलले प्राथमिक प्रम्प्ट देखाउनु अघि। यदि यो चर अनसेट छैन, वा एक मानमा सेट गर्नुहोस् जुन संख्या शून्य भन्दा ठूलो वा बराबर छैन, शेलले मेल चेकिङ अक्षम गर्दछ।

MAILPATH

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

MAILPATH = '/ var / mail / bfox? "तपाईसँग मेल छ: ~ ~ / खोल मेल?" $ _ मेल छ! "'

Bash यस चरको लागि एक पूर्वनिर्धारित मान प्रदान गर्दछ, तर प्रयोगकर्ता प्रयोग गर्ने स्थानको स्थान प्रणाली निर्भर (जस्तै, / var / mail / $ USER ) हो।

OPTERR

यदि मान 1 मा सेट गरियो भने, ब्याशले बनाएको आदेशमा उत्पन्न त्रुटि सन्देशहरू देखाउँछ (तल शेल बाइलिन कमेन्टहरू हेर्नुहोस्)। OPTERR 1 को समयमा शेलमा बोलाइएको छ वा शेल लिपिलाई क्रियान्वित गरिन्छ 1 मा प्रारम्भ गरिएको छ।

PATH

आदेशहरूको लागि खोजी मार्ग। यो डाइरेक्टरीहरूको एक सेलो-विभाजित सूची हो जुन शेलले आदेशहरूको लागि देख्छ (तल COMMAND एक्स्पेषण हेर्नुहोस्)। डिफल्ट पथ प्रणाली-निर्भर छ, र प्रशासक द्वारा स्थापित जो स्थापित हुन्छ। एक सामान्य मूल्य `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''।

POSIXLY_CORRECT

यदि यो चर वातावरणमा हुन्छ जब बाश सुरु हुन्छ, शेलले स्टार्टअप फाईलहरू पढ्न भन्दा पहिले पिक्सिक्स मोडमा प्रवेश गर्छ, जस्तै - theposix आह्वान विकल्प विकल्प प्रदान गरिएको थियो। यदि होल चलिरहेको बेला सेट गरिएको छ भने, बाशले पोक्सिक्स मोड सक्षम गर्दछ , जस्तै यदि आदेश सेट -मा पोस्क्स निष्पादित गरिएको थियो।

PROMPT_COMMAND

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

PS1

यो प्यारामिटरको मान विस्तार गरिएको छ (तल PROMPTING हेर्नुहोस्) र प्राथमिक प्रम्प्ट स्ट्रिङको रूपमा प्रयोग गरियो। पूर्वनिर्धारित मान `` \ s- \ v \ $ '' हो।

PS2

यो प्यारामिटरको मान PS1 को रूपमा विस्तार गरिएको छ र माध्यमिक प्रम्प्ट स्ट्रिङको रूपमा प्रयोग गरिन्छ। पूर्वनिर्धारित `` > '' हो।

PS3

यो प्यारामिटरको मान चयन गरिएको आदेशका लागि प्रम्प्टको रूपमा प्रयोग गरिन्छ (माथिको SHELL ग्रैमर हेर्नुहोस्)।

PS4

यो प्यारामिटरको मान PS1 को रूपमा विस्तार गरिएको छ र प्रत्येक प्रिन्ट निष्पादित ट्रेसको दौरान ब्याश प्रदर्शन गर्दछ अघि मान मुद्रित गरिएको छ। PS4 को पहिलो क्यारेक्टर आवश्यक छ, बहुविध पटक पटक नक्कल गरिएको छ, नक्कली एकाधिक स्तरहरूलाई संकेत गर्न। पूर्वनिर्धारित `` + '' हो।

TIMEFORMAT

यो प्यारामिटरको मान एक ढाँचा स्ट्रिङको रूपमा प्रयोग गरिन्छ, कसरी निर्दिष्ट आरक्षित शब्दसँग पूर्वनिर्धारित पाइपलाइनहरूका लागि समयको जानकारी प्रदर्शित हुनुपर्छ। % क्यारेक्टर एक समयको मान वा अन्य जानकारीमा विस्तार गरिएको एक भाग अनुक्रम परिचय गर्दछ। भाग्यको क्रम र तिनीहरूको अर्थ निम्नानुसार छन्; ब्रेकसले वैकल्पिक भागहरू अस्वीकार गर्छ।

%%

एक शब्दावली %

% [ p ] [l] आर

सेकेन्डमा बितेका समयहरू।

% [ p ] [l] यू

प्रयोगकर्ता मोडमा खर्च गरिएको CPU सेकेन्डहरूको संख्या।

% [ p ] [l] एस

प्रणाली मोडमा खर्च गरिएको CPU सेकेन्डको संख्या।

% पी

CPU प्रतिशत, को रूपमा गणना गरिएको (% U +% S) /% R।

वैकल्पिक पी परिमाण निर्दिष्ट गरिएको अंक हो, दशमलव बिन्दु पछि आंशिक अंकहरूको संख्या। 0 को मानले कुनै दशमलव बिन्दु वा आउटपुट गर्न अंश लगाउँछ। दशमलव बिन्दु भन्दा धेरै ठाउँहरूमा निर्दिष्ट हुन सक्छ; 3 भन्दा बढी p को मानहरू 3 मा परिवर्तन गरिएका छन् भने यदि p निर्दिष्ट गरिएको छैन, मान 3 प्रयोग गरिन्छ।

वैकल्पिक ले एक लामो ढाँचा निर्दिष्ट गर्दछ, मिनेट सहित, MM एम एस एस फारम। एफएफ एस। पिक्सेलको मूल्य निर्धारण गर्दछ वा अंश समावेश छैन।

यदि यो चर सेट गरिएको छैन भने, बाशले कार्य गर्दछ कि मान $ $ \ nreal \ t% 3lR \ nuser \ t% 3lU \ ns% 3lS ' । यदि मान रिक्त छ भने, कुनै टाइम जानकारी प्रदर्शित छैन। एक स्ट्रिंग न्यूलाइन थपिएको छ जब ढाँचा स्ट्रिंग प्रदर्शित हुन्छ।

TMOUT

यदि शून्य भन्दा बढी मानमा सेट गरिएको छ भने, TMOUT पढिएको बनाइएकाको लागि पूर्वनिर्धारित टाइम आउटको रूपमा मानिन्छ। चयन आदेशले बन्द गर्दछ यदि इनपुट TMOUT सेकेण्ड पछि टर्मिनलमा आउँदा आउँदैन भने समाप्त हुन्छ। एक अन्तरक्रियात्मक खोलमा, प्राथमिक प्राथमिक प्रवर्धन जारी गरेपछि इनपुटको लागि प्रतीक्षाको लागि मानको व्याख्याको रूपमा मान व्याख्या गरिएको छ। ती भाग सेकेन्डको पर्खाइमा पर्दा पछि बन्द हुन्छ भने इनपुट आउँदैन।

auto_resume

यो चर नियन्त्रण कसरी शेल प्रयोगकर्ता र कार्य नियन्त्रणसँग अन्तर्क्रिया गर्दछ। यदि यो चर सेट गरिएको छ भने, एकल शब्द बिना रिरेयरिभहरू साधारण अवस्थित कार्यको पुन: सुचारुको लागि उम्मेदवारको रूपमा व्यवहार गरिन्छ। त्यहाँ कुनै अस्पष्टता अनुमति छैन; यदि स्ट्रिङ टाइपिङको साथ सुरु हुने एक भन्दा बढी काम छ भने, हालैको काम चयन गरिएको छ। रोकिने कामको नाम , यस सन्दर्भमा, यो सुरू गर्न प्रयोग गरिने कमान रेखा हो। यदि सही मूल्यमा सेट गरियो भने, स्ट्रिङ प्रदान गरिएको एउटा ठिकै कामको नामसँग मेल खान्छ; यदि सब्सट्रिङमा सेट गरियो भने, स्ट्रिङलाई प्रदान गरिएको रोकेको कामको नामको सबस्ट्रिङसँग मेल खान्छ। सबस्ट्रिङ मान % 1 लाई अनुरूपता प्रदान गर्दछ ? कार्य पहिचानकर्ता (तल JOB नियन्त्रण हेर्नुहोस्)। यदि कुनै अन्य मानमा सेट गरियो भने, प्रदान गरिएको स्ट्रिङको कामको नाम बन्द गर्नको उपसर्ग हुनुपर्दछ; यसले % कार्य पहिचानकर्तासँग अनुरूप कार्यक्षमता प्रदान गर्दछ।

histchars

इतिहास विस्तार र टोकनको नियन्त्रण गर्ने दुई वा तीन पात्रहरू (तल इतिहास EXPANSION हेर्नुहोस्)। पहिलो अक्षर इतिहास विस्तार पात्रता हो, क्यारेक्टरको विस्तारको सुरुवातले संकेत गर्दछ, सामान्यतया ` ! '। दोस्रो क्यारेक्टर छिटो प्रतिस्थापन क्यारेक्टर हो, जुन शर्टलाई प्रयोग गरिएको अघिल्लो आदेश पुन: चलाउनका लागि प्रयोग गरिन्छ, आदेशमा अर्कोको लागि एक स्ट्रिंग प्रतिस्थापन गर्दछ। पूर्वनिर्धारित ` ^ 'हो। वैकल्पिक तेस्रो वर्ण क्यारेक्टर हो जसले यसले संकेत गर्दछ कि बाँकी रहेको रेखाको एउटा शब्द हो जुन शब्दको पहिलो वर्णको रूपमा फेला पर्यो, सामान्यतया ` # '। इतिहास टिप्पणी चरित्रले बाहिरी रेखाको लागि इतिहास प्रतिस्थापनलाई छोडिदिन्छ। यो जरूरी कारणले खोल पार्सर बाँकी रेखालाई टिप्पणीको रूपमा व्यवहार गर्दैन।

Arrays

Bash एक-आयामी array variables प्रदान गर्दछ। कुनै पनि चर array को रूपमा प्रयोग गर्न सकिन्छ; निर्माण गरिएको घोषणा स्पष्ट रूपमा एक array घोषणा गर्नेछ। त्यहाँ array को साइजमा अधिकतम सीमा छैन, न त कुनै अनुक्रमणिका सदस्य अनुक्रमणिका हुन वा असंगत रूपमा असाइन गरिएको। अक्षहरू पूर्णांक प्रयोग गरी अनुक्रमित गरिन्छ र शून्य-आधारित छन्।

एक चर स्वचालित रूपमा सिर्जना गरिन्छ यदि कुनै चर असाइन्याक्स नाम [ सब्सक्रिप्ट ] = मान प्रयोग गर्न असाइन गरिएको छ। सब्सक्रिप्ट एक गणित अभिव्यक्तिको रूपमा व्यवहार गरिएको छ जुन शून्य भन्दा बढी वा बराबरको संख्यामा मूल्याङ्कन गर्नुपर्छ। स्पष्ट रूपमा array को घोषणा गर्न को लागी घोषणा को लागी प्रयोग गर्नुहोस् --एक नाम (तल बेल्जियम डिभिजन कम्मिन्ड हेर्नुहोस्)। घोषणा गर्नुहोस् -ए नाम [ सबस्क्रिप्ट ] पनि स्वीकार गरिन्छ; सब्सक्रिप्ट बेवास्ता गरिएको छ। घोषणाहरू र पढ्नको लागि मात्र प्रयोग गरिएका array variable को लागि निर्दिष्ट हुन सक्छ। प्रत्येक विशेषता array को सबै सदस्यहरूमा लागू हुन्छ।

Arrays फारम नाम = ( मूल्य 1 ... मूल्य एन ) को कम्पाउंड असाइनमेंट प्रयोग गर्न को लागी आवंटित गरिन्छ, जहाँ प्रत्येक मान फारम [ सबक्रिप्ट ] = स्ट्रिंग हो । मात्र string आवश्यक छ। यदि वैकल्पिक कोष्ठकहरू र सब्सक्रिप्ट आपूर्ति गरिन्छ भने, त्यो सूचकांक तोकियो; अन्यथा असाइन गरिएको तत्वको सूचकांक बयान गरिएको एक प्लस द्वारा प्रदान गरिएको अन्तिम अनुक्रमणिका हो। अनुक्रमणिका शून्यमा सुरु हुन्छ। यो सिन्ट्याक्स पनि निर्माण गरिएको घोषणा द्वारा स्वीकार गरिएको छ। व्यक्तिगत सरणी तत्व नाम प्रयोग गर्न को लागी निर्दिष्ट गर्न सकिन्छ [ सब्सक्रिप्ट ] = मूल्य सिन्ट्याक्स माथि प्रस्तुत गरियो।

अनसेट निर्माणमा arrays लाई नष्ट गर्न प्रयोग गरिन्छ। नाम [ उपस्क्रिप्ट ] सेट अप गर्नुहोस् array array index index मा। नाम अनसेट गर्नुहोस् , जहाँ नाम सरणी छ, वा नाम [ सब्सक्रिप्ट ] अनसेट गर्नुहोस् , जहाँ सबक्रिप्ट * वा @ जहाँ सम्पूर्ण सरण हटाउँछ।

घोषणा , स्थानीय , र पढ्नको लागि बनाइएका बनाइएका प्रत्येकले - निर्दिष्ट गर्न एक- एक विकल्प स्वीकार गर्छन्। पढेको निर्माणमा ए- ए - स्वीकार गर्दछ शब्दहरूको सूची निर्दिष्ट गर्न मानक इनपुटबाट array सम्म पढ्न। बनाइएका भवनहरूले array values ​​लाई एक तरिकामा प्रदर्शन गर्दछ जसले तिनीहरूलाई असाइनमेन्टको रूपमा पुन: प्रयोग गर्न अनुमति दिन्छ।

EXPANSION

शब्दहरूमा विभाजित भएपछि विस्तार रेखामा प्रदर्शन गरिन्छ। सात प्रकारका विस्तारहरू प्रदर्शन गरिएका छन्: विस्तार विस्तार , टेलिभिजन विस्तार , परिमिति र चर विस्तार , आदेश प्रतिस्थापन , गणित विस्तार , शब्द विभाजनमार्गनाम विस्तार

विस्तारको अर्डर हो: ब्रेस विस्तार, टिल्ड विस्तार, प्यारामिटर, चर र गणित विस्तार र आदेश प्रतिस्थापन (बाँया-देखि-दाँया फैशनमा गरियो), शब्द विभाजन, र पथनाम विस्तार।

प्रणालीमा यसले समर्थन गर्न सक्छ, त्यहाँ एक अतिरिक्त विस्तार उपलब्ध छ: प्रक्रिया प्रतिस्थापन

ब्रेस विस्तार

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

कष्ट विस्तार निस्क्रिय हुन सक्छ। प्रत्येक विस्तारित स्ट्रिंगको परिणामहरू क्रमबद्ध छैनन्; बाँया दाँया आदेश सुरक्षित छ। उदाहरणको लागि, एक { d, c, b } e `ade ace abe 'मा विस्तार गर्दछ।

कुनै अन्य विस्तारहरू अघि ब्रेस विस्तार प्रदर्शन गरिएको छ, र अन्य विस्तारका लागि विशेष क्यारेक्टर परिणाममा संरक्षित गरिन्छ। यो सख्त पाठक हो। बशले विस्तारको सन्दर्भ वा ब्रैसले बीचको पाठमा कुनै पनि सिंकरेटिक व्याख्या लागू गर्दैन।

यो निर्माण सामान्यतया हस्तक्षेपको रूपमा प्रयोग गरिन्छ जब तारहरूको सामान्य उपसर्ग उत्पन्न गरिएको माथिको उदाहरण भन्दा बढी छ:

mkdir / usr / local / src / bash / {old, new, dist, bugs}

वा

गाउन रूट /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

क्रेस विस्तार sh को ऐतिहासिक संस्करणहरु संग एक मामूली असंगति परिचय। sh विशेष रूप देखि जब उनि एक शब्द को भाग को रूप मा प्रकट हुँदा ब्रेकस को खोलन या समापन को उपचार गर्दैन, र आउटपुट मा उनलाई संरक्षित गर्दछ। बास ब्रेस्स शब्दहरुलाई कंगन विस्तार को परिणाम को रूप मा हटा दि्छ। उदाहरणका लागि, फाइल {1,2} को रूपमा शङ्घको रूपमा प्रविष्ट गरिएको शब्द निर्गत रूपमा उत्पादनमा देखिन्छ। समान शब्द फाईल 1 फाईल 2 को रूपमा ब्यास द्वारा विस्तार पछि। यदि सशर्तसँग सख्त अनुकूलता छ भने, + B विकल्पसँग छिटो सुरू गर्नुहोस् वा आदेश सेट गर्न + B विकल्पको साथ ब्रेस विस्तार असक्षम गर्नुहोस् (तल निस्कनुहोस् )।

टिल्ड विस्तार

यदि एक शब्द एक अपरिचित टेइल्ड वर्ण (` ~ ') सँग सुरु हुन्छ, पहिलो अपरिचित स्ल्याश (या सबै वर्णहरू, यदि कुनै अज्ञात स्ल्याश छैन भने) सबै क्यारेक्टरहरू टिइल्ड-उपसर्ग मानिन्छ। यदि Tilde-prefix मा क्यारेक्टरहरूको कुनै पनि उद्धृत गरिएको छैन, टिल्ड-उपसर्गमा क्यारेक्टरहरू सम्भव लगइन नामको रूपमा मानिन्छ। यदि यो लगइन नाम निलङ स्ट्रिङ हो भने, टिइल्ड पैरामीटर HOME को मानसँग प्रतिस्थापित गरिएको छ। यदि गृह सेट छैन भने, प्रयोगकर्ताको गृह डाइरेक्टरी सट्टा निष्पादित गर्नुको सट्टामा प्रतिस्थापन गरिएको छ। अन्यथा, टेलिड-उपसर्गले निर्दिष्ट डाइरेक्टरी नामसँग सम्बन्धित गृह डाइरेक्टरीसँग प्रतिस्थापित गरिएको छ।

यदि Tilde-prefix एक `~ + 'हो, शेल चरको PWD ले Tilde-prefix लाई प्रतिस्थापन गर्दछ। यदि टिइल्डर-उपसर्ग एक `~ - 'हो भने, यदि सेट गरिएको हो भने, होल्ड चर योग्य OLDPWD को मान प्रतिस्थापन गरिएको छ। यदि tilde-prefix मा टेन्डर पछ्याउने संख्या N मा समावेश छ भने , `+ 'वा` -' द्वारा वैकल्पिक रुपमा पूर्वनिर्धारित, टिइल्ड-उपसर्गलाई डाइरेक्टरी स्ट्याकबाट सम्बन्धित तत्वसँग प्रतिस्थापित गरिएको छ, जस्तै यो प्रदर्शित हुनेछ टिन्ड -उपसर्गको साथ तर्कको रूपमा निर्मित डियरहरू द्वारा तर्कको रूपमा। यदि टिइल्ड-उपसर्गमा टिइल्ड पछ्याउने क्यारेक्टरहरू `+ 'वा` -' को बिना एउटा नम्बर समावेश हुन्छन् भने, `+ 'ग्रहण गरिएको छ।

यदि लगइन नाम अमान्य छ, वा टिल्ड विस्तार विफल हुन्छ, शब्द अपरिवर्तित छ।

प्रत्येक चर कार्य असाइन गरिएको टेलिइड-उपसर्गका लागि तुरुन्तै निम्न : वा = को लागि जाँच गरिएको छ। यी अवस्थामा, टिइल्ड विस्तार पनि प्रदर्शन गरिएको छ। फलस्वरूप, कसैले फाइलमा नामहरू टाँस्का साथ कार्यहरूमा PATH , MAILPATH , र CDPATH मा प्रयोग गर्दछ , र शेलले विस्तारित मान असाइन गर्दछ।

परिमिति विस्तार

` $ 'वर्णले प्यारामिटर पैरामीटर विस्तार, कमाना प्रतिस्थापन, वा अंकवृद्धि विस्तार गर्दछ। पैरामीटर नाम वा प्रतीक विस्तार गर्न सकिन्छ ब्रेसिजमा संलग्न हुन सक्छ, जुन वैकल्पिक छन् तर चरको रक्षा गर्न सेवाको तुरुन्तै क्यारेक्टर नामको भागको रूपमा व्याख्या गर्न सकिन्छ।

जब ब्रेसेज प्रयोग गरिन्छ, मिल्दो समाप्ति कंगन पहिलो ` } 'ब्याकस्ल्याशबाट वा उद्धृत स्ट्रिङमा नछाडिएको छैन, र एम्बेडेड गणित विस्तार, कमान प्रतिस्थापन वा पैरामीटर विस्तार भित्र छैन।

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

तल प्रत्येक प्रत्येक अवस्थामा, शब्द टेलिभिजन विस्तार, परिमिति विस्तार, आदेश प्रतिस्थापन, र गणित विस्तारको विषय हो। जब सब्सटिंग विस्तार प्रदर्शन नगर्न, प्याकेजको लागि बाश परीक्षणहरू सेट नगर्नु भएको छ वा नल; एक सेटमा बृहदान्त्रको परिणाम केवल प्यामेटेरको लागि मात्र सेटअप गर्दै।

पूर्वनिर्धारित मानहरू प्रयोग गर्नुहोस् । यदि प्यारामिटर अनसेट वा खाली छ भने, शब्दको विस्तार प्रतिस्थापन गरिएको छ। अन्यथा, प्यारामिटरको मान प्रतिस्थापन गरिएको छ।

पूर्वनिर्धारित मानहरू असाइन गर्नुहोस् । यदि प्यारामिटर अनसेट वा खाली छ भने, शब्दको विस्तार परिमितिमा नियुक्त गरिएको प्यारामिटरको मूल्य त्यसपछि प्रतिस्थापन गरिएको छ। मौलिक प्यारामिटरहरू र विशेष प्यारामिटरहरू यस तरिकामा असाइन गर्न सकिँदैन।

यदि नल वा सेटअप गर्नुहोस् भने त्रुटि देखाउनुहोस् । यदि प्यारामिटर निलम्ब वा सेट छैन भने, शब्दको विस्तार (वा शब्द उपस्थित छैन भने विस्तारको सन्देश) मानक त्रुटि र शेलमा लेखिएको छ भने यदि अन्तरक्रियात्मक छैन भने निस्कन्छ। अन्यथा, प्यारामिटरको मान प्रतिस्थापन गरिएको छ।

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

चरको नामहरूमा विस्तार गर्दछ जसको नामहरू उपसर्गसँग सुरु हुन्छ, आईएफएस विशेष चरको पहिलो वर्ण द्वारा विभाजित।

प्यारामिटरको मानको लम्बाइलाई प्रतिस्थापन गरिएको छ। यदि प्यारामिटर * या @ छ भने , मूल्य प्रतिस्थापित वास्तविक परिमितिहरूको संख्या हो। यदि पैरामीटर * वा @ को सब्सक्रिप्ट गरिएको array नाम हो, मूल्य प्रति सरणी को तत्व को संख्या हो।

शब्द पथनाम विस्तारमा जस्तै ढाँचा उत्पादन गर्न विस्तार गरिएको छ। यदि प्याटर्न प्यारामिटरको मानसँग मेल खान्छ भने विस्तारको परिणाम प्यारामिटरको विस्तारित मानमा छोटो मिलान ढाँचा ("` ` # '' केसिस) वा सबैभन्दा लामो मेल खाने ढाँचा (" ` ## ' 'मामला' मेटाइयो। यदि पैरामीटर @ या * हो भने, प्रति स्थिति परिमितिमा ढाँचा हटाउने अपरेशन लागू हुन्छ, र विस्तार परिणामकारी सूची हो। यदि पैरामीटर @ वा * सँग array variable subscripted हो भने, ढाँचाको प्रत्येक सदस्यमा प्रतिमा हटाउने अपरेशन लागू हुन्छ, र विस्तार परिणामकारी सूची हो।

शब्द पथनाम विस्तारमा जस्तै ढाँचा उत्पादन गर्न विस्तार गरिएको छ। यदि ढाँचा प्यारामिटरको विस्तारित मानको पछाडि भागसँग मेल खान्छ भने, विस्तारको नतिजा पैरामीटरको विस्तारित मानमा छोटो मिलान ढाँचा (`` % '' केसिस) वा सबैभन्दा लामो मिल्दो ढाँचा (`` % % '' को मामला) मेटाइयो। यदि पैरामीटर @ या * हो भने, प्रति स्थिति परिमितिमा ढाँचा हटाउने अपरेशन लागू हुन्छ, र विस्तार परिणामकारी सूची हो। यदि पैरामीटर @ वा * सँग array variable subscripted हो भने, ढाँचाको प्रत्येक सदस्यमा प्रतिमा हटाउने अपरेशन लागू हुन्छ, र विस्तार परिणामकारी सूची हो।

ढाँचा पथनाम विस्तारमा जस्तै ढाँचा उत्पादन गर्न विस्तार गरिन्छ। परिमिति विस्तार गरिएको छ र यसको मानको विरूद्ध ढाँचाको सबैभन्दा लामो म्याच स्ट्रिङमा प्रतिस्थापित गरिएको छ। पहिलो रूपमा, केवल पहिलो म्याच प्रतिस्थापन गरिएको छ। दोस्रो फारम स्ट्रिङको साथमा प्रतिस्थापन को लागी सबै मिलानको कारण हुन्छ। यदि प्याटर्न # सँग सुरु हुन्छ भने, यो प्यारामिटरको विस्तारित मानको सुरुमा मेल खान्छ। यदि प्याटर्न % सँग सुरु हुन्छ भने, यो प्यारामिटरको विस्तारित मानको अन्त्यमा मेल खान्छ। यदि स्ट्रिङ रिक्त छ भने, ढाँचाका मेलहरू मेटिन्छन् र / निम्न ढाँचा हटाउन सकिन्छ। यदि पैरामीटर @ @ * हो भने, प्रतिवादी परिमार्जन प्रत्येक स्थितिमा परिमितिमा लागू हुन्छ, र विस्तार परिणाम सूची हो। यदि पैरामीटर @ वा * सँग array variable subcripted हो भने, प्रतिस्थापन सरणीको प्रत्येक सदस्यलाई बारीमा लागू हुन्छ, र विस्तार परिणाम सूची हो।

आदेश प्रतिस्थापन

आदेश प्रतिस्थापन आदेश नाम बदल्न आदेशको आउटपुटलाई अनुमति दिन्छ। त्यहाँ दुई ढाँचाहरू छन्:

$ ( आदेश )

वा

` कमांड`

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

जब प्रतिस्थापनको पुरानो शैली ब्याकक्वाट प्रयोग गरिन्छ, ब्याकस्ल्याशले यसको शाब्दिक अर्थलाई बेरिएको छ बाहेक $ , ` , वा \ । ब्याकस्ल्याश द्वारा पहिले गरिएको पहिलो ब्याकक्वाट आदेश प्रतिस्थापन समाप्त हुन्छ। $ ( आदेश ) फारम प्रयोग गर्दा, अभिभावकहरूको बीचमा सबै क्यारेक्टर आदेश बनाउँछ; कुनै पनि विशेष रूपमा व्यवहार गरिएको छैन।

आदेश प्रतिस्थापनहरू निस्क्रिय हुन सक्छ। Backquoted फारम प्रयोग गर्दा घोंसलामा, ब्याकस्लाशहरूसँग भित्री backquotes बाट बचाउनुहोस्।

यदि प्रतिस्थापन डबल उद्धरणहरू भित्र देखा पर्दछ भने, शब्द विभाजन र पथ उपनाम विस्तार परिणामहरूमा प्रदर्शन गरिएको छैन।

गणित विस्तार

अंकगणना विस्तारले गणित अभिव्यक्तिको मूल्यांकन र परिणामको प्रतिस्थापनलाई अनुमति दिन्छ। गणित विस्तारको लागि ढाँचा:

$ (( अभिव्यक्ति )

अभिव्यक्ति मानिन्छ यदि यो डबल उद्धरणहरू भित्र थिए, तर पेन्डिङ भित्र एक डबल उद्धरण विशेष रूपमा व्यवहार गरिएको छैन। अभिव्यक्तिमा सबै टोकन परिमिति विस्तार, स्ट्रिङ विस्तार, आदेश प्रतिस्थापन, र उद्धरण हटाइयो। अंकगणित प्रतिस्थापनहरू निस्क्रिय हुन सक्छन्।

मूल्यांकन ARITHMETIC EVALUATION अन्तर्गत तल सूचीबद्ध नियमहरू अनुसार गरिन्छ यदि अभिव्यक्ति अमान्य छ भने, बाशले सन्देश संकेत विफलता प्रिन्ट गर्छ र कुनै प्रतिस्थापन हुन्छ।

प्रक्रिया प्रतिस्थापन

प्रक्रिया प्रतिस्थापन प्रणालीहरूमा समर्थन गरिन्छ जुन पाइपहरू ( FIFOs ) नाम वा खुला फाइलहरू नामकरण गर्ने / dev / fd विधि समर्थन गर्दछ। यसले <( सूची ) वा > ( सूची ) को रूप लिन्छ। प्रक्रिया सूची FIFO मार्फत वा केहि फाइलमा / dev / fd सँग यसको इनपुट वा निर्गतसँग चलिरहेको छ। यो फाइलको नाम विस्तारको परिणामको रूपमा वर्तमान आदेशमा तर्कको रूपमा पारित गरिएको छ। यदि > ( सूची ) फारम प्रयोग गरिन्छ भने फाइलमा लेख लिस्टको लागि आगत प्रदान गर्दछ। यदि <( सूची ) फारम प्रयोग गरिन्छ, फाइलको उत्पादन प्राप्त गर्न तर्कको रूपमा पठाइएको फाइल पढ्न सकिन्छ।

उपलब्ध हुँदा, प्रक्रिया प्रतिस्थापन एक साथ पैरामीटर र चर विस्तार, आदेश प्रतिस्थापन, र गणित विस्तार संग एक साथ प्रदर्शन गरिन्छ।

शब्द विभाजन

शेलले पैरामीटर विस्तार, आदेश प्रतिस्थापन, र गणित विस्तारको नतिजा स्क्यान गर्दछ जुन शब्द विभाजनका लागि डबल उद्धरणहरू भित्र पर्दैन।

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

स्पष्ट निलम्ब तर्कहरू ( "" वा ' ) ' राखिएको छ। कुनै मानहरू छैन भनेर प्यारामिटरहरूको विस्तारबाट नपढिएको, निष्कर्षण निषेध नग्न तर्कहरू हटाइएका छन्। यदि कुनै मानको साथमा एक प्यारामिटर डबल उद्धरणहरू भित्र विस्तार गरिएको छ भने, एक ठुलो तर्क परिणामहरू र राखिएको छ।

ध्यान दिनुहोस् कि यदि विस्तार भएन भने, कुनै विभाजन गरिएको छैन।

पथनाम विस्तार

शब्द विभाजनपछि, -f विकल्प सेट गरिएको नभएसम्म, बाशले क्यारेक्टरको लागि हरेक शब्द स्क्यान गर्दछ * ,? , र [ । यदि यी क्यारेक्टरहरू मध्ये एक छ भने, त्यसपछि शब्द ढाँचाको रूपमा मानिन्छ, र ढाँचासँग मेल खाने फाइल नामहरूको वर्णमाला क्रमबद्ध सूचीसँग प्रतिस्थापित गरियो। यदि मिल्दो फाइल नामहरू फेला परेन भने, र शेल विकल्प nullglob अक्षम गरिएको छ, शब्द अपरिवर्तित छोडिएको छ। यदि nullglob विकल्प सेट गरिएको छ, र कुनै मिल्दो भेटिएन भने शब्द हटाइयो। यदि शेल विकल्प नोकोसग्लोब सक्षम छ भने, म्याच अल्फ वर्णको क्यारेक्टरको सन्दर्भ बिना गरिन्छ। जब पथनाम विस्तारको लागि एउटा ढाँचा प्रयोग गरिन्छ, वर्णको सुरुवातमा वर्ण ``। '' वा तुरुन्तै स्लाश पछ्याउनु पर्छ स्पष्ट रूपमा मेल खाँदैन, जबसम्म शेल विकल्प डटग्लोब सेट गरिएको छैन। एक पथनाम मिलान गर्दा, स्ल्याश वर्ण सधैँ स्पष्टसँग मेल खाने हुनुपर्छ। अन्य अवस्थामा, ``। ' क्यारेक्टर विशेष रूपमा व्यवहार गरिएको छैन। निलोसेग्लोब , nullglob , र डटग्लोब शेल विकल्पहरूको वर्णनको लागि शेल बाइलिन कमेन्स अन्तर्गत तल पसलको विवरण हेर्नुहोस्।

GLOBIGNORE शेल चर प्रयोग गर्न मिल्दो फाइल नाम सेट गर्न को लागी एक ढाँचा मिलान गर्न प्रयोग गर्न सकिन्छ। यदि GLOBIGNORE सेट गरिएको छ भने, प्रत्येक मिल्दो फाइल नाम जो पनि GLOBIGNORE मा एक नमूनाहरू सँग मेल खान्छ मेल खाने सूचीबाट हटाइएको छ। फाइल नाम ``। ''`` .. '' सधैँ उपेक्षा गरिन्छ, भित्ता GLOBIGNORE सेट भए पनि। यद्यपि, GLOBIGNORE लाई सेटिङमा डटग्लोब शेल विकल्प सक्षम गर्ने प्रभाव छ, त्यसैले ``। '' सँग सुरु हुने अन्य फाइल नामहरू मेल खानेछ। ``। '' सँग सुरु भएको फाइल नामहरूलाई बेवास्ता गर्न पुरानो व्यवहार प्राप्त गर्न को लागि GLOBIGNORE मा ढाँचा को ``। * * '' बनाउनुहोस् । जब GLOBIGNORE अनसेट छैन, डटग्लोब विकल्प अक्षम गरिएको छ।

पैटर्न मिलान

ढाँचामा देखा पर्ने कुनै पनि क्यारेक्टर, तल वर्णित विशेष ढाँचा क्यारेक्टरहरू भन्दा पनि अन्यसँग मेल खान्छ। NUL क्यारेक्टर ढाँचामा हुन सक्दैन। यदि साँच्चिकै मेल खाँदैन भने विशेष ढाँचा अक्षरहरू उद्धृत हुनुपर्छ।

विशेष ढाँचा वर्णहरू निम्न अर्थहरू छन्:

*

कुनै पनि स्ट्रिङसँग मेल खान्छ।

?

कुनै पनि क्यारेक्टर मेल खान्छ।

[...]

कुनै पनि संलग्न क्यारेक्टरहरूसँग मेल खान्छ। हाइफन द्वारा विभाजित क्यारेक्टरहरूको जोडी एक दायरा अभिव्यक्ति देखाउँदछ; कुनै क्यारेक्टर जसले ती दुई वर्णहरू बीचमा समावेश गर्दछ, समावेशी, हालको स्थानको कोलेटिङ अनुक्रम र क्यारेक्टर सेट प्रयोग गरी, मिल्दो छ। यदि पहिलो क्यारेक्टर पछि [ हो ! वा एक ^ त्यसपछि कुनै क्यारेक्टर संलग्न गरिएको छैन। वर्ण अभिव्यक्तिमा वर्णहरूको क्रमबद्ध क्रम हालको स्थानीय र LC_COLLATE शेल चरको मान, यदि सेट गरिएको हो। ए - सेटको पहिलो वा अन्तिम क्यारेक्टरको रूपमा समावेश गरेर मेल खाने हुन सक्छ। A ] सेटको पहिलो क्यारेक्टरको रूपमा समावेश गरेर मेल खाने हुन सक्छ।

[] भित्र [ क्यारेक्टर वर्गहरू सिंक्याक्स प्रयोग गरेर निर्दिष्ट गर्न सकिन्छ [: class :] , जहाँ वर्ग POSIX.2 मानकमा परिभाषित निम्न कक्षाहरू मध्ये एक हो:

अन्नम अल्फा एस्सीआई रिक्त cntrl अङ्कको ग्राफ न्यून मुद्रण पङ्क्ति स्पेस माथिल्लो शब्द xdigit
एक क्यारेक्टर वर्ग सँग सम्बन्धित कुनै क्यारेक्टरसँग मेल खाँदैन। शब्द क्यारेक्टर अक्षरहरू, अङ्कहरू, र क्यारेक्टर मेल खान्छ।

[] भित्र [] , एक समीकरण वर्ग वाक्य रचना [= c =] को प्रयोग गरेर निर्दिष्ट गर्न सकिन्छ, जुन क्यारेक्टरको रूपमा सबै क्यारेक्टरसँग एकै टकरावको वजन (वर्तमान स्थान अनुसार परिभाषित गरिएको) सँग मेल खान्छ।

[] भित्र [ syntax [। प्रतीक ।] कलिङ प्रतीक प्रतीकसँग मेल खान्छ।

यदि पसल निर्माणको प्रयोग गरेर एक्सग्लोब शेल विकल्प सक्षम गरिएको छ भने, धेरै विस्तारित प्याटर्न मिलान अपरेटरहरू पहिचान गरिएका छन्। निम्न विवरणमा, ढाँचा-सूची एक वा बढी ढाँचाहरूको एक सूची हो । एक भन्दा बढी उप-ढाँचाहरू प्रयोग गरी समग्र ढाँचाहरू गठन गर्न सकिन्छ:

? ( ढाँचा सूची )

दिइएको ढाँचाको शून्य वा एक घटनासँग मेल खान्छ

* ( ढाँचा सूची )

दिएका ढाँचाहरूको शून्य वा थप घटनाहरू मेल खान्छ

+ ( ढाँचा सूची )

दिएका ढाँचाहरूको एक वा बढी घटनाहरू मेल खान्छ

@ ( ढाँचा सूची )

ठीक मा दिइएको ढाँचाबाट मेल खान्छ

! ( ढाँचा-सूची )

दिएका ढाँचा मध्ये एक बाहेक कुनै पनि मेल खान्छ

उद्धरण हटाउने

अघिल्लो विस्तार पछि, क्यारेक्टरहरूको सबै अपरिचित घटनाहरू \ , ' , र ' जसले माथिको विस्तार मध्ये कुनै एक परिणाम हटाइएन।

रेडियरेसन

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

निम्न विवरणहरूमा, यदि फाइल वर्णनकर्ता नम्बर छोड्नुभयो भने, र पुन: परिचालन परिचालकको पहिलो वर्ण < , पुन: वितरण मानक इनपुट (फाइल वर्णनकर्ता 0) लाई बुझाउँछ। यदि पुनर्निर्देशन अपरेटरको पहिलो अक्षर > हो , पुनःनिर्देशन मानक आउटपुट (फाइल वर्णनकर्ता 1) लाई बुझाउँछ।

पुनरावर्ती अपरेटरलाई निम्न विवरणहरूमा पछ्याउने शब्द, जबसम्म अन्यथा उल्लेख गरिएको छैन, विस्तार गर्न, टेलिभिजन विस्तार, प्यारामिटर विस्तार, आदेश प्रतिस्थापन, गणित विस्तार, उद्धरण हटाउने, पथनाम विस्तार, र शब्द विभाजन गर्न कन्डम गरिन्छ। यदि यो एक भन्दा बढी शब्दलाई विस्तार गर्छ भने, बाशले त्रुटि रिपोर्ट गर्छ।

याद गर्नुहोस् कि पुन: पुनःनिर्देशनको अर्डर महत्त्वपूर्ण छ। उदाहरणका लागि, आदेश

ls > dirlist 2 > & 1

डेलिलिस्ट फाइलमा मानक आउटपुट र मानक त्रुटि दुवै निर्देश गर्दछ, जबकि आदेश

ls 2 > & 1 > dirlist

डिलिस्टिस्ट फाइल गर्न केवल मानक आउटपुट निर्देशन गर्दछ, किनभने मानक त्रुटि डिललिस्टमा मानक आउटपुट पुन: निर्देशित गर्नु अघि मानक आउटपुटको रूपमा डुप्लिकेट गरिएको थियो।

बाशले विशेष रूपमा धेरै फाइलनामहरूलाई ह्यान्डल गर्छ जब तिनीहरू पुनःनिर्देशनमा प्रयोग गरिन्छ, निम्न तालिकामा वर्णन गरिएको:

/ dev / fd / fd

यदि एफडी एक मान्य पूर्णांक हो, फाइल वर्णनकर्ता एफडी नक्कल गरिएको छ।

/ dev / stdin

फाइल वर्णनकर्ता 0 डुप्लिकेट गरिएको छ।

/ dev / stdout

फाइल वर्णनकर्ता 1 डुप्लिकेट गरिएको छ।

/ dev / stderr

फाइल वर्णनकर्ता 2 नक्कल गरिएको छ।

/ dev / tcp / host / port

यदि होस्ट एक मान्य होस्टनाम वा इन्टरनेट ठेगाना हो, र पोर्ट एक पूर्णांक पोर्ट नम्बर वा सेवा नाम हो, बाशले टिसीपी जडानलाई सम्बन्धित सकेटमा खोल्न प्रयास गर्दछ।

/ dev / udp / host / port

यदि होस्ट एक मान्य होस्टनाम वा इन्टरनेट ठेगाना हो, र पोर्ट एक पूर्णांक पोर्ट नम्बर वा सेवा नाम हो, ब्याशले समान सकृयमा UDP जडान खोल्न प्रयास गर्दछ।

फाइल खोल्न वा सिर्जना गर्न विफलतालाई पुन: प्राप्तिको कारणले गर्दा।

पुन: निर्देशित इनपुट

इनपुटको पुनःनिर्देशनले फाइलको वर्णन गर्दछ जसको नाम फाइलको विस्तारबाट परिणाम फाइल वर्णनकर्ता एन , वा मानक इनपुट (फाइल वर्णनकर्ता 0) पढ्नको लागी खोल्नको लागि यदि n निर्दिष्ट गरिएको छैन।

इनपुट पुनः निर्देशनको लागि सामान्य ढाँचा:

[ n ] < शब्द

आउटपुट पुन: निर्देशित गर्दै

निर्गतको पुनःनिर्देशनले फाइलको वर्णन गर्नका लागि फाइलको विस्तारबाट नतिजा फाइल डिस्क्रिप्टर एन , वा मानक आउटपुट (फाईल वर्णनकर्ता 1) मा यदि यो निर्दिष्ट गरिएको छैन भने परिणाम उत्पन्न गर्दछ। यदि फाइल अवस्थित छैन यो सिर्जना गरिएको छ; यदि यो अवस्थित छ यो शून्य आकारमा रद्द गरिएको छ।

उत्पादन पुन: निर्देशित गर्नको लागि सामान्य ढाँचा:

[ n ] > शब्द

यदि रेडिरेक्टरी अपरेटर छ > , र बनाइएको सेटअप गर्न नोकोलोबर्बर विकल्प सक्षम गरिएको छ, पुन: नामाकरण असफल हुनेछ यदि फाइल जसको नाम शब्दको विस्तारबाट परिणाम हो र नियमित फाइल हो। यदि पुन: नियन्त्रक अपरेटर हो > | , वा पुनःनिर्देशन परिचालक छ > र बनाइएको आदेश सेट गर्न को लागी नोकोलोबर्बर विकल्प सक्षम छैन, पुन: पुन: प्रयत्न गर्दा पनि शब्द द्वारा नाम फाइल गरिएको छ।

पुन: निर्देशित आउटपुट अनुमोदन

यस फाईलमा आउटपुटको पुनःनिर्देशनले फाइलको वर्णन गर्दछ जसको नाम फाइल विस्तारको परिणाम फाइल डिस्क्रिप्टर एन , वा मानक आउटपुट (फाईल वर्णनकर्ता 1) मा निषेध गर्न यदि खुला निर्दिष्ट गरिएको छैन। यदि फाइल अवस्थित छैन यो सिर्जना गरिएको छ।

निर्गत आउटपुटको लागि सामान्य ढाँचा:

[ एन ] >> शब्द

मानक आउटपुट र मानक त्रुटि पुन: निर्देशित गर्दै

बश दुवै मानक आउटपुट (फाईल वर्णन वर्ण 1) र मानक त्रुटि आउटपुट (फाईल वर्णन वर्ण 2) लाई फाइलमा पुन: निर्देशित गर्न अनुमति दिन्छ जसको नाम यो निर्माणसँग शब्द विस्तार हुन्छ।

मानक आउटपुट र मानक त्रुटि पुन: निर्देशित गर्न दुई ढाँचाहरू छन्:

&> शब्द

> र शब्द

दुई फारमहरूको, पहिलो प्राथमिकता छ। यो समानुपातिकको बराबर छ

> शब्द 2 > र 1

यहाँ कागजातहरू

यस प्रकारको पुनःनिर्देशनले शेललाई हालको स्रोतबाट आगत पढ्नसम्म निर्देश गर्दछ जुन लाइनमा मात्र शब्द समावेश गर्दछ (कुनै ट्रिजिङ ब्ल्याकहरूसँग) देखा पर्दैन। सबै पङ्क्तिहरू त्यस बिन्दुमा पढ्न आदेशका लागि मानक इनपुटको रूपमा प्रयोग गरिन्छ।

यहाँका कागजातहरू निम्न हो:

<< [ - ] यहाँ शब्द शब्द - डेलिमिटर शब्द

कुनै प्यारामिटर विस्तार, आदेश प्रतिस्थापन, गणित विस्तार, वा पथनाम विस्तार शब्दमा प्रदर्शन गरिएको छैन। यदि शब्दमा कुनै क्यारेक्टर उद्धृत गरिएका छन् भने, डिम्मिटर शब्दमा उद्धरण हटाउने परिणाम हो, र यहाँ-दस्तावेजमा रेखाहरू विस्तार गरिएका छैनन्। यदि शब्द अनुपयुक्त छ भने, यहाँ-दस्तावेज को सबै रेखाहरू प्यारामिटर विस्तार, कमाना प्रतिस्थापन, र गणित विस्तारको अधीनमा छन्। पछिल्लो अवस्थामा, क्यारेक्टर अनुक्रम \ उपेक्षा गरिन्छ, र क्यारेक्टर \ , $ , र ` उद्धरण गर्नको लागी \ प्रयोग गर्नुपर्दछ।

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

यहाँ स्ट्रिंगहरू

यहाँ कागजातहरूको एक संस्करण, ढाँचा हो:

<<< शब्द

शब्द विस्तार गरिएको छ र यसको मानक इनपुटमा आदेशलाई प्रदान गरिएको छ।

डुप्लिकेट फाइल वर्णनकर्ता

पुनरेखांकन अपरेटर

[ n ] <र शब्द

इनपुट फाइल वर्णनकर्ताहरू डुप्लिकेट गर्न प्रयोग गरिन्छ। यदि शब्द एक वा बढी अङ्कको विस्तार गर्दछ भने फाइल descriptor n द्वारा अस्वीकार गरिएको फाइल फाइल वर्णनकर्ताको प्रतिलिपि बनाइएको छ। यदि शब्दमा अङ्कहरू इनपुटको लागि फाईल वर्णनकर्ता खुला निर्दिष्ट गर्दैन भने, एक पुन: निर्देश त्रुटि त्रुटि हुन्छ। यदि शब्द मूल्याङ्कन गर्दछ - , फाइल वर्णनकर्ता n बन्द छ। यदि n निर्दिष्ट गरिएको छैन भने, मानक इनपुट (फाइल वर्णनकर्ता 0) प्रयोग गरिन्छ।

अपरेटर

[ n ] > शब्द

डुप्लिकेट आउटपुट फाइल वर्णनकर्ताहरूलाई समान रूपमा प्रयोग गरिन्छ। यदि n निर्दिष्ट गरिएको छैन भने, मानक आउटपुट (फाइल वर्णनकर्ता 1) प्रयोग गरिन्छ। यदि शब्दमा अङ्कहरू निर्गतका लागि फाइल वर्णनकर्ता खुला निर्दिष्ट गर्दैन भने, एक पुनःनिर्देशन त्रुटि हुन्छ। एक विशेष मामलाको रूपमा, यदि n छोड्नुभयो भने, र शब्दले एक वा बढी अङ्कहरूमा विस्तार गर्दैन, पहिल्यै वर्णन गरिएको मानक आउटपुट र मानक त्रुटि पुन: निर्देशित गरिएको छ।

फाइल विवरणहरू सार्दै

पुनरेखांकन अपरेटर

[ एन ] <र अंक -

यदि फाइल निर्दिष्ट गरिएको छैन भने फाइल वर्णनकर्ता अङ्क फाइल वर्णनकर्ता एन , वा मानक इनपुट (फाइल वर्णनकर्ता 0) लाई चलाउँदछ। अंक एन डुप्लिकेट गरे पछि बन्द हुन्छ।

त्यसै गरी, पुन: परिचालन परिचालक

[ n ] > अंक अंक -

फाइल वर्णनात्मक अंक फाइल descriptor n , वा मानक आउटपुट (फाइल descriptor 1) लाई यदि n निर्दिष्ट गरिएको छैन।

पढ्न र लेखनको लागि फाइल विवरणकार खोल्दै

पुनरेखांकन अपरेटर

[ n ] <> शब्द

फाइलको वर्णन गर्दछ जसको नाम फाईल वर्णन वर्ण n , वा फाईल वर्णनकर्ता 0 मा पढ्न र लेख्नको लागी खोल्न को लागी शब्दको विस्तार हो भने यदि एन निर्दिष्ट गरिएको छैन। यदि फाइल अवस्थित छैन भने, यो सिर्जना गरिएको छ।

ALIASES

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

उपनाम सिर्जना र उपनाम आदेशसँग सूचीबद्ध गरिन्छ, र अनैतिक आदेशमा हटाइयो।

प्रतिस्थापन पाठमा आर्गुमेन्टहरू प्रयोग गर्न कुनै पनि तन्त्र छैन। यदि तर्कहरू चाहिन्छ भने, एउटा शेल प्रकार्य प्रयोग गर्नुपर्छ (तल फंक्शनहरू हेर्नुहोस्)।

जब खोल अन्तरक्रियात्मक छैन, उपनामहरू विस्तारित हुँदैनन्, जबसम्म विस्तार_ले गुप्त विकल्प पसल प्रयोग गरेर सेट गरिएको छ (तल शेल बाइलिन कमन्सहरू अन्तर्गत पसलको विवरण हेर्नुहोस्)।

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

लगभग हरेक उद्देश्यका लागि, उपलहरू शेल प्रकार्यहरू द्वारा सुपरस्क्रिप्टेड छन्।

प्रकार्यहरू

SHELL GRAMMAR अन्तर्गत वर्णित परिभाषित एक खोल प्रकार्य, पछि कार्यान्वयनका लागि आदेशहरूको श्रृंखला भण्डारण गर्दछ। जब शेल प्रकार्यको नाम सरल आदेश नामको रूपमा प्रयोग गरिन्छ, त्यस प्रकार्य नामसँग सम्बन्धित आदेशहरू सूची निष्पादित गरिएको छ। हालको खोलको सन्दर्भमा प्रकार्यहरू कार्यान्वयन गरिएका छन्; उनीहरूलाई व्याख्या गर्न नयाँ प्रक्रिया सिर्जना गरिएको छैन (शेल लिपिको कार्यान्वयनसँग यसको विपरीत)। जब प्रकार्य कार्यान्वयन गरिन्छ, प्रकार्यको तर्कले यसको निष्पादनको समयमा वास्तविक मापदण्डहरू बन्छ। विशेष प्यारामिटर # परिवर्तन प्रतिबिम्बित गर्न अद्यावधिक गरिएको छ। स्थिति परिमिति 0 अपरिवर्तित छ। प्रकार्य कार्यान्वयन हुँदा FUNCNAME चर प्रकार्यको नाममा सेट गरिएको छ। शेल निष्पादन वातावरण को सबै अन्य पहलुहरु एक समारोह र यसको कलम को बीच एक समान हो जुन अपील संग DEBUG जाल (तल शेल बिलिन COMMANDS अन्तर्गत निर्मित जाल को वर्णन हेर्नुहोस) जब सम्म त्यो कार्य को ट्रेस विशेषता दिइएको छ ( तल निर्माण गरिएको घोषणाको विवरण हेर्नुहोस्)।

प्रकार्यलाई स्थानीय बनाइएको स्थानीय स्थानीय निर्माण आदेशको साथ घोषित गर्न सकिन्छ। साधारण, चर र तिनीहरूको मानहरू प्रकार्य र यसको कलर बीच साझेदारी गरिएको छ।

यदि बनाइएको आदेश रिफर्म प्रकार्यमा कार्यान्वयन गरिएको छ भने, प्रकार्य कल पछि अर्को आदेशको साथ प्रकार्य पूरा र कार्यान्वयन सुरू गर्दछ। जब प्रकार्य पूरा हुन्छ, वास्तविक परिमितिहरू र विशेष प्यारामिटर # को मानहरूलाई प्रकार्यको कार्यान्वयन भन्दा पूर्व मानहरूमा पुनःस्थापित गरिन्छ।

प्रकार्य नामहरू र परिभाषाहरू -f विकल्प घोषणा गर्न वा बनाइएको बनाइएका आदेशहरूसँग सूचीबद्ध हुन सक्छ। घोषणा गर्न वा टाइपसेट -F विकल्प मात्र प्रकार्य नामहरू सूचीबद्ध गर्नेछ। प्रकार्यहरू निर्यात गर्न सकिन्छ ताकि सबलेहरू स्वचालित रूपमा तिनीहरूलाई निर्माण गरिएको निर्यातमा -f विकल्पको साथ परिभाषित गरेको छ।

कार्यहरू पुनरावृत्त हुन सक्छ। पुनरावृत्त कलहरूको संख्यामा कुनै सीमा लगाईएको छैन।

कलात्मक अध्ययन

शेल गणित अभिव्यक्तिहरू मूल्याङ्कन गर्न अनुमति दिन्छ, केहि परिस्थितिहरूमा ( अनुमति निर्माण आदेश र अंकवृद्धि विस्तार )। मूल्याङ्कन निश्चित-चौडाइ पूर्णाङ्कहरूमा ओभरफ्लोको लागि कुनै जाँच नभएको छैन, यद्यपि 0 द्वारा विभाजित फ्याँक्नु र त्रुटिको रूपमा झण्डा लगाइएको छ। अपरेटर र तिनीहरूको पूर्वनिर्धारितता र संगतता सी भाषामा समान छन्। अपरेटरहरूको निम्न सूची बराबर-पूर्व परिचालनकर्ताहरूको स्तरमा समेटिएको छ। स्तर पूर्वता कम गर्न सूचीबद्ध छन्।

id ++ id -

चर पोस्ट-वृद्धि र पोस्ट-घटाउने

++ आईडी - आईडी

चर पूर्व-वृद्धि र पूर्व-घटाउने

- +

यूनियन ऋण र प्लस

! ~

तार्किक र bitwise नकारात्मक

**

exponentiation

* /%

गुणन, विभाजन, शेष

+ -

थप, घटाउ

<< >>

बायाँ र दाँया सावधानी परिवर्तन

<=> = <>

तुलना

==! =

समानता र असमानता

&

सायद

^

bitwise exclusive OR

|

सायद

&&

तार्किक र

||

तार्किक OR

expr ? expr : expr

सशर्त मूल्यांकन

= * = / =% = = = = = = = = = = & = ^ = | =

असाइनमेंट

expr1 , expr2

अल्पविराम

शेल चरहरू सञ्चालनका रूपमा अनुमति दिइएको छ; अभिव्यक्ति मूल्याङ्कन गर्नु अघि पैरामीटर विस्तार प्रदर्शन गरिन्छ। अभिव्यक्ति भित्र, शेल चरहरू पनि पैरामीटर विस्तार सिन्ट्याक्स प्रयोग गरी नामको सन्दर्भमा सन्दर्भ गर्न सकिन्छ। चरको मानलाई सन्दर्भ गरिएको गणित अभिव्यक्तिको रूपमा मूल्याङ्कन गरिएको छ। एउटा शेल चर आवश्यक छैन पूर्णांक विशेषता एक अभिव्यक्तिमा प्रयोग गर्न को लागी।

एक प्रमुख 0 सँग स्थिरता अङ्कल संख्याको रूपमा व्याख्या गरिएको छ। एक 0x वा 0 एक्सले हेक्सडेसिमललाई अस्वीकार गर्दछ। अन्यथा, नम्बरहरू [ बेस # ] n ले, जहाँ आधार अंक 2 र 64 को बीच अंक दशमलव अंक प्रतिनिधित्व गर्दछ, र n त्यो आधारमा एउटा नम्बर हो। यदि आधार # हटाइएको छ भने, आधार 10 प्रयोग गरिन्छ। 9 भन्दा बढी अंकहरू निम्न अक्षरहरू, ठूलो अक्षरहरू, @, र _ द्वारा प्रस्तुत गरिन्छ। यदि आधार 36 भन्दा कम वा बराबर छ भने, सानो अक्षर र अपरकेस अक्षरहरू 10 देखि 35 बीचको सङ्ख्या प्रतिनिधित्व गर्नको लागि interchangably प्रयोग गर्न सकिन्छ।

परिचालकहरू प्राथमिकताको क्रममा मूल्याङ्कन गरिएका छन्। पेन्डिङमा उप-अभिव्यक्तिहरू पहिला मूल्याङ्कन गरिन्छ र माथिको नियमका नियमहरू ओभरराइड गर्न सक्दछ।

कानुनी एक्सप्रेस

सशर्त अभिव्यक्ति [[ मिश्रित आदेश र परीक्षण[ फाइल विशेषताहरू परीक्षण गर्न निर्मित आदेशहरू र स्ट्रिंग र गणित तुलनाहरू प्रदर्शन गरेर प्रयोग गरिन्छ। अभिव्यक्ति निम्न युनिट वा बाइनरी प्रिमियमबाट बनाइएको छ। यदि प्रिमियरको कुनैपनि फाइल तर्कले फारम / dev / fd / n को हो भने , वर्णन descriptor n जाँच गरिएको छ। यदि प्रिमियर मध्ये एक फाइल तर्कलाई क्रमशः एक / dev / stdin , / dev / stdout , वा / dev / stderr , फाइल वर्णनकर्ता 0, 1, वा 2, एक जाँच गरिएको छ।

-a फाइल

सही यदि फाइल अवस्थित छ।

-b फाइल

सही यदि फाइल अवस्थित छ र एउटा ब्लक विशेष फाइल हो।

-c फाइल

सही यदि फाइल अवस्थित छ र क्यारेक्टर विशेष फाइल हो।

-d फाइल

सही यदि फाइल अवस्थित छ र डाइरेक्टरी हो।

-e फाइल

सही यदि फाइल अवस्थित छ।

-f फाइल

सही यदि फाइल अवस्थित छ र नियमित फाइल हो।

-g फाइल

सही यदि फाइल अवस्थित छ र सेट-समूह-आईडी हो।

-h फाइल

सही यदि फाइल अवस्थित छ र एक प्रतीक लिङ्क हो।

-k फाइल

सही यदि फाइल अवस्थित छ र यसको `` चिपचिपा 'बिट सेट गरिएको छ।

-p फाइल

सही यदि फाइल अवस्थित छ र एक नाम पाइप (FIFO) हो।

-आर फाइल

सही यदि फाइल अवस्थित छ र पढ्न योग्य छ।

-स फाइल

सही यदि फाइल अवस्थित छ र शून्य भन्दा ठूलो आकार छ।

-t fd

सही यदि फाइल वर्णनकर्ता एफडी खुला छ र टर्मिनलमा उल्लेख गर्दछ।

-u फाइल

सही यदि फाइल अवस्थित छ र यसको सेट-प्रयोगकर्ता-आईडी बिट सेट गरिएको छ।

- फाइल

सही यदि फाइल अवस्थित छ र लेख्न योग्य छ।

-x फाइल

सही यदि फाइल अवस्थित छ र कार्यान्वयन योग्य छ।

-O फाइल

सही यदि फाइल अवस्थित छ र प्रभावकारी प्रयोगकर्ता आइडीको स्वामित्वमा छ।

-G फाइल

सही यदि फाइल अवस्थित छ र प्रभावकारी समूह आइडीको मालिक हो।

-L फाइल

सही यदि फाइल अवस्थित छ र एक प्रतीक लिङ्क हो।

-S फाइल

सही यदि फाइल अवस्थित छ र सकेट हो।

-एन फाइल

सही यदि फाइल अवस्थित छ र यो पछिल्लो पटक पढेकाले परिमार्जन गरिएको छ।

फाइल 1 - nt फाइल 2

सही यदि फाइल 1 फाइल (संशोधन मिति अनुसार) file2 भन्दा कम छ , वा यदि फाइल 1 अवस्थित छ र फाइल 2 होइन।

फाइल 1 - ओटो फाइल 2

सही यदि फाइल 1 फाइल 2 भन्दा ठूलो छ , वा फाइल 2 अवस्थित छ र फाइल 1 होइन।

फाइल 1 -फ फाइल 2

सही यदि फाइल 1फाईल 2 त्यहि उपकरण र इनकोड नम्बरहरू देखाउँछ।

-o optname

सही यदि शेल विकल्प अप्टनाम सक्षम गरिएको छ। तल निर्माण गरिएको सेटमा -o विकल्पको विवरण अन्तर्गत विकल्पहरूको सूची हेर्नुहोस्।

-G string

सही यदि स्ट्रिंगको लम्बाइ शून्य हो।

-एन स्ट्रिंग

string

सही यदि स्ट्रिंगको लम्बाइ गैर शून्य हो।

string1 == string2

सही यदि तारहरू बराबर छन्। = सख्त POSIX अनुपालनको लागि == को स्थानमा प्रयोग हुन सक्छ।

string1 ! = string2

सही यदि तारहरू बराबर छैन।

string1 < string2

ठीक छ भने स्ट्रिंग 2 लेक्सिकोग्राफिक रूपले वर्तमान स्थानमा 1 दिन पहिले।

string1 > string2

सही यदि स्ट्रिंग 2 लेक्सिकोग्राफिक रूपमा वर्तमान स्थानमा 1 प्रकार पछि।

आर्ग 1 OP arg2

OP एक -eq , -ne , -lt , -le , -gt , वा -ge को हो । यी गणित बाइनरी अपरेटरहरू साँचो फर्काउँछ भने आर्ग 1 1 बराबरको बराबर, कम भन्दा कम, कम भन्दा कम वा बराबरको, क्रमशः भन्दा ठूलो वा तर्क 2 को बराबर वा बराबर। Arg1arg2 हुन सक्छ सकारात्मक वा नकारात्मक पूर्णांक।

SIMPLE COMMAND EXPANSION

जब एक साधारण आदेश निष्पादित गरिन्छ, खोलले निम्न विस्तार, असाइनमेन्ट, र पुन: ढाँचा प्रदर्शन गर्दछ, बाँया देखि दाँया बाट।

1।

पार्सर शब्दहरू चर कार्यहरू (कमाइको नाम भन्दा अघि) को रूपमा चिन्ह लगाइएको छ र पुन: प्राप्ति पछि पछि प्रशोधनका लागि बचत गरिन्छ।

2।

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

3।

रेडिओरेसनहरू REDIRECTION अन्तर्गत वर्णन गरिएको रूपमा प्रदर्शन गरिन्छ।

4।

प्रत्येक चर असाइनमेन्टमा पाठ चर चर को लागी पहिले टिल्ड विस्तार, पैरामीटर विस्तार, आदेश प्रतिस्थापन, गणित विस्तार, र उद्धरण हटाउनेछ।

यदि कुनै आदेश नाम नतिजाहरू, चर असाइनमेन्टहरूले हालको खोल वातावरणलाई असर गर्छ। अन्यथा, चरहरू क्रियान्वित आदेशको वातावरणमा थपिएका छन् र वर्तमान खोल वातावरणलाई असर गर्दैन। यदि कुनै असाइनमेंटले पढ्नको लागि चर असाइन गर्न प्रयास गर्न प्रयास गर्दछ, त्रुटि उत्पन्न हुन्छ, र आदेश गैर-शून्य स्थितिसँग बाहिर निस्कन्छ।

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

यदि विस्तार पछि बायाँ कमाइएको नाम हो भने, तल उल्लेखित कार्यान्वयन आय। अन्यथा, आदेश बाहिर निस्कन्छ। यदि एक विस्तारमा एक आदेश प्रतिस्थापन समावेश गर्दछ भने आदेशको बाहिर निस्कने अन्तिम आदेश प्रतिस्थापनको बाहिर निस्कने स्थिति हो। यदि कुनै आदेश प्रतिस्थापनहरू थिएन भने, आदेश शून्यको स्थितिसँग बाहिर निस्कन्छ।

COMMAND एक्सेन्शन

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

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

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

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

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

यदि यो कार्यक्रम # फाइलसँग सुरु हुन्छ ! , पहिलो रेखाको बाँकी कार्यक्रमको लागि एक शब्दावली निर्दिष्ट गर्दछ। शेलले निर्दिष्ट इन्टरटरले अपरेटिङ सिस्टममा आफैलाई सम्हाल्ने कार्य प्रणालीमा कार्यान्वयन गर्दछ। अनुवादक को तर्क एक वैकल्पिक तर्क हो जसको कार्यक्रम को प्रोग्राम को पहिलो पंक्ति मा, पछि प्रोग्राम को नाम पछि, आदेश तर्क, यदि कुनै पनि।

COMMAND एक्शन सभ्यता

शेलमा कार्यान्वयन वातावरण छ , जुन निम्न समावेश छ:

*

खुल्ला फाईलहरू आभोल्युशनमा खोलिएका फाइलहरू, रूपमा कार्यान्वयन गर्नका लागि पुन: निर्देशक द्वारा परिमार्जित रूपमा परिमार्जन गर्नुहोस्

*

हालको काम गर्ने डाइरेक्टरी जस्तै सीडी , pushd , वा पपडीद्वारा सेट गरिएको हो, वा चिनोद्वारा शेलद्वारा विरासत प्राप्त

*

फाइल निर्माण मोड मास्क umask द्वारा सेट वा शेलको अभिभावकबाट विरासत भएको

*

वर्तमान जाल जाल द्वारा सेट

*

खोल मापदण्डहरू जुन चर असाइनमेंट द्वारा सेट गरिएको छ वा सेटमा वा वातावरणमा शेलको अभिभावकबाट विरासत प्राप्त भयो

*

शेल प्रकार्यहरू कार्यान्वयनको समयमा परिभाषित वा वातावरणमा शेलको अभिभावकबाट विरासत प्राप्त गरियो

*

विकल्पहरू आविष्कारमा सक्षम पारिएको (या त पूर्वनिर्धारित रूपमा वा आदेश-रेखा तर्कहरू) वा सेटद्वारा

*

विकल्प पसल द्वारा सक्षम

*

उपनामसँग परिभाषित शेल उपनामहरू

*

विभिन्न प्रक्रिया आइडीहरू, पृष्ठभूमिका कामहरू, $$ को मूल्य र $ PPID को मूल्य सहित

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

*

शेल खुला खुल्ला फाइलहरू, साथै आदेशमा रिडायरेक्ट्स द्वारा निर्दिष्ट कुनै परिमार्जन र थप परिमार्जनहरू

*

हालको काम गर्ने डाइरेक्टरी

*

फाइल सिर्जना मोड मास्क

*

निर्यातको लागि चिन्ह लगाइएको होल चरहरू, आदेशको लागि निर्यात गरिएका चरहरू सहित, पर्यावरणमा पारित भयो

*

शेलद्वारा पकडिएको जालहरू शेलको अभिभावकबाट पाएको मानहरू रिसेट गर्दै छन्, र शेलद्वारा उपेक्षित जालहरू उपेक्षा गरिएका छन्।

यो अलग वातावरणमा बोलाइएको आदेशले शेलको कार्यान्वयन वातावरणलाई असर गर्न सक्दैन।

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

यदि एक आदेश एक पछि लागिएको छ र कार्य नियन्त्रण सक्रिय छैन, आदेशको लागि पूर्वनिर्धारित मानक इनपुट खाली फाइल / dev / null हो । अन्यथा, आवेदित आदेशले पुन: रिलेयर द्वारा परिमार्जन गरी कल शेलको फाईल वर्णनकर्ताहरूको स्वामित्व पाउँछ।

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

बश सन्दर्भ मैनुअल , ब्रायन फक्स र चेल्ट रमाइ

Gnu Readline लाइब्रेरी , ब्रायन फक्स र चीट रामे

Gnu इतिहास लाइब्रेरी , ब्रायन फक्स र चीट रम

पोर्टेबल अपरेटिङ सिस्टम इन्टरफेस (POSIX) भाग 2: शेल र उपयोगिताएँ , आईईईई

sh (1), ksh (1), csh (1)

emacs (1), vi (1)

पढाइ (3)