Күл - Linux командасы - Unix команадсы

NAME

sh - комментатор ( shell )

Синопсис

sh [- / + aCefnuvxIimqsVEbc ] [- o longname ] -words [ target ... ]

СИПАТТАМАСЫ

Sh - жүйенің стандартты комментаторы. Sh- ның ағымдағы нұсқасы өзгеру үрдісінде POSIX 1003.2 және 1003.2a сипаттамаларына сәйкес келеді. Бұл нұсқада Korn қабықшасының кейбір түрлерінде ұқсас болып келетін көптеген ерекшеліктері бар, бірақ бұл Korn қабықшасының клоны емес (ksh (1) қараңыз). Бұл қабыққа POSIX және бірнеше Беркли кеңейтілімдері ғана тағайындалған мүмкіндіктер кіреді. Біз 4.4 BSD уақытқа дейін POSIX сәйкестігін күтеміз. Бұл адам беті оқулық немесе толық қабықшаның болуы үшін арналмаған.

Шолу

Қабық - бұл файлдың немесе терминалдың жолдарын оқиды, оларды түсіндіреді және әдетте басқа командаларды орындайды. Бұл пайдаланушы жүйеге кіргенде жұмыс істейтін бағдарлама (бірақ пайдаланушы chsh (1) пәрменімен басқа ұяшықты таңдай алады). Қабықшасы ағынды басқару құрылымдары бар тілді жүзеге асырады, деректерді сақтауға қосымша көптеген мүмкіндіктерді қамтамасыз етеді, сонымен қатар тарих пен сызықтарды редакциялау мүмкіндіктері салынған. Ол интерактивті пайдалануға көмектесетін көптеген мүмкіндіктерді қамтиды және интерпретативті интерактивті және интерактивті емес (снарядтар сценарийлері) интерпретативті тілдің артықшылығы бар. Яғни, командалар тікелей қабықшаға жазылуы немесе файлға салынуы мүмкін және файл тікелей қабықпен орындалуы мүмкін.

Шақыру

Егер аргс болмаса және қаптың стандартты кірісі терминалға қосылған болса (немесе - i жалаушасы орнатылса) және - c параметрі болмаса, қабық интерактивті қабығы болып саналады. Интерактивті қабық, əдетте, əр командадан бұрын ескертеді жəне бағдарламалау жəне əрекетсіздік қателерін əртүрлі (төменде сипатталғандай) өңдейді. Алғашқы кезде, қабығы 0 дәлелін тексереді, ал егер ол басталатын сызықпен басталса: - қабығы сонымен қатар логикалық қабық ретінде қарастырылады. Бұл әдетте пайдаланушы жүйеге алғаш кіргенде автоматты түрде жасалады. Логин қабы алдымен файлдардан / etc / profile және .profile файлдарының командаларын оқиды. Егер ENV қоршаған ортасының айнымалысы қабықшаға кіруде орнатылса немесе кіре беріс қабықшасының профилінде орнатылса, қабық келесіде ENV деп аталатын файлдан пәрмендерді оқиды. Сондықтан пайдаланушы тек қана орындауға болатын пәрмендерді орналастыру керек .profile файлында кіру уақыты және ENV файлының ішіндегі әрбір қабық үшін орындалатын пәрмендер. ENV айнымалысын кейбір файлға орнату үшін келесі жолды өзіңіздің үй каталогыңыздың .profile каталогына орналастырыңыз

ENV = $ HOME / .shinit; экспорт ENV

кез келген файл атауын `` .shinit 'деп алмастырады. ENV файлы әр қабықтың шақыруына, соның ішінде қабық сценарийлеріне және интерактивті емес қабықшаларға оқылғандықтан, келесі парадигма ENV файлындағы пәрмендерді интерактивті шақыруларға шектеу үшін пайдалы. Командаларды'` case '' және'` esac` 'астына орналастырыңыз (бұл командалар кейінірек сипатталады):

case $ - in * i *)

# интерактивті пайдалануға арналған пәрмендер

...

esac

Егер опциялардан басқа пәрмен жолы дәлелдері көрсетілсе, онда қабат бірінші аргументті пәрмендерді оқуға арналған файлдың атауы (қабығы сценарийі) ретінде қарастырады, ал қалған дәлелдер қабықтың позициялық параметрлері ретінде белгіленеді ($ 1 , $ 2 және т.б.). Әйтпесе, қабық стандартты енгізуден командаларды оқиды.

Аргумент тізімін өңдеу

Барлық жалғыз әріптер опциялары - o опциясына дәлел ретінде пайдаланылуы мүмкін тиісті атауға ие. Set - o атауы төмендегі сипаттамадағы жалғыз әріп нұсқасының жанында беріледі. `` - '' жолын көрсету опцияны қосады, ал қосымша `` `+ '' параметрін өшіреді. Келесі опциялар пәрмен жолынан немесе орнатқан (1) салынған (кейінірек сипатталған) көмегімен орнатылуы мүмкін.

- allexport

Берілген барлық айнымалыларды экспорттаңыз. (4.4алфаға арналған UNIMPLEMENTED)

-c

Пәрмен жолынан пәрмендерді оқыңыз. Стандартты енгізуден командалар оқылмайды.

-C noclobber

Бұрыннан бар файлдарды'`> '' арқылы қайта жазуға болмайды (4.4ALFA үшін UNIMPLEMENTED)

- эррексит

Егер интерактивті емес болса, тексерілмеген пәрмен сәтсіз болса, дереу шығыңыз. Команданың шығу мәртебесі, егер команда егер elif- ті немесе уақытқа дейін немесе егер команда'` && '' немесе````` операторының сол қолмен орындалатын операционды басқару үшін қолданылса, нақты сыналған болып саналады.

-f noglob

Жолақ атын кеңейтуді өшіріңіз.

-n noexec

Егер интерактивті болмаса, командаларды оқып шығыңыз, бірақ оларды орындамаңыз. Бұл қабық сценарийлерінің синтаксисін тексеру үшін пайдалы.

-жұмыс

Орнатылмаған айнымалы мәнді кеңейтуге тырысқанда, стандартты қатеге хабарлама жазыңыз және қабығы интерактивті болмаса, дереу шығыңыз. (4.4алфаға арналған UNIMPLEMENTED)

Қабық оны оқылғандай стандартты қатеге жазады. Отладка үшін пайдалы.

-x xtrace

