Ash - Linux Command - Unix Command

VARDAS

sh - komandų vertėjas (" shell" )

SANTRAUKA

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

APIBŪDINIMAS

Sh yra standartinis sistemos interpretavimo komandos. Dabartinė " sh" versija yra pakeista, kad atitiktų "shell" specifikacijas POSIX 1003.2 ir 1003.2a. Ši versija turi daug funkcijų, kurios tam tikrais atžvilgiais tampa panašios į Korno lukštą, tačiau tai nėra Korn lukšto klonas (žr. Ksh (1)). Į šį apvalkalą įtraukiamos tik POSIX priskirtos funkcijos ir keli Berkeley pratęsimai. Mes tikimės, kad POSIX atitiktų laiką 4.4. BSD bus paleistas. Šis žmogaus puslapis nėra skirtas pamokoms ar išsamiai apvalkalo specifikacijai.

Apžvalga

Korpusas yra komanda, kuri skaito eilutes iš failo arba terminalo, jas interpretuoja ir paprastai vykdo kitas komandas. Tai programa, kuri veikia, kai vartotojas įeina į sistemą (nors vartotojas gali pasirinkti kitą lukštą su komanda chsh (1)). Korpusas įdiegia kalbą, turinčią srauto valdymo konstrukcijas, makrokomandą, kuris be daugialypių duomenų saugojimo suteikia daugybę funkcijų, kartu su įtaisytais istorijos ir linijos redagavimo galimybėmis. Ji apima daugybę funkcijų, padedančių interaktyviam naudojimui, ir turi pranašumą, kad aiškinamoji kalba yra bendra interaktyviam ir neinteraktyviam naudojimui ("shell" scenarijai). Tai reiškia, kad komandos gali būti įvestos tiesiai į vykdomąjį apvalkalą arba jį galima įdėti į failą, o failą gali atlikti tiesiogiai apvalkalas.

Paskatinimas

Jei nėra args ir jei standartinis įdėtas apvalkalas yra prijungtas prie terminalo (arba jei nustatytas vėliavėlė), o parinktis- c nėra, apvalkalas laikomas interaktyviu apvalkalu . Prieš kiekvieną komandą interaktyvi apvalkale paprastai pateikiama informacija, o programavimo ir komandų klaidos skiriasi skirtingai (kaip aprašyta toliau). Kai pirmą kartą paleidžiant, lukštas tikrina argumentą 0, o jei jis prasideda brūkšniu "-", apvalkalas taip pat laikomas prisijungimo lukštais. Sistemą paprastai atlieka automatiškai, kai vartotojas pirmą kartą prisijungia. Prisijunkite lange pirmiausia nuskaito komandas iš failų / etc / profile ir .profile, jei jos egzistuoja. Jei aplinkos kintamasis ENV yra nustatytas įėjimui į apvalkalą arba yra nustatytas įregistravimo lukšto .profile, apvalkalas toliau skaito komandas iš failo, pavadinto ENV. Todėl naudotojas turi įdėti komandas, kurios turi būti vykdomos tik prisijungimo laikas .profile faile ir komandoms, kurios vykdomos kiekvienai ENV failo viduje. Norėdami nustatyti ENV kintamąjį tam tikram failui, įdėkite šią eilutę į savo namų katalogo .profile

ENV = $ HOME / .shinit; eksportas ENV

pakeičiant `` .shinit '' bet kurį norimą failo pavadinimą . Kadangi ENV failas yra perskaitomas kiekvieną kartą naudojant apvalkalą, įskaitant apvalkalo scenarijus ir neinteraktyvus apvalkalus, tokia paradigma yra naudinga norint apriboti ENV failo komandas interaktyviems skambučiams. Žemiau esančias komandas "` case '' ir `` esac '' (šios komandos aprašytos vėliau):

atvejis $ - in * i *)

# komandos tik interaktyviam naudojimui

...

esac

Jei buvo nurodyti komandų eilutės argumentai be parinkčių, tada apvalkalas pirmąjį argumentą laiko kaip failo pavadinimą, iš kurio galima skaityti komandas ("shell" scenarijų), o likusieji argumentai yra nustatyti kaip "shell" pozicijos parametrai ($ 1 , 2 dol. Ir tt). Priešingu atveju, lukštas skaito komandas iš standartinės įvesties.

Argumentų sąrašo apdorojimas

Visi vienos raidės parinktys turi atitinkamą pavadinimą, kuris gali būti naudojamas kaip argumentas - o parinkčiai. Nustatytas vardas pateikiamas šalia vieno raidės parinkties aprašyme. Nurodžius brūkšnį `` - '' įjungia parinktį, naudodamas pliusą `` + '' išjungia parinktį. Šios parinktys gali būti nustatytos iš komandinės eilutės arba su set (1) builtin (aprašyta vėliau).

- allexport

Eksportuojami visi kintamieji, priskirti. (NEPAGEIGTAS už 4.4 alpha)

-c

Skaityti komandas iš komandinės eilutės. Nė viena komanda nebus nuskaityta iš standartinės įvesties.

-C noclobber

Negalima perrašyti esamų failų su ``> '' (NEPAGEIGTINTA už 4.4alpha)

-e errexit

Jei neinteraktyvus, nedelsdami išjunkite, jei nepavyks bandyti nepatikrintos komandos. Komandos išėjimo būsena laikoma aiškiai išbandyta, jei komanda naudojama valdyti elifą, kol arba iki, arba jei komanda yra "` && '' arba `` || '' operatoriaus kairysis operandas.

-f noglob

Išjungti plėtinio plėtinį .

-n noexec

Jei neinteraktyvus, skaitykite komandas, bet nevykdykite jų. Tai naudinga norint patikrinti "shell" scenarijų sintaksę.

-n nuoroda

Bandydami išplėsti nenustatytą kintamąjį, parašykite žinutę standartine klaida, o jei korpusas nėra interaktyvus, nedelsdami išjunkite. (NEPAGEIGTAS už 4.4 alpha)

-V verbose

Korpusas savo sąnaudas įrašo į standartinę klaidą, kai ji yra skaitoma. Naudinga derinti.

-x xtrace