Әр команданы стандартты қатеге жазыңыз (алдында орындалатын «+» алдында отладка пайдалы.

-q quietprofile

Егер - v немесе - x параметрлері орнатылса, инициализация файлдарын оқып жатқанда оларды қолданбаңыз, олар / etc / profile .profile және ENV ортасының айнымалысы арқылы анықталған файл.

- Мен ескермеймін

Интерактивті болған кезде EOF-ді енгізуден елемеу.

- интерактивті

Қабықтарды интерактивті түрде ұстауға мәжбүрлеңіз.

-m монитор

Тапсырманы басқаруды қосыңыз (интерактивті болған кезде автоматты түрде орнатылады).

-s stdin

Стандартты енгізуден пәрмендерді оқыңыз (егер ешқандай файл дәлелдері болмаса, автоматты түрде орнатылады). Бұл параметр қабығы іске қосылғаннан кейін орнатылса (мысалы, жиынтығы (1)) әсер етпейді.

-V vi

Кірістірілген vi (1) пәрмен жолы редакторын қосыңыз (ол орнатылса, E - ажыратады).

-E emacs

Кірістірілген emacs (1) пәрмен жолы өңдегішін қосыңыз (егер ол орнатылған болса, V - ажыратады).

-b хабарлау

Фондық тапсырманы орындау туралы асинхронды хабарламаны қосу. (4.4алфаға арналған UNIMPLEMENTED)

Лексикалық құрылым

Қабақ кірістіруді файлдағы жолдардан оқиды және оны бос орындарда (бос орындар мен қойындылар) сөздерге бөледі және «операторлар» деп аталатын қабаққа ерекше кейіпкерлердің бірізділіктерінде операторлардың екі түрі бар: басқару операторлары мен қайта бағыттау операторлары (олардың мағынасы кейін талқыланады). Төменде операторлардың тізімі келтірілген:

«Басқару операторлары:»

& && (); ;; | | |

«Қайта бағыттаушы:»

<>> | << >> <&> & << - <>

Котировка

Котировка операторлар, бос кеңістік немесе кілт сөздер сияқты қабықшаға белгілі бір таңбалар немесе сөздердің ерекше мағынасын жою үшін пайдаланылады. Баға белгілеудің үш түрі бар: сәйкесті жалғыз тырнақшалар, қос тырнақшалар және кері қиғаш сызықтар.

Кері қиғаш сызық

Кері қиғаш сызық Aq newline қоспағанда, төмендегі сипаттаманың мағынасын сақтайды. Aq жаңа сызық алдындағы қиғаш сызық сызықтың жалғасы ретінде қарастырылады.

Жалғыз баға белгілері

Таңбаларды жалғыз тырнақшаға жазу барлық белгілердің мағынасын сақтайды (жалғыз тырнақшалардан басқа, жалғыз тырнақшаларды жалғыз тырнақша жолына қою мүмкін емес).

Қосарланған баға

Қосарлы тырнақшалардағы кейіпкерлерді жазу барлық белгілердің лайықты мағынасын сақтайды, долларлық ($) backquote (`) және кері қиғаш сызық (\). Қос тырнақшалар ішіндегі кері қиғаштық - бұл елеулі емес және келесі таңбаларды ғана келтіреді:

$ `\

Әйтпесе, ол әдеттегі болып қалады.

Сақталған сөздер

Резервтелген сөз - бұл қабықтың ерекше мағынасы бар сөздер және жолдың басында және басқару операторынан кейін танылады. Келесі сөздер сақталған:

! Ta elif Ta Ta Ta Ta Ta Ta Ta Ta

Ta Ta кейін Ta Ta Ta

Ta Ta Ta Ta дейін Ta Ta Ta Ta жасаңыз

Олардың мағынасы кейінірек талқыланады.

Бүркеншік аттар

Бүркеншік аты - бүркеншік аты (1) салынған пәрмен арқылы атау және тиісті мән. Кез келген сөз сақталған кезде (жоғарыдан қараңыз) және сақталған сөздерді тексергеннен кейін, қабығы бүркеншік атпен сәйкес келетінін көру үшін сөзді тексереді. Олай болса, ол оны кіріс ағынында оның мәнімен ауыстырады. Мысалы, «ls -F» мәнімен `lf 'деп аталатын бүркеншік болса, кіріс:

lf foobar

болады

ls -F foobar

Бүркеншіксіз пайдаланушылар ауызекі пайдаланушыларға функцияны аргументтермен қалай жасау керектігін білмей-ақ, командаларға қысқаша мән жасау үшін ыңғайлы жол ұсынады. Олар сондай-ақ лексикалық түрде жасырын кодты жасау үшін де қолданыла алады. Бұл қолдануға кедергі келтіреді.

Командалар

Қабықша оқылатын сөздерді тілге сәйкес интерпретациялайды, оның ерекшелігі бұл адам бетінің ауқымынан тыс ( POSIX 1003.2 құжатындағы BNF сілтемесін қараңыз). Шын мәнінде, сызық оқылады және сызықтың бірінші сөзі (немесе басқару операторынан кейін) сақталған сөз болмаса, онда қабығы қарапайым пәрменді таниды. Әйтпесе, күрделі команда немесе басқа да арнайы құрылым танылған болуы мүмкін.

Қарапайым командалар

Қарапайым тапсырма танылған болса, қабық келесі әрекеттерді орындайды:

  1. 'Name = value' пішініндегі жетекші сөздер жойылып, қарапайым пәрменнің ортасына тағайындалады. Қайта бағыттау операторлары және олардың аргументтері (төменде сипатталғандай) жойылады және өңдеу үшін сақталады.
  2. Қалған сөздер «Expansions» деп аталатын бөлімде сипатталғандай кеңейтіледі, ал қалған бірінші сөз командалық атау деп саналады және команда орналасқан. Қалған сөздер команданың дәлелдері болып саналады. Егер ешқандай командалық атау болмаса, 1-тармақта танылған `` name = value '' айнымалы тағайындаулары ағымдағы қабықшаға әсер етеді.
  3. Қайта бағыттау келесі бөлімде сипатталғандай орындалады.

Қайта бағыттау

Қайта бағыттау пәрмені оның кірісін оқиды немесе оның шығысын жіберетін жерде өзгерту үшін қолданылады. Жалпы алғанда, қайта бағыттау файлға бар сілтемесін ашады, жабады немесе қайталайды. Қайта жіберуге арналған жалпы пішім:

[n] redir-op файлы

онда redir-op - бұрын айтылған қайта бағыттау операторларының бірі. Келесі ықтимал қайта бағыттау тізімі бар. Bq n - бұл «3» («Bq 3» емес, файлдың дескрипторына қатысты емес) қосымша нөмір.

[n]> файл

Стандартты шығуды (немесе n) файлға қайта бағыттау.

[n]> | файл

Сол сияқты, бірақ - C опциясын елемейді.

[n] >> файл

Файлға стандартты шығысын (немесе n) қосыңыз.

[n] <файл

Файлдан стандартты енгізуді (немесе n) қайта бағыттау.

[n1] <& n2

N2 файлының дескрипторынан стандартты енгізудің қайталануы (немесе n1).

[N] <& -

Стандартты енгізуді жабыңыз (немесе n).

[n1]> & n2

N2-нен стандартты шығуды (немесе n1) қайталаңыз.

[n]> & -

Стандартты шығуды жабыңыз (немесе n).

[n] <> файл

Стандартты енгізуде (немесе n) оқу және жазу үшін файлды ашыңыз.

Келесі қайта бағыттау жиі '`мұнда құжат' деп аталады

[n] << бөлгіш

мұнда-doc-text ...

бөлгіш

Бағыттауышқа дейін дәйектелген жолдардағы барлық мәтін сақталып, стандартты енгізудің пәрменіне қол жетімді болады немесе егер көрсетілген болса, файлдың дескрипторы. Бастапқы жолда көрсетілген шектегіш котировкасы болса, онда мұнда «doc-text» сөзбе-сөз қаралады, әйтпесе мәтін параметрді кеңейтуге, командалық алмастыруға және арифметикалық кеңейтуге («Expansions» бөлімінде сипатталғандай) 'Егер оператор `` <<' 'орнына `<< ->' деген сөз болса, онда осы құжаттың жетекші қойындылары алынып тасталады.

Іздеу және орындау

Командалардың үш түрі бар: қабық функциясы, салынған пәрмендер және қалыпты бағдарламалар - және осы тәртіп бойынша пәрменді іздейді (аты бойынша). Олардың әрқайсысы басқаша түрде орындалады.

Қабықша функциясы орындалғанда, қабықтың позициялық барлық параметрлері ($ 0-ден басқа, өзгеріссіз қалған) қабық функциясының аргументтеріне орнатылады. Команданың ортасында нақты орналастырылған айнымалылар (функция атына дейін тапсырмаларды орналастыру арқылы) функцияға жергілікті түрде жасалады және берілген мәндерге орнатылады. Сонда функция анықтамасында берілген команда орындалады. Команда аяқталған кезде позициялық параметрлер бастапқы мәндеріне қалпына келтіріледі. Мұның барлығы ағымдағы қабықтың ішінде болады.

Shell салынған жаңа процесті уылдырықтандырмастан қабықшаға жасалады.

Әйтпесе, егер пәрмен атауы функцияға немесе салынғанға сәйкес келмесе, пәрмен файлдық жүйеде қалыпты бағдарлама ретінде ізделеді (келесі бөлімде сипатталғандай). Қалыпты бағдарлама орындалған кезде, бағдарлама аргументтерді және ортаны бағдарламаға жібереді. Егер бағдарлама қалыпты орындалатын файл болмаса (мысалы, ASCII көрсетілімі «#!» Деп аталатын «сиқырлы нөмірмен» басталмаса, execve (2) Er ENOEXEC функциясын қайтарады), қапшық бағдарламаны Шағын төлем. Бала қабығы бұл қабаттағы жағдайды қайтадан қалпына келтіреді, себебі бұл әсер жаңа қабықты арнайы қабық сценарийін өңдеу үшін шақырылғандай етіп жасайды, тек ата-аналық қабықшасында орналасқан шайылған пәрмендердің орналасуы есте сақталады бала.

Бұл құжаттың бұрынғы нұсқалары мен бастапқы кодтың өзін «жаңылыс» рәсімі ретінде сиқырлы сандысыз қабақ сценарийді жаңылыстырып және уақытша көрсетіңіз.

Жолды іздеу

Пәрменді тапқанда, қабығы сол атпен қабық функциясы бар-жоғын біледі. Содан кейін ол осы атаумен салынған пәрменді іздейді. Егер салынған пәрмен табылмаса, екі нәрсенің біреуі орын алады:

  1. Қисық сызықтары бар командалық атаулар жай іздеуді орындаусыз орындалады.
  2. Қабық пәрмен үшін өз кезегінде PATH ішіндегі әрбір жазбаны іздейді. PATH айнымалының мәні қос нүктелермен бөлінген жазбалардың сериясы болуы керек. Әрбір жазба каталог атауынан тұрады. Ағымдағы каталог бос каталог атауымен немесе бір кезеңмен айқын түрде көрсетілуі мүмкін.

Командалық шығу күйі

Әр командада басқа қабық пәрмендерінің әрекеттеріне әсер ететін шығу күйі болады. Парадигма - бұл қалыпты немесе сәттілік үшін нөлдік командадан шығып, сәтсіздік, қате немесе жалған көрсеткіш үшін нөл емес. Әр команданың адам бетінде әртүрлі шығу кодтары және олардың нені білдіретіні көрсетілуі керек. Сонымен қатар, салынған пәрмендер орындалатын қабық функциясы сияқты шығу кодтарын қайтарады.

Кешенді командалар

Кешенді пәрмендер қарапайым пәрмендердің комбинациясы болып табылады, олар басқару операторларымен немесе сақталған сөзбен бірге үлкенірек күрделі пәрменді жасайды. Тұтастай алғанда, команда - төмендегілердің бірі:

Егер басқаша айтылмаса, пәрменнің шығу күйі пәрмен арқылы орындалған қарапайым қарапайым пәрменді білдіреді.

Құбырлар

Құбыр - басқарушы оператормен бөлінген бір немесе бірнеше командалардың тізбегі. Барлық соңғы пәрменнен басқа барлық стандартты шығыс келесі пәрменнің стандартты кірісіне қосылады. Соңғы пәрменнің стандартты шығуы әдеттегідей қабықтан мұраланған.

Құбырдың пішімі:

[!] Команда1 [| команда2 ...]

Пәрменнің стандартты шығысы1 command2 әдеттегі кірісіне қосылған. Командалардың бір бөлігі болып табылатын қайта бағыттау операторларымен көрсетілген кез келген қайта бағыттаудан бұрын, стандартты енгізу, стандартты шығыс немесе командалардың екеуі құбыр арқылы тағайындалады деп саналады.

Егер құбыр фондық режимде болмаса (кейінірек талқыланса), қабық барлық командалардың орындалуын күтеді.

Егер сақталған сөз! құбырдың алдында емес, шығу мәртебесі құбырда көрсетілген соңғы пәрменнің шығу мәртебесі болып табылады. Әйтпесе, шығу пәрмені соңғы пәрменнің шығу мәртебесінің логикалық емес екенін білдіреді. Яғни, егер соңғы пәрмен нөл қайтарылса, шығу мәртебесі 1 болады; соңғы пәрмен нөлден үлкенірек болса, шығу күйі нөлге тең болады.

Қайта бағыттаудан бұрын стандартты енгізу немесе стандартты шығару немесе екеуі де құбырды тағайындағандықтан, оны қайта бағыттау арқылы өзгертуге болады. Мысалға:

$ command1 2> & 1 | команда2

стандартты шығыс пен команд1 стандартты қатесін command2 әдеттегі енгізуіне жібереді.

A; немесе терминаторы бұрынғы AND-OR-тізімін (келесі сипатталған) дәйекті түрде орындауға әкеледі; a & алдындағы AND-OR-тізімінің асинхронды орындалуына әкеледі.

Басқа снарядтардан айырмашылығы, газ құбырындағы əрқайсысы қаптаманың баласы болып табылады (егер ол қабығы салынған болса, онда ол қазіргі қабықшада орындалады, бірақ қоршаған ортаға қандай да бір әсер жойылады).

Фондық командалар -

Егер команда пәрменді басқару амперсанты (&) арқылы тоқтатса, қабық пәрменді асинхронды түрде орындайды - яғни, пәрмен келесі пәрменді орындаудан бұрын пәрменді аяқтауды күтпейді.

Фондық режимде жұмыс істеуге арналған пішім:

command1 & [command2 & ...]

Егер қабығы интерактивті болмаса, асинхронды пәрменнің стандартты кірісі / dev / null мәніне орнатылады

Тізімдер - Жалпы сөйлеу

Тізім - жаңа сызықтармен, нүктелі үтірмен немесе амперсандтармен бөлінген нөл немесе одан да көп пәрмендер тізбегі және бұл үш таңбаның біреуі арқылы тоқтатылады. Тізімдегі пәрмендер олар жазылған ретпен орындалады. Егер пәрменді амперсандпен жалғастыратын болса, қабат команданы бастайды және келесі пәрменді дереу жалғастырады; әйтпесе, келесіге өтуге дейін команда тоқтатуды күтеді.

Қысқа тізбекті тізімді операторлар

`` && '' және `` || '- AND-OR тізімдік операторлары болып табылады. `` && '' бірінші пәрменді орындайды, ал егер бірінші пәрменнің шығу күйі нөлге тең болса, екінші пәрменді орындайды. `` || '' ұқсас, бірақ егер бірінші командасының шығу күйі нөлден шықса, екінші пәрменді орындайды. `` && '' және `` || '' екеуінің де бірдей басымдығы бар.

Flow-Control Constructs - жағдайда, егер, жағдай

If командасының синтаксисі

егер тізім болса
содан кейін тізім
[elif тізімі
содан кейін тізім] ...
[басқа тізім]
fi

Уақыт командасының синтаксисі болып табылады

тізімінде
тізімі жасаңыз
жасалды

Алғашқы тізімнің шығу күйі нөл болған кезде, екі тізім бірнеше рет орындалады. Әзірге командалық ұқсас, бірақ сөз орнына дейінгі уақытқа дейін, ол қайталануына әкеледі, әзірге бірінші тізімнің шығу мәртебесі нөлге тең болады.

Команда үшін синтаксисі болып табылады

сөздің айнымалысы үшін ...
тізімі жасаңыз
жасалды

Сөздер кеңейтілді, содан кейін тізбе айнымалы айнымалыны әрбір сөзге кезекпен қайта-қайта орындайды. істеу және жасалуы мүмкін `` `{` `және` `` ''

Үзіліс және жалғастыру командасының синтаксисі болып табылады

үзіліс [num]
жалғастыру [num]

Үзіліс сандар үшін немесе ішіндегі ең аз сандарды тоқтатады. Ішкі циклдің келесі итерациясымен жалғастырыңыз. Олар салынған пәрмендер ретінде іске асырылады.

Командалық команданың синтаксисі болып табылады

case сөзі
үлгі);
...
esac

Үлгіде бір немесе одан да көп үлгілер болуы мүмкін («Кейінірек сипатталған Shell үлгілері» бөлімін қараңыз), «` »таңбалары бойынша бөлінген.

Бірлескен командаларды топтастыру

Командалар жазу арқылы топтастырылуы мүмкін

(тізім)

немесе

{тізім;

Олардың біреуі кіші топтағы командаларды орындайды. (Тізімге) топтастырылған командалар ағымдық қабықшаға әсер етпейді. Екінші пішін басқа раковинаны емес, біршама тиімдірек етеді. Осылайша, командаларды топтастыру олардың шығуын бір бағдарлама секілді қайта бағыттауға мүмкіндік береді:

{printf hello; printf әлем \ n «;}> құттықтау

Функциялар

Функция анықтамасының синтаксисі болып табылады

name () пәрмені

Функция анықтамасы орындалатын мәлімдеме болып табылады; орындалатын болса, ол аталатын функцияны орнатады және нөлден шығу мәртебесін қайтарады. Команда әдетте '`{' 'және` ``' 'арасында жасалған тізім болып табылады

Айнымалылар жергілікті функцияны пайдалану арқылы функцияға жергілікті болуы мүмкін деп жариялана алады. Бұл функцияның бірінші сөзі ретінде көрінуі керек және синтаксисі

жергілікті [айнымалы -] ...

Жергілікті жергілікті команда ретінде орындалады.

Айнымалы жергілікті жасалса, ол бастапқы мәнді иеленеді және экспортталған және оқуға арналған жалаулар айнымалы мәннен, егер бар болса, бірдей атымен болады. Әйтпесе, айнымалы бастапқыда орнатылмаған. Қабықша динамикалық масштабтауды пайдаланады, сондықтан егер x айнымалы x функциясын f функциясына айналдырсаңыз, онда функция g деп аталады, g ішінде айнымалы x-ге сілтемелер f ішінде жариялаған айнымалы x-ге сілтеме жасайды x .

Жергілікті орындауға болатын жалғыз арнайы параметр: функция қайтарылғанда бастапқы мәндеріне қалпына келтірілетін функция ішіндегі орнатылған пәрмен арқылы өзгертілетін кез-келген «-» «жергілікті» параметрлерін жасау.

Қайтару пәрменінің синтаксисі болып табылады

қайтару [exitstatus

Ол орындалатын функцияны тоқтатады. Айналдыру командасының командасы ретінде іске асырылады.

Айнымалылары және параметрлері

Қабықша көптеген параметрлерді сақтайды. Атаумен белгіленген параметр айнымалы деп аталады. Қосылғанда, қабық барлық айнымалы айнымалыларды қабық айнымалыларына айналдырады. Жаңа айнымалы мәндерді пішін арқылы орнатуға болады

name = мәні

Пайдаланушы орнатқан айнымалы мәндер тек алфавиттік, сандар және астыңғы сызықтардан тұратын есім болуы керек, олардың біреуі сандық болмауы керек. Параметрді төменде түсіндірілген сан немесе арнайы таңба арқылы белгілеуге болады.

Позициялық параметрлері

Позициялық параметр - бұл санмен белгіленетін параметр (n> 0). Қабықша оларды бастапқыда қабық сценарийінің атын сақтайтын пәрмен жолы дәлелдерінің мәндеріне орнатады. Орнатылған (1) орнатуға немесе оларды қалпына келтіруге болады.

Арнайы параметрлері

Арнайы параметр - келесі арнайы таңбалардың біреуімен белгіленетін параметр. Параметрдің мәні оның таңбасының жанында көрсетіледі.

*

Біреуден бастап позициялық параметрлерге дейін кеңейтіледі. Кеңейту қос тырнақшаға енгенде , ол IFS айнымалысының бірінші таңбасымен бөлінген әрбір параметрдің мәнімен немесе егер IFS орнатылмаған болса, <бос орын> арқылы бір өріске дейін кеңейтіледі.

@

Біреуден бастап позициялық параметрлерге дейін кеңейтіледі. Кеңейту қос тырнақшаларда орын алғанда, әрбір позициялық параметр жеке аргумент ретінде кеңейеді. Егер позициялық параметрлер жоқ болса, @ @ кеңейтілуі нөлдік аргументтерді жасайды, тіпті @ қос-тырнақшаға жатады. Бұл негізінен, мысалы, егер $ 1 - «abc» және $ 2 - «def ghi» болса, онда Qq $ @ екі дәлелге кеңейтеді:

abc dd ghi

#

Орналасқан параметрлердің санына қарай кеңейтіледі.

?

Ең соңғы құбырдың шығу мәртебесін кеңейтеді.

- (сызықша).

Ағымдағы опцияның жалауларына (жолға біріктірілген бір әріптік опция атаулары) шақыруда, орнатылған орнатылған пәрмен арқылы немесе қабықпен жасырын емес түрде кеңейтеді.

$

Талап етілген қабықтың процесс идентификаторына кеңейтеді. Шағын төлем ата-аналар сияқты $ мәнін сақтайды.

!

Ағымдағы қабықтан орындалған ең соңғы фондық командасының үрдіс идентификаторына кеңейтіледі. Газ құбыры үшін процестің идентификаторы құбырдағы соңғы команда болып табылады.

0 (нөл).

Қабырға немесе қабық сценарий атауын кеңейтеді.

Word кеңейтімдері

Бұл тармақта сөздер бойынша жүзеге асырылатын әр түрлі кеңейтулер сипатталады. Кейінірек түсіндірілгендей, барлық сөздердің барлығы кеңейтілмейді.

Тильда кеңеюі, параметрді кеңейту, командалық ауыстыру, арифметикалық кеңейтулер және бір сөзде кездесетін цитаталарды жою бір өріске дейін кеңейтіледі. Бұл тек бір сөзден бірнеше өрістерді жасай алатын өрісті бөлу немесе жолақ атауын кеңейту. Жоғарыда сипатталғандай, осы ережеге бірден-бір ерекше ереже - екі қос тырнақшаға арнайы параметрді кеңейту.

Сөзді кеңейту тәртібі:

  1. Tilde кеңейтімі, параметрді кеңейту, командалық ауыстыру, арифметикалық кеңейту (бәрі бір мезгілде орын алады).
  2. Өрісті бөлу, егер IFS айнымалысы бос болмаса, (1) қадаммен жасалған өрістерде орындалады.
  3. Pathname Expansion (егер set - f қолданыста болса).
  4. Цитировать жою.

$ Символы параметрді кеңейтуді, команда ауыстыруды немесе арифметикалық бағалауды енгізу үшін пайдаланылады.

Tilde кеңейту (пайдаланушының үй каталогын ауыстыру)

Тильда таңбасынан (~) басталатын сөз тильден кеңейтуге ұшырайды. Слэшке (/) немесе сөздің соңына дейін барлық таңбалар пайдаланушы аты ретінде қарастырылады және пайдаланушының үй каталогымен ауыстырылады. Егер пайдаланушы аты жоқ болса (~ / foobar сияқты), онда тильда HOME айнымалы мәнімен (ағымдағы пайдаланушының үй каталогы) ауыстырылады.

Параметрді кеңейту

Параметрді кеңейту пішімі келесідей:

онда өрнек барлық белгілерден тұрады, сәйкесінше `` `` `Кез-келген` `` '' жолдың қиғаш сызығымен немесе тырнақша жолымен қашқанша және кірістірілген арифметикалық кеңістіктегі таңбалар, командалық ауыстыру және ауыспалы кеңеюлер әзірше анықталмайды. `` `` сәйкестігі ''

Параметрді кеңейтудің ең қарапайым түрі:

Параметрдің мәні, егер бар болса, ауыстырылады.

Параметр атауы немесе символы бірнеше сандық позициялық параметрлерін қоспағанда немесе параметрдің атаудың бөлігі ретінде түсіндірілуі мүмкін таңбадан кейін қосымша болып табылатын қосымша жақшада болуы мүмкін. Параметрдің кеңеюі қос тырнақшаларда пайда болса:

  1. Кеңейтудің нәтижесі бойынша Pathname кеңейтімі орындалмайды.
  2. Өрісті бөлу кеңейту нәтижесі бойынша орындалмайды, қоспағанда @.

Сонымен қатар, параметрді кеңейту келесі пішімдердің біреуін пайдаланып өзгертілуі мүмкін.

Әдепкі мәндерді қолданыңыз. Параметр орнатылмаған немесе нөл болса, сөздің кеңеюі ауыстырылады; әйтпесе, параметрдің мәні ауыстырылады.

Әдепкі мәндерді тағайындау. Параметр орнатылмаған не нөл болса, сөздің кеңеюі параметрге тағайындалады. Барлық жағдайларда параметрдің соңғы мәні ауыстырылады. Осындай жолмен, позициональдық параметрлер немесе арнайы параметрлер емес, айнымалылар ғана тағайындалуы мүмкін.

Null немесе Unset деген қате туралы хабарлау. Егер параметр орнатылмаған немесе нөл болса, сөздің кеңеюі (немесе сөздің жоқтығы көрсетілсе, ол көрсетілмеген болса) стандартты қатеге жазылады және қабық нөлден шығу күйі арқылы шығады. Әйтпесе, параметрдің мәні ауыстырылады. Интерактивті қабықтан шығу қажет емес.

Баламалы мәнді пайдаланыңыз. Параметр орнатылмаған не бос болса, нөл ауыстырылады; әйтпесе сөздің кеңеюі ауыстырылады.

Бұрын көрсетілген параметр кеңістігінде пішімде қос нүктені пайдалану параметрі белгіленбеген немесе нөлге тең емес; Колонның болмауы тек қана белгіленбеген параметрдің сынағына әкеледі.

Жол ұзындығы. Параметр мәнінің таңбаларындағы ұзындық.

Параметрді кеңейтудің келесі төрт түрі субстринді өңдеуді қамтамасыз етеді. Әрбір жағдайда үлгіні бағалау үшін әдеттегі өрнек белгілерінен гөрі үлгіні сәйкестендіру (Shell үлгілерін қараңыз). Параметр * немесе @ болса, кеңейту нәтижесі анықталмаған. Қосарлы тырнақшалардағы толық параметрді кеңейту жолын бекіту келесі үлгідегі төрт үлгі түртіндінің белгілерін келтірмеуге әкелмейді, алайда жақшалар ішіндегі таңбаларды белгілеу осы әсері бар.

Ең кішкентай Suffix үлгіні алып тастаңыз. Үлгі жасау үшін сөз кеңейтілді. Параметрді кеңейту кейін параметрге әкеледі, жәшігінің ең кішкене бөлімі жойылған үлгіге сәйкес келеді.

Ең үлкен суретті жою. Үлгі жасау үшін сөз кеңейтілді. Параметрді кеңейту кейін параметрге әкеледі, жұрнақшаның ең үлкен бөлігі үлгілермен жойылады.

Ең кіші префиксті үлгіні алып тастаңыз. Үлгі жасау үшін сөз кеңейтілді. Параметрді кеңейту кейін параметрге әкеледі, ал префикстің ең кішкене бөлігі жойылған үлгіге сәйкес келеді.

Ең үлкен префиксті үлгіні алып тастаңыз. Үлгі жасау үшін сөз кеңейтілді. Параметрді кеңейту кейін параметрге әкеледі, префикстің ең үлкен бөлігі жойылған үлгіге сәйкес келеді.

Командалық ауыстыру

Командалық ауыстыру пәрменнің атын орнына ауыстыруды тапсырады. Командалық ауыстыру келесідей командалар қосылған кезде пайда болады:

$ (команда)

немесе Po`` backquoted '' нұсқасы Pc:

`команда '

Раковина командаларды ауыстыру командасын командалық тапсырманы орындау арқылы кеңейтеді және командалық алмастыруды команданың стандартты шығысымен алмастырады, ауыстыру соңында бір немесе бірнеше s тізбегін шығарады. (Енгізілген s шығару аяқталғанға дейін жойылмайды, бірақ өрістерді бөлу кезінде олар IFS мәніне және оның күшіне енуіне байланысты s түріне ауыстырылуы мүмкін.)

Арифметикалық кеңейту

Арифметикалық кеңею арифметикалық өрнекті бағалауға және оның мәнін алмастыруға мүмкіндік береді. Арифметикалық кеңейтілім форматы келесідей:

$ ((өрнек))

Өрнек қос тырнақшаларда болған секілді қарастырылады, тек оның ішінде қос тырнақшаға арнайы қаралмайды. Қабықша параметрлерді кеңейту, команда ауыстыру және цитатаны жою үшін өрнектегі барлық белгілерді кеңейтеді.

Одан кейін, қабық оны арифметикалық өрнектер ретінде қарастырады және өрнектің мәнін ауыстырады.

Ақ кеңістікті бөлу (өрісті бөлу)

Параметрді кеңейтуден, командалық алмастырудан және арифметикалық кеңейтумен кейін өрістер өрістерді бөлу үшін қос тырнақшаларда пайда болмаған және бірнеше өрістердің пайда болуының және ауыстырулардың нәтижелерін сканерлейді.

Қабықша IFS- тің әрбір сипатын бөлгіш ретінде қарастырады және параметрді кеңейту және командаларды ауыстыру нәтижелерін бөлу үшін шектегіштерді пайдаланады.

Pathname кеңейтімі (файл атауының генерациясы)

F - жалау тағайындалмаса, файлдың атауының генерациясы сөз бөлімі аяқталғаннан кейін орындалады. Әрбір сөз слэштермен бөлінген бірқатар үлгілер ретінде қарастырылады. Кеңейту үдерісі сөздерді барлық үлгілердің аттарымен ауыстырады, олардың әрқайсысын белгілі бір үлгіге сәйкес келетін жолмен ауыстыру арқылы аттары құрылуы мүмкін. Бұған екі шектеулер бар: алдымен үлгі сызықша бар жолға сәйкес келмейді, ал екіншіден, өрнекке бірінші таңба шықпаса, үлгі бір кезеңнен бастап жолға сәйкес келмейді. Келесі бөлімде Pathname Expansion және case (1) пәрмендері үшін пайдаланылатын үлгілер сипатталады.

Shell үлгілері

Үлгі өзіне және мета-таңбаларға сәйкес келетін қалыпты таңбалардан тұрады. Мета-символдар «`! »,` `` `''` `` '' Және `` `'' Бұл белгілер, егер олар цитата болса, арнайы мағынасын жоғалтады. Команда немесе айнымалы алмастыру орындалғанда және доллар белгісі немесе кері бағаны қос тырнақшаға қосылмаған кезде, айнымалы мән немесе пәрменнің шығысы осы таңбалар үшін сканерленеді және олар мета-таңбаларға айналдырылады.

Жұлдызша (`` * ') таңбалардың кез келген жолына сәйкес келеді. Сұрақ белгісі кез келген жалғыз таңбаға сәйкес келеді. Сол жақ жақша (`` ['') таңбалық сыныпты енгізеді. Егер кейіпкерлердің класының соңы (`` `') арқылы көрсетілсе, онда` `` `` `` `` `таңбаның сыныбын енгізуден гөрі сәйкес келеді. Таңбалар класы тік жақшалар арасындағы таңбалардың кез келгеніне сәйкес келеді. Белгілердің диапазоны минус белгісімен көрсетілуі мүмкін. Таңбалар класы леп белгісін жасау арқылы кейіпкерлердің класының бірінші сипатын жасау арқылы толықтырылуы мүмкін.

Таңба классында '``' 'қосу үшін оны тізімдегі бірінші таңбаны жасаңыз (егер бар болса ``!' '). Минус белгісін қосу үшін, тізімдегі бірінші немесе соңғы таңбаны жасаңыз

Құрылымдар

Бұл бөлім бөлек үдеріс арқылы орындалмауы мүмкін кейбір әрекеттерді орындауы керек, өйткені олар салынған пәрмендерді тізімдейді. Оған қоса, тиімділікке арналған бірнеше басқа командалар бар (мысалы, эхо- 1).

:

0 (шын) шығыс мәнін қайтаратын нөлдік пәрмен.

. файл

Көрсетілген файлдағы пәрмендер қабықпен оқылады және орындалады.

бүркеншік ат [ name [ = string ... ]]

Егер name = string көрсетілсе, бума аты баған жолымен бүркеншік атын анықтайды Егер тек аты көрсетілген болса, бүркеншік аттың мәні басып шығарылады. Аргументсіз, бүркеншік аттар барлық анықталған бүркеншік аттар мен мәндерді басып шығарады ( unalias қараңыз )

bg [ жұмыс] ...

Фонда көрсетілген тапсырмаларды (немесе тапсырма берілмеген болса, ағымдағы тапсырманы) жалғастырыңыз.

команда командасы arg ...

Көрсетілген салынған пәрменді орындаңыз. (Бұл сізде builtin пәрменімен бірдей атымен қабығы функциясы болған кезде пайдалы.)

cd [ каталог ]

Көрсетілген каталогқа ауысу (әдепкі $ HOME) Егер CDPATH жазбасы cd пәрменінің ортасында пайда болса немесе CDPATH қабығы айнымалысы орнатылса және каталог атауы слэшпен басталмаса, CDPATH тізімінде көрсетілген каталогтар ізделеді көрсетілген каталог үшін. CDPATH пішімі PATH сияқты бірдей. Интерактивті қабықшада, cd пәрмені, егер ол пайдаланушы берген атаудан өзгеше болса, іс жүзінде қосылатын каталог атауын басып шығарады. Олар CDPATH тетігі пайдаланылған немесе символикалық байланыс қиылғандықтан , әртүрлі болуы мүмкін.

eval string ...

Барлық аргументтерді кеңістіктермен байланыстырыңыз. Содан кейін пәрменді талдап, орындаңыз.

exec [ командасы arg ... ]

Егер команда жоқ болса, қабықтың процесі көрсетілген бағдарламамен ауыстырылады (ол нақты бағдарлама болуы керек, қабығы салынған немесе функция емес). Exec пәрменіндегі кез келген қайта бағыттау, exec пәрмені аяқталғанда, олар жойылмайтын етіп тұрақты болып белгіленеді.

шығу [ exitstatus ]

Қабықтарды өңдеуді тоқтатыңыз. Егер exitstatus берілсе, ол қабықтың шығу күйі ретінде пайдаланылады; әйтпесе алдыңғы пәрменнің шығу күйі пайдаланылады.

экспорттау атауы ...

экспорт -p

Көрсетілген атаулар кейінгі командалардың ортасында пайда болу үшін экспортталады. Ауыспаны экспорттаудың жалғыз жолы - оны жою. Ракель айнымалы мәнін жазу арқылы экспортталатын мезгілде орнатуға мүмкіндік береді

экспорт атауы = мән

Аргументтер болмаса, экспорттау пәрмені барлық экспортталған айнымалылардың атауын көрсетеді. - p опциясымен көрсетілсе, шығыс интерактивті емес пайдалану үшін дұрыс пішімделеді.

fc [- e редакторы ] [ бірінші [ соңғы ]]

fc -l [- nr ] [ бірінші [ соңғы ]]

fc -s [ old = new ] [ бірінші ]

Интерактивті қабықшаларға бұрын енгізілген командалар федералды тізімде салынған тізімдерді жасайды немесе өңдейді және қайта орындайды.

-e редакторы

Командаларды өңдеу үшін редактордың редакторын пайдаланыңыз. Редактор жолы - PATH айнымалысы арқылы іздеуге жататын пәрмен атауы. FCEDIT айнымалы мәні мәнді - e көрсетілмесе, әдепкі ретінде пайдаланылады. Егер FCEDIT бос немесе орнатылмаған болса, EDITOR айнымалы мәні пайдаланылады. EDITOR бос немесе орнатылмаған болса, ed (1) редактор ретінде пайдаланылады.

-l (ell)

Командаларды редакторға шақырудан гөрі тізімдеңіз. Командалар бірінші және соңғы операндалармен көрсетілген кезекпен жазылады, әр команданың пәрмендік нөмірі алдындағы командаға әсер етеді.

-l тармағында тізілген кезде команда сандарын басу.

Тізімдегі командалардың тәртібін керісінше ( l - l немесе редакцияланған )

Редакторды шақырусыз пәрменді қайта орындаңыз.

алдымен

соңғы

Тізім немесе өңдеу үшін пәрмендерді таңдаңыз. Қол жетімді болатын алдыңғы пәрмендердің саны HISTSIZE айнымалы мәнімен анықталады . Бірінші немесе соңғы немесе екеуінің мәні төмендегілердің бірі болып табылады:

[+] Нөмірі

Команда нөмірін білдіретін оң сан; командалық нөмірлерді - l опциясымен көрсетуге болады.

саны

Бұрын пәрмендердің саны орындалатын пәрменді білдіретін теріс ондық сан. Мысалы, -1 - бұл тікелей алдыңғы пәрмен.

жол

Бұл жолдан басталатын соңғы енгізілген пәрменді көрсететін жол. Егер ескі = жаңа операнд-да көрсетілмесе - бірінші операндтың жолының формасы енгізілген теңдік белгісін қамтымауы мүмкін емес.

Келесі айнымалы мәндер fc орындалуына әсер етеді:

FCEDIT

Қолданылатын редактордың аты.

HISTSIZE

Қол жетімді болатын алдыңғы командалардың саны.

fg [ жұмыс ]

Көрсетілген тапсырманы немесе ағымдағы тапсырманы алдыңғы жоспарға жылжытыңыз.

getopts optstring var

Bell Labs- тан алған getopt (1) шатастырмау үшін, POSIX голопстары командасы.

Бірінші аргумент әріптер сериясы болуы керек, олардың әрқайсысы опцияны аргументтің талап ететінін көрсету үшін қажет болған жағдайда қос нүкте болуы мүмкін. Көрсетілген айнымалы талдау параметріне орнатылады.

Getopts командасы ескі getopt (1) утилитасын ағындарды қамтитын аргументтерді өңдеу себебінен ескіреді.

Параметрлер тізімінен опцияларды және олардың аргументтерін алу үшін голандоптар салынған болуы мүмкін. Қабылданған кезде, гопоптар келесі опцияның мәнін опциясынан келтіреді , олар тізімде көрсетілген қабықшаның ауыспалы ішіндегі тізімде көрсетіледі және оның индексі OPTIND қабығының ауыспалылығында индекс болады. Қабықша шақырылған кезде, OPTIND 1-ге теңестіріледі. аргумент, getopts салынған оны OPTARG қабығының айнымалы мәніне орналастырады. Оптикалық жолда опция рұқсат етілмесе , OPTARG орнатылмайды.

оптри - танылған опция әріптерінің жолы. Егер хатқа нүкте қосылса, опцияның ақ кеңістікпен бөлінетін немесе мүмкін болмайтын дәлел болуы керек. Егер опция таңбасының күтілмесе, табылмаса , getopts айнымалы мәнді `` `'' деп орнатады , онда getopts OPTARG параметрін орнатады және стандартты қатеге шығаруды шығарады. Барлық қателерді оптикалық белгілеудің бірінші таңбасы ретінде қос нүктені көрсете отырып, еленбейді.

Нөлдік мән соңғы опцияға жеткенде қайтарылады. Егер қалған дәлелдер болмаса, « getopts» арнайы нұсқаға « var» орнатады, әйтпесе, «`? »

Төмендегі код фрагменті, [a] және [b] опцияларын және дәлелді талап ететін параметрді қабылдауға болатын пәрменге дәлелдерді өңдеу жолын көрсетеді.

ал голандоптар abc: f
істеу
оқиға $ f in
a | б) жалауша = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; шығу 1 ;;
esac
жасалды
жылжуы '$ OPTIND - 1' дегенді басыңыз

Бұл код төмендегілердің кез-келгенін баламалы деп қабылдайды:

cmd -acarg файл файлы
cmd -a -c arg файлының файлы
cmd -carg -a файл файлы
cmd -a -carg - файл файлы

hash -rv командасы ...

Қабықша командалардың орындарын есте сақтайтын хеш кестесін қолдайды. Дәлелдер болмаса, хэш командасы осы кестенің мазмұнын басып шығарады. Соңғы cd пәрменінен бастап қаралмаған жазбалар жұлдызшамен белгіленеді; бұл жазбалардың жарамсыз болуы мүмкін.

Аргументтермен, hash пәрмені көрсетілген функцияларды хэш кестесінен алып тастайды (егер олар функция болмаса) және оларды орналастырады. V - опциясымен, хэш пәрмендердің орындарын оларды тапқан кезде басып шығарады. - r опциясы функцияларды қоспағанда хэш кестесінде барлық жазбаларды жоюға хэш командасын береді.

jobid [ жұмыс ]

Процестің идентификаторларын тапсырмадағы процестерді басып шығарыңыз. Егер тапсырма аргументі жоқ болса, ағымдағы тапсырма пайдаланылады.

жұмыс орындары

Бұл команда ағымдық қабық процесінің балалары болып табылатын барлық фондық үрдістерді тізімдейді.

pwd

Ағымдағы каталогты басып шығарыңыз. Құрылған пәрмен сол атаудағы бағдарламадан өзгеше болуы мүмкін, себебі buildin пәрмені ағымдағы каталогтың әр уақытты қайта есептеуден гөрі екенін есіне алады. Бұл оны жылдамырақ етеді. Дегенмен, егер ағымдағы каталог қайта аталса, pwd бағдарламасының ішкі нұсқасы каталог үшін ескі атауын басып шығаруды жалғастырады.

[- P нұсқауы ] [ ] айнымалыны оқыңыз ...

Егер шақыру - p параметрі көрсетілсе және стандартты енгізу терминал болса, басып шығарылады. Содан кейін стандартты енгізу жолынан оқылады. Жаңа сызық сызықтан жойылады және жол жоғарыда сөз бөлуге арналған бөлікте сипатталғандай бөлінеді және бөліктер айнымалыларға тәртіпте тағайындалады. Кем дегенде бір айнымалыны көрсету керек. Егер айнымалы мәндерден көп бөліктер болса, қалған бөліктер (оларды ажырататын IFS таңбаларымен қатар) соңғы айнымалыға тағайындалады. Бөліктерге қарағанда көп айнымалылар болса, қалған айнымалыларға нөлдік жол беріледі. Енгізілген оқылымда EOF пайда болмаған жағдайда табысты көрсетеді, бұл жағдайда қайтарылмайды.

Әдепкі бойынша, егер - r параметрі көрсетілмесе, '`` кері қиғаш сызығы `- құтылу сипаты ретінде әрекет етеді, бұл келесі символды тікелей өңдеуге әкеледі. Егер кері қиғаш сызық жаңа сызықпен жүрсе, кері қиғаш сызық пен жаңа жол жойылады.

оқылатын аты ...

оқуға арналған -p

Көрсетілген атаулар тек кейінірек өзгертілмейтін немесе орнатылмайтын етіп оқылым ретінде белгіленеді. Қабықша айнымалы мәнін бір уақытта орнатуға мүмкіндік береді, ол тек жазу арқылы оқылады деп белгіленеді

readonly name = мәні

Дәлелдер болмаса, readonly пәрмені тек оқылған тек айнымалы мәндердің аттарын көрсетеді. - p опциясымен көрсетілсе, шығыс интерактивті емес пайдалану үшін дұрыс пішімделеді.

set [{- options | + параметрлер - arg ... ]

Орнатылған пәрмен үш түрлі функцияларды орындайды.

Аргументтері болмаса, ол барлық қабықтың айнымалы мәндерінің мәндерін тізімдейді.

Егер опциялар берілсе, онда көрсетілген опцияның жалауларын белгілейді немесе оларды Sx Аргумент Тізімін өңдеу бөлімінде сипатталғандай тазартады.

Команданың үшінші нұсқасы - қабықшаның позициялық параметрлерін көрсетілген аргларға орнату. Кез келген параметрді өзгертпестен позициялық параметрлерін өзгерту үшін, бірінші `аргумент ретінде` `- '' пайдаланыңыз. Егер args жоқ болса, онда орнатылған пәрмен барлық позициялық параметрлерді (« shift $ #.») Орындауға тең.

айнымалы мән

Айнымалы мәнді тағайындайды. (Жалпы, setvar- setvar-ді пайдаланудан гөрі айнымалы = мәнді жазған жөн, атаулары параметрлері ретінде берілетін айнымалы мәндерді тағайындайтын функцияларда пайдалануға арналған.)

shift [ n ]

Позициялық параметрлерін n рет ауыстырыңыз. Ауыстыру $ 1 мәнін $ 2 мәніне $ 2 мәніне $ 3 мәнін және т.с.с. $ $ мәнін біреуден азайтады. Егер n позициялық параметрлер санынан үлкен болса, ауысым қате туралы хабар береді және қайтару күйі 2 арқылы шығады.

рет

Жинақталған пайдаланушыны және жүйедегі уақытты қабық үшін және қабықтан іске қосылатын процестер үшін басып шығарыңыз. Қайтару күйі - 0.

тұзақ әрекетінің сигналы ...

Көрсетілген сигналдардың кез келгені қабылданған кезде, қабықтың талдауы мен әрекетін орындау керек. Сигналдар сигналдың нөмірі бойынша көрсетіледі. Егер сигнал 0 болса , әрекет қабығы шыққанда орындалады. әрекеттің мәні нөлге тең немесе бірінші `` - '', ал бұрынғы көрсетілген сигнал еленбеуі керек, ал екіншісі әдепкі әрекетті жасайды. Қабықшаның үстіңгі қабырғасынан соққысы келгенде, ол әдепкі әрекетке тұйықталған (бірақ еленбейтін) сигналдарды ысырады. Тұзақ пәрмені қабыққа кіру кезінде ескерілмеген сигналдарға әсер етпейді.

түрін [ аты ... ]

Әрбір атауды командамен түсіндіріп, пәрмен іздеуінің ажыратымдылығын басып шығарыңыз. Мүмкін болатын ажыратымдылықтар: shell кілт сөзі, бүркеншік аты, қабығы салынған , команда, қадағаланған бүркеншік аттары және табылмады. Бүркеншік аттар үшін бүркеншік кеңейту басылып шығады; пәрмендер мен қадағаланатын бүркеншік аттар үшін пәрменнің толық жолақ атауы басып шығарылады.

ulimit [ -H- S ] [- a -tfdscmlpn [ value ]]

Процестерге сұрау салуды немесе қатты немесе жұмсақ шектеулерді анықтаңыз немесе жаңа шектеулер қойыңыз. Қатаң шектеудің (ешқандай процестің бұзылуына жол бермейтін, оны төмендетілгеннен кейін көтеріле алмайтын) таңдау және жұмсақ шектеу (бұл сигналдар сигнализацияға, бірақ міндетті түрде өлтірілмейтін және көтерілуі мүмкін) арасындағы таңдау жасалады бұл жалаулар:

-H

қатаң шектеулерді анықтаңыз немесе сұраңыз

жұмсақ шектеулерді анықтаңыз немесе сұраңыз. Егер де - H немесе - S көрсетілмесе, жұмсақ шектеу көрсетіледі немесе екі лимит орнатылады. Егер екеуі де көрсетілсе, соңғы біреу жеңеді.

Сұрау салынатын немесе орнатылатын шектеу осы жалаушалардың кез келгенін көрсету арқылы таңдалады:

-a

барлық ағымдағы шектеулерді көрсетіңіз

-t

CPU уақытына шектеу қою немесе орнату (секунд)

-f

жасай алатын ең үлкен файлға шектеу қойыңыз немесе орнатыңыз (512 байттық блокта)

-d

процестің деректер сегментін өлшеміне көрсету немесе шектеу қою (килобайттарда)

процестің стек өлшеміне шектеу қою немесе орнату (килобайттарда)

-c

жасай алатын ең үлкен ядро ​​төсемінің шекарасын көрсетіңіз немесе орнатыңыз (512 байттық блокта)

процесте пайдаланылуы мүмкін жалпы физикалық жадқа шектеу қою немесе орнату (килобайттарда)

-l

(2) ( килобайт ) көмегімен процестің қанша жадыға құлыпталатындығын көрсетіңіз немесе орнатыңыз

-p

осы пайдаланушы бір уақытта болуы мүмкін процестердің санын көрсетіңіз немесе орнатыңыз

процестің бірден ашылуы мүмкін сандар файлдарына шектеу қойыңыз немесе орнатыңыз

Егер олардың ешқайсысы көрсетілмесе, ол көрсетілген немесе орнатылатын файл өлшеміндегі шектеу. Мән көрсетілсе, шектеу сол нөмірге орнатылады; әйтпесе ағымдағы шектеу көрсетіледі.

Еркін процестің шектеулері sysctl (8) утилитасын пайдалану арқылы көрсетілуі немесе орнатылуы мүмкін.

умаск [ маска ]

Умаск мәнін орнатыңыз (umask (2) қараңыз) көрсетілген сегіздік мәнге. Аргумент жоқ болса, umask мәні басылып шығады.

unalias [- a ] [ атауы ]

Атау көрсетілген болса, қабығы осы бүркеншік аттарды жояды. Егер - a көрсетілсе, барлық бүркеншік аттар жойылады.

белгіленбеген атау ...

Көрсетілген айнымалылар мен функциялар қойылмаған және экспортталмаған. Егер берілген атау айнымалыға және функцияға сәйкес келсе, айнымалы ретінде де, функция да орнатылмаған.

күту [ жұмыс ]

Тапсырмадағы тапсырманың аяқталуын күтіңіз және тапсырмадағы соңғы процестің шығу күйін қайтарыңыз. Егер дәлел жоқ болса, барлық тапсырмаларды аяқтауды күтіп, нөлден шығу күйін қайтарады.

Командалық сызықты өңдеу

Терминалдан интерактивті түрде пайдаланылса, ағымдық пәрмен мен пәрмен тарихын (Sx Builtins ішіндегі fc бөлімін қараңыз) vi-mode командалық жолын өңдеу арқылы өңдеуге болады. Бұл режим vi men бетінде сипатталғандардың жиынын ұқсас төменде сипатталған пәрмендерді пайдаланады. 'Set' -o vi пәрмені ви-режимді редакциялауға мүмкіндік береді және sh-ды виджет енгізу режиміне орналастырады. Vi режимі қосулы кезде, кірістіру режимі мен пәрмен режимі арасында ауыстыруға болады. Редактор мұнда толық жазылмаған, бірақ кейінгі құжатта болады. Бұл VI-ге ұқсас: Aq ESC теру сіздерді VI командасының режиміне шығарады. Командалық режимде болғанда Aq қайтару сызықты қабыққа өтеді.

Маңызды: Жеке компьютерде пәрменді қалай пайдалану керектігін көру үшін man ( % man ) пәрменін пайдаланыңыз.