Įrašykite kiekvieną komandą į standartinę klaidą (prieš prasidedant simboliu "+", kol ji bus įvykdyta. Naudinga derinti.

-Q quietprofile

Jei nustatytos "- v" arba " x" parinktys, jų nenaudokite skaitant iniciacijos failus, o tai yra / etc / profile .profile ir ENV aplinkos kintamojo nurodytas failas.

- Aš ignoruoju

Nepaisyti EOF iš įvesties, kai interaktyvi.

-i interaktyvus

Priverskite apvalkalą veikti interaktyviai.

-M stebėti

Įjunkite darbo kontrolę (nustatykite automatiškai, kai interaktyvi).

-s stdin

Skaityti komandas iš standartinio įvesties (nustatyti automatiškai, jei nėra failo argumentų). Ši parinktis neturi jokios įtakos, kai nustatoma po to, kai korpusas jau paleistas (ty su setu (1)).

-V vi

Įgalinti įmontuotą komandą vi (1) komandų eilutės redaktorius (išjungia - E, jei jis buvo nustatytas).

-E emacs

Įgalinkite įtaisytą emacs (1) komandinės eilutės redaktorių (išjungia - V, jei jis buvo nustatytas).

-b pranešti

Įgalinti asinchroninį pranešimą apie fono darbą. (NEPAGEIGTAS už 4.4 alpha)

Leksine struktūra

Korpusas skaito duomenis iš failo eilučių ir suskaido jį į žodžius, esančius tarpybėje (ruošiniai ir skirtukai), o tam tikrose operacinėse sistemose būdingų simbolių sekos vadinamos "operatoriais". Yra dviejų tipų operatoriai: valdymo operatoriai ir peradresavimo operatoriai (jų reikšmė aptariama vėliau). Toliau pateikiamas operatorių sąrašas:

"Valdymo operatoriai:"

&&& (); ;;; | ||

"Peradresavimo operatorius:"

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

Cituoti

Citata naudojama norint panaikinti tam tikrų simbolių ar žodžių konkrečią reikšmę apvalkale, pvz., Operatoriams, tarpai arba raktiniai žodžiai. Yra trys citavimo tipai: suderintos vienos kabutės, suderintos dvigubos kabutės ir backslash.

Backslash

Slenkamas brūkšnys išsaugo šio simbolio tiesioginę prasmę, išskyrus Aq eilutę. Prieš "Aq" naujos eilutės grįžtamąja briauna traktuojama kaip linijos tęsinys.

Vieni kolekcijos

Ženklų priskyrimas vienkartiniuose kabutėse išsaugo visų simbolių tiesioginę reikšmę (išskyrus vienos kabučių, todėl neįmanoma įdėti atskirų citatų vienoje citavimo eilutėje).

Dvigubos kotiruotės

Dvipučių citatų priskiriami simboliai išsaugo visų simbolių tiesioginę reikšmę, išskyrus dolerių ($) backquote (`) ir backslash (\). Dvigubų kabučių viduje esantis backslash yra istoriškai keistas ir nurodo tik šiuos simbolius:

$ `\

Priešingu atveju jis išlieka pažodinis.

Rezervuoti žodžiai

Rezervuoti žodžiai yra žodžiai, kurie turi ypatingą reikšmę apvalkale ir yra pripažinti linijos pradžioje ir po valdymo operatoriaus. Žemiau yra rezervuoti žodžiai:

! Ta elif Ta fi Ta o Ta byla

dar Ta už Ta, tada Ta {Ta}

daryk Ta, kol Ta, jei Ta Esac

Jų reikšmė aptariama vėliau.

Slapyvardžiai

Slapyvardis yra vardas ir atitinkama reikšmė, nustatyta naudojant slapyvardį (1) builtin komandą. Kiekvieną kartą, kai gali pasitaikyti rezervuotas žodis (žr. Pirmiau), ir patikrinus rezervuotus žodžius, apvalkalas patikrina žodį, kad įsitikintų, ar jis atitinka slapyvardį. Jei taip, jis pakeičia įvesties srautą su jo verte. Pavyzdžiui, jei yra slapyvardis, vadinamas `` lf '' su reikšme `` ls -F '', tada įvestis:

lf foobar

taptų

ls-F foobar

Slapyvardžiai suteikia patogų kelią naivus naudotojams kurti komandų trumpačius, nesvarbu, kaip kurti funkcijas su argumentais. Jie taip pat gali būti naudojami norint sukurti leksiškai neaiškų kodą. Šis naudojimas yra atgrasomas.

Komandos

Apvalkalas interpretuoja žodžius, kuriuos jis skaito, pagal kalbą, kurios specifikacija nepatenka į šio žmogaus puslapio apimtį (žr. BNF dokumente POSIX 1003.2). Iš esmės, nors eilutė yra skaitoma ir jei pirmasis eilutės žodis (arba po valdymo operatoriaus) nėra rezervuotas žodis, tada apvalkalas pripažino paprastą komandą. Priešingu atveju gali būti atpažįstama sudėtinga komanda arba kitas ypatingas konstruktas.

Paprasti komandai

Jei paprasta komanda buvo atpažinta, lukštas atlieka šiuos veiksmus:

  1. Vadovaujantys žodžiai "` name = value '' yra pašalinami ir priskiriami paprastos komandos aplinkai. Peradresavimo operatoriai ir jų argumentai (kaip aprašyta toliau) yra pašalinami ir išsaugomi apdorojimui.
  2. Likę žodžiai išplečiami, kaip aprašyta skyriuje "Išplėtimas", o pirmasis likęs žodis laikomas komandų pavadinimu ir nustatyta komanda. Likę žodžiai laikomi komandos argumentais. Jei komandinio pavadinimo nėra, tada 1 punkte atpažįstamos kintamojo užduoties `` name = value '' turi įtakos dabartiniam apvalkale.
  3. Persiuntimai atliekami, kaip aprašyta kitame skyriuje.

Peradresavimai

Persiuntimai naudojami norint keisti komandą, kuri nuskaito jo įvestį arba siunčia savo išvestį. Apskritai peradresavimai atveria, uždaro ar dubliuoja esamą nuorodą į failą. Bendras peradresavimui taikomas formatas yra:

[n] redir-op failas

kur redir-op yra vienas iš pirmiau minėtų nukreipimo operatorių. Toliau pateikiamas galimų peradresavimų sąrašas. Bq n yra neprivalomas skaičius, kaip ir "3" (ne "Bq 3", kuris nurodo failo deskriptorių.

[n]> failas

Peradresuoti standartinę išvestį (arba n) į failą.

[n]> | failas

Tas pats, bet nepaisyti parinkties " C" .

[n] >> byla

Pridėkite standartinę išvestį (arba n) į failą.

[n]

Peradresuoti įprastą įvestį (arba n) iš failo.

[n1] <& n2

Standarto įvesties kopija (arba n1) iš failo deskriptoriaus n2.

[n] <& -

Uždaryti standartinį įvestį (arba n).

[n1]> & n2

Standartinės išvesties kopija (arba n1) iš n2.

[n]> & -

Uždaryti standartinę išvestį (arba n).

[n] <> failas

Atidaryti failą skaityti ir rašyti į standartinį įvestį (arba n).

Šį peradresavimą dažnai vadina "čia dokumentas"

[n] << atskyriklis

čia-doc-text ...

atskyriklis

Visas tekstas iš eilės eilutėse iki skirtuko yra išsaugomas ir pateikiamas standartinės įvesties komandai arba failo deskriptorius n, jei jis yra nurodytas. Nurodomas skirtukas, nurodytas pradinėje eilutėje, čia teksto tekstas yra apdorojamas pažodžiui, priešingu atveju tekstas yra pakeičiamas parametru, komandų pakaitalu ir aritmetiniu išplėtimu (kaip aprašyta skyriuje "Išplėtimas"). 'Jei operatorius yra `` << -' ', o ne `` <<' ', tada pagrindiniai skirtukai čia-doc-text yra pašalinami.

Ieškoti ir vykdymas

Yra trijų tipų komandos: apvalkalo funkcijos, integruotos komandos ir įprastos programos - ir komanda ieškoma (pagal pavadinimą) toje pačioje eilėje. Kiekvienas iš jų yra įvykdytas kitaip.

Kai vykdoma apvalkalo funkcija, visi apvalkalo pozicijos parametrai (išskyrus $ 0, kurie lieka nepakitę) yra nustatomi kaip apvalkalo funkcijos argumentai. Kintamieji, kurie yra aiškiai dedami į komandų aplinką (priskiriant jiems priskyrimus prieš funkcijos pavadinimą), yra atliekami lokaliai ir yra nustatytos pagal pateiktas vertes. Tuomet vykdoma funkcija apibrėžta komanda. Kai komanda baigia, pozicijos parametrai atkuriami iki pradinių reikšmių. Visa tai vyksta per dabartinę korpusą.

"Shell" buteliukai yra atliekami viduje prie korpuso, nesukeliant naujo proceso.

Priešingu atveju, jei komandos pavadinimas neatitinka funkcijos ar integruotos, tai failų sistemoje ieškoma kaip įprasta programa (kaip aprašyta kitame skyriuje). Kai vykdoma normali programa, apvalkalas paleidžia programą, perduoda argumentus ir aplinką programai. Jei programa nėra įprasta vykdomoji failo (ty, jei ji neprasideda nuo "magiško numerio", kurio ASCII reprezentacija yra "#!", Taigi execve (2) grąžina Er ENOEXEC), lagras interpretuos programą subshell. Šiuo atveju vaikas iš naujo inicializuosis, taigi poveikis bus toks, lyg naujas operacinės sistemos apvalkalas būtų naudojamas ad hoc shell scenarijų tvarkymui, išskyrus tai, kad šalutinių komandų, esančių tėvų aplanke, vieta bus prisiminta vaikas

Atkreipkite dėmesį, kad ankstesnės šio dokumento ir paties šaltinio kodo klaidinančios ir atsitiktinai nuorodos į shell scenarijų be magiško numerio kaip "apvalkalo procedūrą".

Kelio paieška

Kai randate komandą, pirmiausia lukštais pamatysite, ar jis turi "shell" funkciją tokiu pavadinimu. Tada ji ieško įvesties komandos tokio vardo. Jei "builtin" komanda nerasta, įvyko vienas iš dviejų dalykų:

  1. Komandų pavadinimai, turintys brūkšnį, yra vykdomi be jokių paieškų.
  2. Korpusas kiekvieną įrašą PATH paeiliui ieško komandai. PATH kintamojo reikšmė turėtų būti įrašų serija, atskirta dviem kojelėmis. Kiekvieną įrašą sudaro katalogo pavadinimas. Dabartinis katalogas gali būti netiesiogiai nurodytas tuščiu katalogo pavadinimu arba aiškiai vienu laikotarpiu.

Komandos išvesties būsena

Kiekviena komanda turi išėjimo statusą, kuris gali įtakoti kitų apvalkalo komandų elgesį. Paradigma yra tokia, kad komanda išeina su nuline normaliam ar sėkmingam, o ne nuliui - dėl gedimo, klaidos ar klaidingos indikacijos. Kiekvienos komandos meniu puslapyje turi būti nurodyti įvairūs išeigos kodai ir tai, ką jie reiškia. Be to, integruotos komandos grąžina išėjimo kodus, kaip ir vykdomą apvalkalo funkciją.

Sudėtingos komandos

Kompleksinės komandos yra paprastų komandų kombinacijos su valdymo operatoriais arba rezervuoti žodžiai, kartu kuriant didesnę sudėtingą komandą. Apskritai, komanda yra viena iš šių:

  • paprasta komanda
  • dujotiekis
  • sąrašas arba jungtinis sąrašas
  • sudėtinė komanda
  • funkcijos apibrėžimas

Jei nenurodyta kitaip, komandos išėjimo būsena yra paskutinės paprastos komandos vykdoma komanda.

Vamzdynai

Vamzdynas - tai viena ar daugiau komandų, kurias atskiria valdymo operatorius, seka |. Visų, išskyrus paskutinę komandą, standartinė išvestis yra prijungta prie kitos komandinės standartinės įvesties. Standartinė paskutinės komandos išvestis yra paveldėta iš apvalkalo, kaip įprasta.

Dujotiekio formatas yra:

[!] command1 [| command2 ...]

Standartinė komandų 1 išvestis yra prijungta prie standartinės komandinės 2 įvesties. Standartinis įėjimas, standartinė išvestis arba abi komandos laikomos priskirtinomis vamzdyne prieš bet kokią peradresavimą, nurodytą peradresavimo operatorių, kurie yra komandos dalis.

Jei vamzdynas nėra fone (aptariamas vėliau), lukštas laukia visų komandų užbaigimo.

Jei rezervuotas žodis! nėra prieš vamzdyną, išvesties būsena yra paskutinės vamzdyne nurodytos komandos išvesties būsena. Priešingu atveju išėjimo būsena yra logiška NĖRA iš paskutinės komandos išėjimo būsenos. Tai reiškia, kad jei paskutinė komanda grąžina nulį, išėjimo statusas yra 1; jei paskutinė komanda grąžina daugiau nei nulį, išėjimo statusas yra lygus nuliui.

Kadangi dujotiekio priskyrimas standartiniam įėjimui arba standartiniam išėjimui arba abu vyksta prieš peradresavimą, jį galima pakeisti peradresavimu. Pavyzdžiui:

$ command1 2> & 1 | command2

siunčia standartinę išvestį ir standartinę command1 klaidą į standartinę komandinės 2 įvestį.

A; arba terminatorius sukelia ankstesnį AND-OR sąrašą (aprašytą toliau), kuris bus vykdomas nuosekliai; a ir sukelia asinchroninį ankstesnio AND-OR sąrašo vykdymą.

Atkreipkite dėmesį į tai, kad priešingai nei kai kurie kiti korpusai, kiekvienas procesas dujotiekyje yra vaiduoklis, kuris naudoja lange (išskyrus atvejus, kai jis yra apvalkalas, tokiu atveju jis vykdo dabartiniame lange - bet jo poveikis aplinkai yra išvalytas).

Fono komandos -

Jei komandą nutraukia valdymo operatorius ampersand (&), apvalkalas vykdo komandą asinchroniškai - tai yra, apvalkalas nelaukia, kol baigsis komanda, prieš vykdydami kitą komandą.

Komandos paleidimo fone formatas yra toks:

command1 ir [command2 ir ...]

Jei korpusas nėra interaktyvus, asinchroninės komandos standartinis įvestis nustatomas į / dev / null

Sąrašai - paprastai kalbama

Sąrašas yra nulis ar daugiau komandų seka, atskirta naujomis eilutėmis, kabliataškiais arba ampersandais ir pasirinktinai nutraukiama vienu iš šių trijų simbolių. Sąraše esančios komandos vykdomos tokia tvarka, kokia jos parašytos. Jei komandai seka ampersandas, apvalkalas paleidžia komandą ir tuoj pat pradeda veikti į kitą komandą; kitaip jis laukia komandos užbaigimo prieš pradėdamas dirbti kitoje.

Trumpųjų geležinkelių sąrašų operatoriai

`` && '' ir `` || '' yra AND-OR sąrašo operatoriai. `& & '' vykdo pirmąją komandą, o tada vykdo antrąją komandą iff, kai pirmosios komandos išėjimo būsena yra lygi nuliui. `` || '' yra panašus, bet vykdo antrąją komandą, jei pirmosios komandos išėjimo būsena yra nulinė. "` && "" ir "` || '' abu turi tą patį prioritetą.

Srauto valdymo konstravimas - jei, nors, tuo atveju

Jei komanda yra sintaksė

jei sąrašas
tada sąrašas
[elif sąrašas
tada sąrašas] ...
[kitas sąrašas]
fi

Laiko komandos sintaksė yra

nors sąrašas
daryti sąrašą
padaryta

Du sąrašai vykdomi pakartotinai, o pirmojo sąrašo išeities būsena yra lygi nuliui. Iki tol, kol komanda yra panaši, tačiau turi žodį, kol vietoj to, o tai sukelia tai pakartoti, kol pirmojo sąrašo išeities būsena bus lygi nuliui.

Komandos sintaksė yra

už kintamąjį žodyje ...
daryti sąrašą
padaryta

Žodžiai išplečiami, o tada sąrašas kartojamas, kiekvienam žodžiui nustatomas kintamasis. daryti ir padaryti gali būti pakeistas `` {'' ir ``} ''

Pertraukos sintaksė ir komanda "continue" yra

pertrauka [num]
tęsti [num]

Pertrauka išjungia garsiausią numerį kilpų metu. Tęskite tęsiamą kitą iteracinę vidinę kilpą. Tai yra įdiegtos kaip integruotos komandos.

Bylos komandos sintaksė yra

byla žodyje
modelis);
...
esac

Šis modelis iš tikrųjų gali būti vienas ar daugiau modelių (žr. Toliau aprašytus "Shell" modelius), atskirtus simboliais "` ''.

Komandų grupavimas kartu

Komandos gali būti grupuojamos raštu

(sąrašas)

arba

{list;

Pirmasis iš šių vykdo komandas į subshell. Builtin komandos, sugrupuotos į (sąrašą), neturės įtakos esamai apvalkalei. Antroji forma neleidžia kitai lukštai, todėl ji yra šiek tiek veiksmingesnė. Tokiu būdu grupuojant komandas galite peradresuoti savo produkciją taip, lyg ji būtų viena programa:

{printf hello; printf world \ n ";}> sveikinimas

Funkcijos

Funkcijos apibrėžimo sintaksė yra

vardas () komanda

Funkcijos apibrėžimas yra vykdomoji ataskaita; kai vykdomas, jis nustato funkciją pavadinimu pavadinimu ir grąžina išėjimo statusą nuliui. Paprastai komandą sudaro sąrašas tarp "` ('' ir ``) ''

Naudojant vietinę komandą kintamieji gali būti paskelbti vietiniais funkcijomis. Tai turėtų pasirodyti kaip pirmasis funkcijos aprašas, o sintazė yra

vietinis [kintamasis | -] ...

Vietinis vykdomas kaip "builtin" komanda.

Kai kintamasis yra vietinis, jis paveldi pradinę vertę ir eksportuoja ir skaito vien tik vėliavas iš kintamojo su tuo pačiu pavadinimu aplinkoje, jei jis yra. Priešingu atveju kintamasis iš pradžių nenustatytas. Korpusas naudoja dinaminį matavimą, taigi, jei sukuriamas kintamasis x vietinis, kad veiktų f, kuris tada vadina funkciją g, nuorodos į kintamąjį x, pagamintu viduje g, bus susiję su k nurodytu k rodikliu x, o ne su globaliniu kintamuoju x .

Vienintelis specialus parametras, negu galima padaryti vietiniu, yra `` - '' Making `- '' vietinis bet kokios apvalkalo parinktys, kurios pakeičiamos per nustatytą komandą funkcijos viduje, kuri turi būti atkurta iki pradinių reikšmių, kai funkcija grąžina.

Grąžinimo komandos sintaksė yra

grįžti [exitstatus

Tai nutraukia šiuo metu vykdomą funkciją. Grąžinimas vykdomas kaip builtin komanda.

Kintamieji ir parametrai

Korpusas palaiko parametrų rinkinį. Nurodytu parametru vadinamas kintamasis. Pradedant lakštas visus aplinkos kintamuosius pakeičia į apvalkalo kintamuosius. Naujus kintamuosius galima nustatyti naudojant formą

vardas = vert

Vartotojo nustatomi kintamieji turi turėti vardą, susidedantį tik iš abėcėlių, skaičių ir pabraukimų skaičių - pirmoji iš jų neturi būti skaitinė. Parametras taip pat gali būti žymimas skaičiumi arba specialiu simboliu, kaip paaiškinta toliau.

Padėties parametrai

Pozicijos parametras yra parametras, žymimas skaičiumi (n> 0). Korpusas iš pradžių nustato jų komandinės eilutės argumentus, kurie seka apvalkalo scenarijaus pavadinimu. Nustatytą (1) įmontuotą taip pat galima naudoti nustatant arba iš naujo nustatant.

Specialūs parametrai

Ypatingas parametras yra parametras, pažymėtas vienu iš šių specialių simbolių. Parametro vertė rodoma šalia jo simbolio.

*

Išplečiama pozicijos parametrai, pradedant nuo vieno. Kai plėtra įvyksta dviguboje citavimo eilutėje, ji išplečiama į vieną lauką su kiekvieno parametro reikšme, atskirtu nuo pirmojo IFS kintamojo simbolio, arba iš , jei IFS yra nenustatytas.

@

Išplečiama pozicijos parametrai, pradedant nuo vieno. Kai plėtra įvyksta per dvigubas kabutes, kiekvienas pozicijos parametras išplečiamas kaip atskiras argumentas. Jei nėra padėties parametrų, @ plėtra generuoja nulinius argumentus, net jei @ yra dvigubai cituojamas. Pavyzdžiui, tai, kas iš esmės reiškia, yra, ar $ 1 yra `` abc '', o $ 2 yra `` def ghi '', tada Qq $ @ plečiasi į du argumentus:

abc def ghi

#

Išplečiama padėties parametrų skaičius.

?

Išplečiama naujausio vamzdyno išvesties būsena.

- (pataisa).

Išplečiama esama parinkčių vėliava (vienos raidės pasirinkčių pavadinimai, sujungti į eilutę), kaip nurodyta paskyroje, nustatyta builtin komanda arba netiesiogiai apvalkalas.

$

Išplečia apjungto apvalkalo proceso ID. Subshell išsaugo tokią pačią vertę kaip jos tėvą.

!

Išplečiama naujausios fono komandos proceso ID, vykdomos iš dabartinio apvalkalo. Vamzdyno proceso ID yra tas, kuris yra paskutinėje vamzdyno komandoje.

0 (nulis.)

Išplečia apvalkalo arba apvalkalo scenarijaus pavadinimą.

Žodžio išplėtimas

Šiame straipsnyje aprašomos įvairios išraiškos, atliekamos žodžiais. Ne visi išplėtimai atliekami kiekviename žodyje, kaip paaiškinta toliau.

Tildės išplėtimas, parametrų išplėtimas, komandų pakeitimai, aritmetiniai išplėtimai ir citatų ištraukimai, kurie atsiranda per vieną žodį, išplečiami į vieną lauką. Tai tik lauko padalijimas arba "plėtinio" plėtra, kuri gali sudaryti kelis laukus iš vieno žodžio. Vienintelė šios taisyklės išimtis yra specialiojo parametro @ išplėtimas per dvigubas kabutes, kaip aprašyta aukščiau.

Žodžių išplėtimo tvarka:

  1. Tildės išplėtimas, parametrų išplėtimas, komandų pakaitalas, aritmetinis išplėtimas (visi jie įvyksta tuo pačiu metu).
  2. Padalijimas lauke atliekamas etapuose (1) sukurtuose laukuose, išskyrus atvejus, kai IFS kintamasis yra nulis.
  3. Pathname išplėtimas (nebent nustatytas - f yra efektyvus).
  4. Citata pašalinimas.

$ Simbolis naudojamas norint įvesti parametrų išplėtimą, komandų pakeitimą ar aritmetinį įvertinimą.

"Tilde" plėtra (pakeičiant vartotojo namų katalogą)

Žodis, prasidedantis neklotuotais tildės simboliu (~), yra tildės išsiplėtimas. Visi simboliai iki brūkšnelio brūkšniu (/) arba žodžio pabaiga laikomi vartotojo vardu ir pakeičiami vartotojo namų kataloge. Jei trūksta vartotojo vardo (kaip ~ / foobar), tildė yra pakeista HOME kintamojo (dabartinio vartotojo namų katalogo) verte.

Parametro išplėtimas

Formato parametrų išplėtimas yra toks:

kai išraiška susideda iš visų simbolių, kol atitikimas ``) '' Any ``) '' 'išsikraustys slanksteliu arba per cituota eilutę, o įterptųjų aritmetinių išplėtimų, komandų pakeitimų ir kintamųjų išplėtimų ženklai neišnagrinėjami nustatant atitikimas ``) '' '

Paprasčiausias parametrų išplėtimo formatas yra:

Pakeista reikšmė, jei yra, parametro.

Parametro pavadinimas arba simbolis gali būti pridedamas į petnešomis, kurios yra neprivalomos, išskyrus pozicijos parametrus, turinčius daugiau nei vieną skaitmenį, arba po to, kai po parametro seka simbolis, kuris gali būti aiškinamas kaip vardo dalis. Jei parametrų išplėtimas įvyksta dvigubo kabučių viduje:

  1. Pathname plėtra nėra atliekama dėl plėtros.
  2. Lauko padalijimas neatsidaro dėl išplėtimo rezultatų, išskyrus @.

Be to, parametrų išplėtimas gali būti pakeistas naudojant vieną iš šių formatų.

Naudokite numatytasis vertes. Jei parametras yra nenustatytas arba nulis, žodžio išplėtimas pakeičiamas; kitaip parametro vertė pakeičiama.

Priskirti numatytasis vertes. Jei parametras yra nenustatytas arba nulis, žodžio išplėtimas priskiriamas parametrui. Visais atvejais pakeičiama galutinė parametro vertė. Tokiu būdu gali būti priskirti tik kintamieji, ne pozicijos parametrai ar specialūs parametrai.

Nurodykite klaidą, jei nulinė arba išjungta. Jei parametras yra nenustatytas arba nulinis, žodžio išplėtimas (arba pranešimas, rodantis, kad jis nenustatytas, jei žodis yra praleistas), yra įrašomas į standartinę klaidą, o lukštas baigiamas nulinės išeigos būsena. Priešingu atveju parametro vertė pakeičiama. Interaktyviam lukštui nereikia išeiti.

Naudokite alternatyvią vertę. Jei parametras yra nenustatytas arba nulis, pakeičiamas nulis; kitaip, žodžio išplėtimas pakeičiamas.

Anksčiau parodytose parametrų išplėtimuose formos dvitaškis naudojamas parametro, kuris yra nenustatytas arba nulinis, bandymas; stuburo praleidimas lemia parametro, kuris yra tik nenustatytas, bandymas.

Styginių ilgis. Ilgis parametrų vertės simboliuose.

Toliau pateikiamos keturios parametrų išplėtimo variantai apima substringų apdorojimą. Kiekvienu atveju šablonų vertinimui naudojamas modelio atitikimo žymėjimas (žr. "Shell Patterns"), o ne reguliaraus išraiškos žymėjimas. Jei parametras yra * arba @, išplėtimo rezultatas yra nenustatytas. Dvigubo kabučių visiško parametrų išplėtimo eilutės įtraukimas nesukelia keturių keturių tipų simbolių, kurie turi būti cituojami, o simbolių citavimas į petnešose turi tokį efektą.

Pašalinti mažiausią sufikso struktūrą. Žodis yra išplečiamas, kad būtų sukurtas modelis. Parametro išplėtimas generuoja parametrą, su mažesne priesagos dalimi, suderinta su šablonu.

Pašalinti didžiausią sufikso struktūrą. Žodis yra išplečiamas, kad būtų sukurtas modelis. Parametro išplėtimas generuoja parametrą, o didžioji priesagos dalis, suderinta su šablonu, yra ištrinta.

Pašalinti mažiausio prefikso struktūrą. Žodis yra išplečiamas, kad būtų sukurtas modelis. Po parametro išplėtimas nustatomas parametras, kurio mažiausia prefikso dalis sutampa su išardomu modeliu.

Pašalinti didžiausią prefikso struktūrą. Žodis yra išplečiamas, kad būtų sukurtas modelis. Parametro išplėtimas generuoja parametrą, kurio didžiausia prefikso dalis sutampa su modeliu ištrinta.

Command Substitution

Komandos pakaitalas leidžia komandų išvestį pakeisti vietoje paties komandos pavadinimo. Komandos pakaitalas įvyksta, kai komanda pridedama taip:

$ (komanda)

arba Po `backcoted '' versija Pc:

"komanda"

Korpusas išplečia komandų keitimą vykdydamas komandą subhell aplinkoje ir pakeičia komandų pakeitimą standartine komandos išeiga, pašalindamas vienos ar daugiau s sekų pakeitimo pabaigoje. (Įterptosios s iki išvesties pabaigos nepašalinamos, tačiau lauko padalijimo metu jie gali būti išversti į s, priklausomai nuo IFS vertės ir galiojančios citatos .)

Aritmetinis išplėtimas

Aritmetinis išsiplėtimas suteikia mechanizmo, pagal kurį įvertinama aritmetinė išraiška ir pakeičiama jo reikšmė. Aritmetinio išplėtimo formatas yra toks:

$ ((išraiška))

Sąvoka traktuojama taip, lyg ji būtų dvigubos kabučių, išskyrus tai, kad dvigubo citato viduje raiška nėra specialiai apdorota. Korpusas išplečia visus žetonus parametro išplėtimo, komandų pakeitimo ir citavimo pašalinimo išraiška.

Be to, apvalkalas traktuoja tai kaip aritmetinę išraišką ir pakeičia išraiškos reikšmę.

Balta erdvės suskaidymas (lauko suskaidymas)

Po parametrų išplėtimo, komandų pakeitimo ir aritmetinio išplėtimo apvalkalas nuskaito išplėtimų ir pakeitimų rezultatus, kurie nebuvo atsitikti dvigubo kabučių laukų padalijimo metu ir gali sukelti keletą laukų.

Korpusas traktuoja kiekvieną IFS ženklą kaip skirtininką ir naudoja skirtininkus, kad padalintų parametrų išplėtimo ir komandų pakeitimo rezultatus į laukus.

Pathname išplėtimas (failo vardo generavimas)

Jei nenustatyta vėliavėlė - f , failo pavadinimo generavimas atliekamas baigus žodžių padalijimą. Kiekvienas žodis vertinamas kaip modelių serija, atskirta brūkšniais. Išplėtimo procesas pakeičia žodį su visų esamų failų pavadinimais, kurių pavadinimai gali būti formuojami pakeičiant kiekvieną modelį eilute, atitinkančia nurodytą modelį. Yra du apribojimai: pirma, modelis negali atitikti eilučių, turinčių brūkšnį, ir, antra, modelis negali atitikti eilutės, prasidedančios periodu, nebent pirmasis rašto simbolis yra laikotarpis. Kitame skyriuje aprašomi modeliai, naudojami tiek "Pathname Expansion", tiek "case" (1) komandai.

"Shell" modeliai

Pavyzdį sudaro įprasti simboliai, kurie atitinka save ir metaforus. Metaforumai yra ``! '' `` * '' ``? '' Ir `` ['' Šie simboliai praranda specialias reikšmes, jei jie yra cituojami. Kai atliekamas komandų ar kintamų pakeitimų atlikimas ir dolerio ženklas arba nugaros kableliai nėra dvigubai cituojami, komandos nario reikšmė arba išvestis yra nuskaitomi šiems simboliams ir jie yra pavertomi metaforais.

Žvaigždutė (`* * ') atitinka bet kurią simbolių eilutę. Klausimo ženklas atitinka bet kurį vieną simbolį. Kairysis kronšteinas (`` [''] įveda simbolių klasę. Charakterio klasės pabaigoje nurodoma (``] ''), jei nėra ``] '', tada `` ['' atitinka `` ['', o ne įvesti simbolių klasę. Charakteristikos klasė atitinka bet kurį iš laužtinių skliaustų simbolių. Žymių diapazonas gali būti nurodytas naudojant minuso ženklą. Charakterių klasė gali būti papildyta šauktuku pažymint pirmąjį simbolių klasės simbolį.

Norėdami įtraukti ``] '' į simbolių klasę, kad jis būtų pirmasis simbolis išvardytas (po ``! '' Jei toks yra). Norėdami įtraukti minuso ženklą, įtraukite jį į pirmąjį arba paskutinį ženklą

Builtins

Šiame skyriuje išvardytos įvesties komandos, kurios yra integruotos, nes joms reikia atlikti tam tikrą operaciją, kurios negalima atlikti atskirame procese. Be to, yra keletas kitų komandų, kurios gali būti veiksmingos (pvz., Echo 1).

:

Nulinė komanda, kuri grąžina 0 (tikrąją) išėjimo vertę.

. failas

Komanda nurodytame faile yra skaitoma ir užpildoma apvalkalu.

alias [ pavadinimas [ = eilutė ... ]]

Jei vardas = string yra nurodytas, apvalkalas apibrėžia slapyvardžio pavadinimą su reikšmės eilute. Jei tik vardas nurodytas, spausdinama pseudonimo pavadinimo vertė. Be jokių argumentų, slapyvardis " builtin" spausdina visų apibrėžtų slapyvardžių pavadinimus ir reikšmes (žr. Unalias)

bg [ darbas] ...

Tęskite nurodytus darbus (arba dabartinį darbą, jei nenurodyta jokių darbų) fone.

komanda komanda arg ...

Vykdykite nurodytą builtin komandą. (Tai naudinga, kai turite apvalkalo funkciją su tuo pačiu pavadinimu kaip ir builtin komanda.)

cd [ directory ]

Perjunkite į nurodytą katalogą (numatytasis $ HOME) Jei CD- įrašo komandų aplanke rodomas CDPATH įrašas arba yra įdėtas CDPATH aplankas , o katalogo pavadinimas neprasideda brūkšniu, tada bus ieškoma katalogų, išvardytų CDPATH. už nurodytą katalogą. CDPATH formatas yra toks pat, kaip ir PATH . Interaktyviame lange komandos cd atspausdina katalogą, kurį jis iš tikrųjų perjungė, jei jis skiriasi nuo vartotojo vardo. Tai gali būti skirtingi, nes buvo naudojamas CDPATH mechanizmas arba dėl to, kad buvo perkelta simbolinė nuoroda.

eval string ...

Suderinti visus argumentus su tarpeliais. Tada pakartotinai peržiūrėkite ir paleiskite komandą.

exec [ komanda arg ... ]

Jei komanda nėra praleista, apvalkalo procesas pakeičiamas nurodyta programa (kuri turi būti tikroji programa, o ne apvalkalo įvestis ar funkcija). Bet kokie redagavimas komandoje exec yra pažymėti kaip nuolatiniai, todėl jie nebus anuliuoti, kai exec komanda baigiasi.

išeiti [ exitstatus ]

Panaikinkite apvalkalo procesą. Jei pateikiamas exitstatus, jis naudojamas kaip apvalkalo išvesties būsena; priešingu atveju bus naudojama ankstesnės komandos išvesties būsena.

eksporto pavadinimas ...

eksportas -p

Nurodyti vardai eksportuojami taip, kad jie būtų rodomi vėlesnių komandų aplinkoje. Vienintelis būdas neeksportuoti kintamojo yra jį panaikinti. Korpusas leidžia nustatyti kintamojo vertę tuo pačiu metu, kai jis yra eksportuojamas raštu

eksporto pavadinimas = vertė

Be argumentų, eksportavimo komanda nurodo visų eksportuojamų kintamųjų pavadinimus. Nustačius " -p" parinktį, išvestis bus tinkamai suformatuojama neinteraktyviam naudojimui.

fc [- e redaktorius ] [ pirmas [ paskutinis ]]

fc -l [- nr ] [ pirmas [ paskutinis ]]

fc -s [ old = new ] [ first ]

Fc "builtin" sąrašai, redaguoja ir iš naujo vykdo komandas, anksčiau įvestas į interaktyvųjį apvalkalą.

-e redaktorius

Naudodami redaktorių, pavadintą redaktoriumi, redaguokite komandas. Redaktoriaus eilutė yra komandos pavadinimas, kurio paieška atliekama naudojant kintamąjį PATH . Kintamojo FCEDIT vertė naudojama kaip numatytoji reikšmė, kai - e nenurodyta. Jei FCEDIT yra nulis arba nenustatytas, naudojamas kintamojo EDITOR vertė. Jei EDITOR yra nulis arba nenustatytas, ed (1) naudojamas kaip redaktorius.

-l (ell)

Nurodykite komandas, o ne nuorodas į redaktorių. Komandos yra parašytos seka, nurodyta pirmojo ir paskutinio operandų, kaip veikia - r su kiekviena komanda, prieš kurią nurodomas komandos numeris.

-n

Suplanuokite komandų numerius sąraše su -l.

-r

Pakeiskite sąraše esančių komandų tvarką (su - l arba redaguojama (be - nei nori)

-s

Iš naujo paleiskite komandą nenaudodami redaktoriaus.

Pirmas

paskutinis

Pasirinkite norimas sąrašo ar redagavimo komandas. Ankstesnių komandų, prie kurių galima susipažinti, skaičius nustatomas pagal HISTSIZE kintamojo reikšmę . Pirma arba paskutinė vertė arba abi yra viena iš šių:

[+] numeris

Teigiamas skaičius, nurodantis komandos numerį; Komandų numeriai gali būti rodomi su parinktimi - l .

numeris

Neigiamas dešimtainis skaičius, reprezentuojantis komandą, kuri anksčiau atliko komandų skaičių. Pavyzdžiui, -1 yra tuoj pat ankstesnė komanda.

eilutė

Styga, nurodanti paskutinę įvestą komandą, prasidedančią šia eilute. Jei senasis = naujas operandas taip pat nenurodytas su - s , pirmojo operando eilutės forma negali turėti įterpto lygtinio ženklo.

Šie aplinkos kintamieji veikia fc vykdymą:

FCEDIT

Naudotinos redaktoriaus pavadinimas.

HISTSIZE

Ankstesnių prieinamų komandų skaičius.

fg [ darbas ]

Perkelkite nurodytą darbą arba dabartinį darbą į priekinį planą.

getopts optstring var

" POSIX getopts" komanda, kuri negali būti painiojama su " Bell Labs" naudojamu getopt (1).

Pirmasis argumentas turėtų būti raidžių serija, kiekviena iš kurių gali būti pasirinkta dvitaškis, kad būtų nurodyta, kad pasirinktis reikalauja argumento. Nurodytas kintamasis yra nustatytas kaip parsuojamas parinktis.

" Getopt" komanda anuliuoja senesnę " getopt" (1) priemonę, nes ji tvarko argumentus, kuriuose yra tarpinė juosta .

" Getopts" galima naudoti norint gauti parinktis ir jų argumentus iš parametrų sąrašo. Kai invokuojama , getopts nurodo kito pasirinkimo vertę iš varianto eilutės sąraše, esančioje var variklyje apibūdinto lakšto kintamojo ir jo indekso apvalkalo kintamojo OPTIND. Kai apvalkalas yra paskambintas , OPTIND yra inicijuota į 1. Kiekvienai parinkčiai, kuri reikalauja argumentas, getopts builtin įdės jį į koregavimo kintamąjį OPTARG. Jei optstring variante nėra leidžiama, OPTARG bus nenustatytas.

optstring yra pripažintų pasirinkimo raidžių eilutė. Jei po raidės eina dvitaškis, tikimasi, kad pasirinkimas bus argumentas, kuris gali būti arba negali būti atskirtas nuo jo balta erdve. Jei parinkčių simbolis nerandamas, kai tikimasi, getopts nustatys varą "`?? '', Getopts atmesis OPTARG ir parašys išvestį į standartinę klaidą. Nurodžius dvitaškį kaip pirmąjį optstring požymį, visos klaidos bus ignoruojamos.

Nulinė vertė grąžinama, kai pasiekiama paskutinė parinktis. Jei nėra jokių likusių argumentų, getopts nustatys var pagal specialią parinktį, `` - '', priešingu atveju jis nustatys var į ``? ''

Toliau pateiktas kodo fragmentas parodo, kaip galima apdoroti argumentus komandai, kuri gali pasinaudoti [a] ir [b] parinktimis bei parinktimi [c], kuriai reikalingas argumentas.

while getopts abc: f
daryk
atvejis $ f in
a | b) flag = $ f ;;
c) carg = $ OPTARG ;;
\?) echo $ USAGE; išeiti 1 ;;
esac
padaryta
keisti "expr $ OPTIND - 1"

Šis kodas taps lygiaverčiu:

cmd-acarg failo failas
cmd -a -c arg failo failas
cmd-carg-failo failas
cmd -a -carg - failo failas

hash -rv komanda ...

Korpusas palaiko maišos lentelę, kurioje primenama komandų vieta. Be jokių argumentų, hash komanda išrašo šios lentelės turinį. Įrašai, kurie nebuvo nagrinėjami nuo paskutinės cd komandos, pažymėti žvaigždute; šie įrašai gali būti netinkami.

Su argumentais komanda hash pašalina nurodytas komandas iš maišos lentelės (išskyrus atvejus, kai jos yra funkcijos) ir tada jas nustato. Naudodami -v parinktį, hash išspausdina komandų vietas, kai jas jas suranda. Parinktis - r sukelia hash komandą ištrinti visus įrašus maišos lentelėje, išskyrus funkcijas.

jobid [ darbas ]

Spausdinkite proceso ID proceso darbe. Jei darbo argumentas yra praleistas, naudojamas dabartinis darbas.

darbo vietos

Ši komanda išvardija visus foninius procesus, kurie yra dabartinio apvalkalo proceso vaikai.

pwd

Spausdinti dabartinį katalogą. Įvesties komanda gali skirtis nuo to paties pavadinimo programos, nes "builtin" komanda prisimena, kas yra dabartinis katalogas, o ne kiekvieną kartą. Tai daro ją greičiau. Tačiau, jei dabartinis katalogas yra pervadintas, "Pwd" pradinė versija ir toliau spausdins seną katalogo pavadinimą.

skaityti [- p greitai ] [- r ] kintamasis ...

Parametras yra atspausdintas, jei yra nurodyta parinktis - p ir standartinis įvestis yra terminalas. Tada eilutė skaitoma iš standartinės įvesties. Užpakalinė naujoji eilutė yra išbraukiama iš eilutės, o linija yra padalinta taip, kaip aprašyta skyriuje dėl žodžių padalijimo aukščiau, o vienetai yra priskiriami kintamiesiems tvarka. Turi būti nurodytas bent vienas kintamasis. Jei yra daugiau dalių nei kintamieji, likę vienetai (kartu su IFS simboliais, kurie juos išskyrė) priskiriami paskutiniam kintamajam. Jei yra daugiau kintamųjų nei vienetų, likusiems kintamiesiems priskiriama nulinė eilutė. Perskaitytas įvedimas parodys sėkmę, išskyrus atvejus, kai EOF susiduria su įvestimi, o tokiu atveju grąžinamas.

Pagal numatytuosius nustatymus, jei nenurodyta parinktis- r , backslash "` \ \ "veikia kaip pabėgimo simbolis, todėl šį simbolį reikia apdoroti pažodžiui. Jei už backslash įrašoma nauja eilutė, backslash ir nauja eilutė bus ištrinti.

vienintelis vardas ...

tik skaityti - p

Nurodytieji pavadinimai pažymėti kaip skaitomi tik todėl, kad vėliau jų negalima pakeisti arba panaikinti. Korpusas leidžia nustatyti kintamojo vertę tuo pačiu metu, kai jis pažymėtas tik skaitoma tik raštu

"readonly name" = vertė

Jei nėra argumentų, komanda, kuria skaitoma, nurodo visų kintamųjų, kurie yra tik skaitymo, pavadinimus. Nustačius " -p" parinktį, išvestis bus tinkamai suformatuojama neinteraktyviam naudojimui.

nustatyti [{- options | | + parinktys | - arg ... ]

Nustatyta komanda vykdo tris skirtingas funkcijas.

Nesant jokių argumentų, jis išvardija visų lukšto kintamųjų vertes.

Jei pateiktos parinktys, jis nustato pasirinktas parinktys arba jas išvalo, kaip aprašyta skyriuje, pavadintame "Sx argumentų sąrašo apdorojimas".

Trečiasis nustatytos komandos naudojimas yra nustatyti apvalkalo pozicijos parametrų reikšmes nurodytoms args. Norėdami pakeisti pozicijos parametrus nepakeičiant jokių parinkčių, kaip pirmąjį nustatytąjį argumentą naudokite `- - '. Jei nėra args, nustatyta komanda išvalys visus pozicijos parametrus (lygiaverčiai "` shift $ #. ''

kintama vertė

Priskiria reikšmę kintamam. (Apskritai geriau rašyti kintamąjį = vertę, o ne naudoti setvar setvarą, yra naudojamas funkcijose, kurioms priskiriamos reikšmės kintamiesiems, kurių pavadinimai yra perduoti kaip parametrai.)

poslinkis [ n ]

Nustatykite pozicijos parametrus n kartus. Perėjimas nustato 1 $ vertę į 2 $ reikšmę 2 $ vertę iki 3 $ vertės ir taip toliau, sumažinant $ # vertę į vieną. Jei n yra didesnis už pozicijos parametrų skaičių, pamaina išduoda klaidos pranešimą ir išeina su grąžinimo būsena 2.

laikai

Spausdinkite sukauptą naudotojo ir sistemos laikiną apvalkalo ir procesų, vykdomų iš apvalkalo. Grąžinimo būsena yra 0.

gaudyklės veiksmų signalas ...

Priežastis, kad korpusas būtų ištirtas ir įvykdytas veiksmas, kai gaunamas koks nors iš nurodytų signalų. Signalai yra nurodomi pagal signalo numerį. Jei signalas yra 0 , veiksmas vykdomas, kai lange pasibaigia. veiksmas gali būti nulis arba `` - '' pirmasis sukelia nurodyto signalo ignoravimą, o pastarasis sukelia numatytą veiksmą. Kai apvalkalas išskleidžia požeminį skydą , jis nustato įjungtą (bet ne ignoruojamą) signalą numatytam veiksmui. Gaudyklių komanda neturi įtakos signalams, kurie buvo ignoruojami prisijungiant prie korpuso.

įveskite [ pavadinimas ... ]

Interpretuokite kiekvieną vardą kaip komandą ir atspausdinkite komandų paieškos rezoliuciją. Galimos rezoliucijos yra: apvalkalo raktinis žodis, slapyvardis, apvalkalo builtinas , komanda, stebimi slapyvardžiai ir nerasta. Panašių pavadinimų atveju spausdinamas slapyvardžio išplėtimas; komandoms ir sektieji slapyvardžiai išspausdinamas visas komandų pavadinimai.

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

Paklauskite arba nustatykite sunkias ar minkštas procesų ribas arba nustatykite naujas ribas. Pasirinkimas tarp kieto ribojimo (kuris procesas negali būti pažeistas ir kuris negali būti pakeltas, kai jis yra nuleistas) ir minkšta riba (dėl kurios procesai yra signalizuojami, bet nebūtinai žudomi ir kurie gali būti keliami) yra pagaminti naudojant šios vėliavos:

-H

nustatyti ar paklausti apie sunkius apribojimus

-S

nustatykite arba paklauskite apie minkštas ribas. Jei nenurodytas nei " H", nei " S" , rodoma minkšta riba arba nustatomos abi ribos. Jei abi yra nurodytos, laimi paskutinis.

Tuomet tardoma ar nustatoma riba pasirenkama nurodant bet kurią iš šių vėliavų:

-a

parodyti visas dabartines ribas

-t

parodykite arba nustatykite CPU laiko apribojimą (sekundėmis)

-f

parodykite arba nustatykite didžiausią failą, kurį galima sukurti (512 baitų blokuose)

-d

parodykite arba nustatykite proceso duomenų segmento dydį (kilobaitais)

-s

parodykite arba nustatykite proceso krūvio dydį (kilobaitais)

-c

parodykite arba nustatykite didžiausią pagrindinio išleidimo dydį, kuris gali būti pagamintas (512 baitų blokuose)

-m

parodyti arba nustatyti visos fizinės atminties ribas, kurias procesas gali naudoti (kilobaitais)

-l

parodykite arba nustatykite, kiek atminties procesas gali užfiksuoti naudojant mlock (2) ( kilobaitais )

-p

parodykite arba nustatykite proceso, kurį šis vartotojas gali turėti vienu metu, skaičiaus ribą

-n

parodykite arba nustatykite skaičiaus failų limitą, kurį procesas gali būti atidarytas vienu metu

Jei nė viena iš jų nenurodyta, tai yra failo dydis, kuris rodomas arba nustatytas. Jei nurodyta vertė, riba nustatoma pagal tą numerį; kitaip rodoma dabartinė riba.

Savavališko proceso ribos gali būti rodomos arba nustatomos naudojant įrankį sysctl (8).

umask [ kaukė ]

Nustatykite umask (žr. Umask (2)) į nurodytą aštuoninę vertę. Jei argumentas yra praleistas, atspausdinamas umask reikšmė.

unalias [ -a ] [ vardas ]

Jei pavadinimas yra nurodytas, apvalkalas pašalina tą slapyvardį. Jei - a yra nurodytas, visi slapyvardžiai pašalinami.

nenustatytas vardas ...

Nurodyti kintamieji ir funkcijos yra nenustatyti ir neeksportuojami. Jei vardas atitinka tiek kintamąjį, tiek funkciją, tiek kintamasis, tiek funkcija yra nenustatyti.

laukti [ darbo ]

Palaukite, kol nurodytas darbas užpildys ir grąžins paskutinio darbo proceso pabaigos būseną. Jei argumentas yra praleistas, palaukite, kol baigsite visus darbus, o išėjimo statusas bus grąžintas nuliui.

Komandų eilutės redagavimas

Kai sh naudojamas interaktyviai iš terminalo, dabartinę komandą ir komandų istoriją (žr. Fc Sx Builtins) galima redaguoti naudodami vi-mode komandų eilutės redagavimą. Šiame režime naudojamos toliau aprašytos komandos, panašios į penkių puslapių apibūdinimą. Komandos "set" -o vi įgalina "vi-mode" redagavimą ir vieta sh į vi įterpimo režimą. Su "vi-mode" įjungta, sh galima perjungti tarp įterpimo režimo ir komandų režimo. Redaktorius čia nėra išsamiai aprašytas, bet bus vėliau dokumentas. Tai panaši į vi: įvedus Aq ESC, jūs įvedate komandą VI komandų režimu. Paspaudus Aq grįžimą komandinio režimo metu, linija pereis į korpusą.

Svarbu: naudokite komandą man ( % man ), kad pamatytumėte, kaip komanda naudojama jūsų konkrečiame kompiuteryje.