As - Linux Command - Unix Command

NAAM

sh - bevel tolk ( dop )

SINOPSIS

sh [- / + aCefnuvxIimqsVEbc ] [- o langnaam ] -woorde [ teiken ... ]

BESKRYWING

Sh is die standaard opdrag interpreter vir die stelsel. Die huidige weergawe van sh word tans verander om te voldoen aan die POSIX 1003.2 en 1003.2a spesifikasies vir die dop. Hierdie weergawe het baie eienskappe wat dit in sommige opsigte op die Korn-dop soortgelyk lyk, maar dit is nie 'n Korn-dop kloon nie (sien ksh (1)). Slegs kenmerke wat deur POSIX aangewys is, plus 'n paar Berkeley-uitbreidings, word in hierdie dop opgeneem. Ons verwag dat POSIX conformance teen die tyd 4.4 BSD vrygestel word. Hierdie manblad is nie bedoel om 'n tutoriaal of 'n volledige spesifikasie van die dop te wees nie.

oorsig

Die dop is 'n opdrag wat lyne van óf 'n lêer óf die terminaal lees, hulle interpreteer en voer gewoonlik ander opdragte uit. Dit is die program wat uitgevoer word wanneer 'n gebruiker by die stelsel aanmeld (alhoewel 'n gebruiker 'n ander dop kan kies met die chsh (1) opdrag). Die skulp implementeer 'n taal wat vloeibeheerkonstrukte bevat, 'n makro-fasiliteit wat 'n verskeidenheid funksies bied, benewens data-berging, tesame met ingeboude geskiedenis en lynredigering. Dit bevat baie funksies om interaktiewe gebruik te help en het die voordeel dat die interpretatiewe taal algemeen is vir beide interaktiewe en nie-interaktiewe gebruik (skulpskripte). Dit wil sê, opdragte kan direk na die lopende dop getik word of kan in 'n lêer geplaas word en die lêer kan direk deur die dop uitgevoer word.

aanroeping

As daar geen args teenwoordig is nie, en as die standaard inset van die dop aan 'n terminaal gekoppel is (of as die - I vlag ingestel is) en die - c opsie nie teenwoordig is nie, word die dop as 'n interaktiewe dop beskou . 'N Interaktiewe skulp vra gewoonlik vir elke opdrag en behandel programmering en opdragfoute anders (soos hieronder beskryf). Wanneer die eerste dop begin, inspekteer die dop argument 0, en as dit begin met 'n dash `- ', word die dop ook as 'n inskrywingsdop beskou. Dit word gewoonlik outomaties deur die stelsel gedoen wanneer die gebruiker eers log in. 'N Inskrywingsdop lees eers instruksies uit die lêers / etc / profiel en .profiel as dit bestaan. As die omgewing veranderlike ENV is ingestel op toetrede tot 'n dop, of is ingestel in die .profiel van 'n login shell, lees die dop volgende opdragte uit die lêer wat in ENV genoem word. Daarom moet 'n gebruiker opdragte plaas wat slegs uitgevoer moet word by aanmeldingstyd in die .profiel-lêer, en opdragte wat uitgevoer word vir elke dop in die ENV- lêer. Om die ENV- veranderlike in 'n lêer te stel, plaas die volgende reël in jou .profiel van jou tuisgids

ENV = $ HOME / .shinit; uitvoer ENV

vervanging van `` .shinit '' 'n lêernaam wat jy wil. Aangesien die ENV- lêer word gelees vir elke aanroep van die dop, insluitend dopskrifte en nie-interaktiewe skulpe, is die volgende paradigma nuttig om kommando's in die ENV- lêer te beperk tot interaktiewe invokasies. Plaas opdragte in die `` saak '' en `` esac '' hieronder (hierdie opdragte word later beskryf):

geval $ - in * i *)

# opdragte vir slegs interaktiewe gebruik

...

esac

As die opdraglyn argumente buiten die opsies gespesifiseer is, behandel die dop die eerste argument as die naam van 'n lêer waaruit kommando's gelees moet word ('n dopsoort) en die oorblywende argumente word gestel as die posisionele parameters van die dop ($ 1 , $ 2, ens.). Andersins, die dop lees bevele van sy standaard insette.

Argument Lysverwerking

Al die enkelletteropsies het 'n ooreenstemmende naam wat as 'n argument vir die - o opsie gebruik kan word. Die set - o naam word verskaf langs die enkelletter opsie in die beskrywing hieronder. As u 'n pluspunt `` + '' spesifiseer, word die opsie gedeaktiveer. Die volgende opsies kan gestel word vanaf die opdraglyn of met die stel (1) ingeboude (beskryf later).

-'n allexport

Voer alle veranderlikes uit wat toegewys is aan. (UNIMPLEMENTED for 4.4alpha)

-c

Lees opdragte van die opdrag lyn. Geen opdragte sal vanaf die standaardinvoer gelees word nie.

-C noclobber

Moenie bestaande lêers oorskryf met ``> '' (UNIMPLEMENTED for 4.4alpha)

-Een errexit

As dit nie interaktief is nie, gaan onmiddellik uit as 'n onbepaald bevel misluk. Die uitgangstatus van 'n opdrag word as eksplisiet getoets as die bevel gebruik word om 'n as elif te beheer terwyl of tot of as die opdrag die linkerhand van 'n `` && '' of `` | '' operateur is.

-af noglob

Deaktiveer padnaam uitbreiding.

-'n noexec

As dit nie interaktief is nie, lees die opdragte maar voer dit nie uit nie. Dit is nuttig om die sintaks van dopskrifte te kontroleer.

-u naamwoord

Skryf 'n boodskap aan die standaardfout wanneer u probeer om 'n veranderlike wat nie ingestel is, uit te brei nie, en as die dop nie interaktief is nie, sluit onmiddellik. (UNIMPLEMENTED for 4.4alpha)

-v verbose

Die dop skryf sy insette vir standaardfout soos dit lees. Nuttig vir ontfouting.

-x xtrace

Skryf elke opdrag na standaardfout (voorafgegaan deur 'n `+ 'voordat dit uitgevoer word. Nuttig vir ontfouting.

-q stilprofiel

As die - v of - x opsies gestel is, moenie dit toepas wanneer u initialisasie lêers lees nie, dit is / etc / profile .profile en die lêer wat deur die ENV omgewing veranderlike gespesifiseer is.

Ek ignoreer

Ignoreer EOF's van insette wanneer dit interaktief is.

-In interaktiewe

Dwing die dop om interaktief op te tree.

-m monitor

Skakel werkskontrole aan (stel outomaties in wanneer dit interaktief is).

-Stdin

Lees opdragte van standaard insette (stel outomaties in indien geen lêer argumente teenwoordig is nie). Hierdie opsie het geen effek wanneer dit ingestel word nadat die dop reeds begin het nie (dws met stel (1)).

-V vi

Aktiveer die ingeboude vi (1) command line editor (gedeaktiveer - E as dit ingestel is).

-E emacs

Aktiveer die ingeboude emacs (1) command line editor (gedeaktiveer - V as dit ingestel is).

-b in kennis stel

Aktiveer asynchrone kennisgewing van die voltooiing van die agtergrond. (UNIMPLEMENTED for 4.4alpha)

Lexiese struktuur

Die dop lees insette in terme van lyne van 'n lêer en breek dit in woorde op witruimte (spasies en tabbladen), en by sekere rye karakters wat spesiaal is vir die dop, wat 'operateurs' genoem word. Daar is twee soorte operateurs: beheer operateurs en redirection operators (hul betekenis word later bespreek). Hierna volg 'n lys van operateurs:

"Beheeroperateurs:"

& && (); ;; | ||

"Redirection operateur:"

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

vermelding

Quoting word gebruik om die spesiale betekenis van sekere karakters of woorde na die dop te verwyder, soos operateurs, witruimtes of sleutelwoorde. Daar is drie soorte aanhalingstekens: ooreenstemmende enkele aanhalings, dubbele aanhalings en terugslag.

agteroorskuinsstreep

'N terugslag behou die letterlike betekenis van die volgende karakter, met die uitsondering van Aq newline. 'N terugslag wat voorafgaan aan 'n Aq newline word behandel as 'n lyn voortsetting.

Enkele Kwotasies

Omskakeling karakters in enkele aanhalingstekens behou die letterlike betekenis van al die karakters (behalwe enkele aanhalings, wat dit onmoontlik maak om enkel-aanhalingstekens in 'n enkele aangehaalde string te plaas).

Dubbelkwotasies

Omskakeling karakters binne dubbele aanhalings behou die letterlike betekenis van alle karakters behalwe dollar-teken ($) backquote (`) en backslash (\) Die terugslag binne dubbele aanhalings is histories vreemd en dien slegs die volgende karakters aan.

$ `\

Anders bly dit letterlik.

Gereserveerde Woorde

Gereserveerde woorde is woorde wat spesiale betekenis het aan die dop en word erken aan die begin van 'n lyn en na 'n beheeroperateur. Die volgende is voorbeelde:

! Bring Taif Ta terwyl Ta geval

anders Ta vir Ta dan Ta {Ta}

Doen klaar Ta tot Ta as Ta esac

Hul betekenis word later bespreek.

aliasse

'N Alias ​​is 'n naam en ooreenstemmende waarde stel met die alias (1) ingeboude opdrag. Wanneer 'n gereserveerde woord mag voorkom (sien hierbo), en nadat u gereserveerde woorde nagegaan het, kontroleer die dop die woord om te sien of dit ooreenstem met 'n alias. As dit wel gebeur, vervang dit in die invoerstroom met die waarde daarvan. Byvoorbeeld, as daar 'n alias is, noem `` lf '' met die waarde `` ls -F '' dan die inset:

As foobar

sou word

ls -F foobar

Alias ​​bied 'n gerieflike manier vir naïef gebruikers om kortskrifte vir opdragte te skep sonder om te leer hoe om funksies met argumente te skep. Hulle kan ook gebruik word om leksikulose obskure kode te skep. Hierdie gebruik word ontmoedig.

opdragte

Die dop interpreteer die woorde wat dit lees volgens 'n taal waarvan die spesifikasie buite die omvang van hierdie manblad is (verwys na die BNF in die POSIX 1003.2-dokument). In wese word 'n lyn egter gelees en as die eerste woord van die lyn (of na 'n beheeroperateur) nie 'n gereserveerde woord is nie, het die dop 'n eenvoudige bevel herken. Andersins kan 'n komplekse bevel of 'n ander spesiale konstruksie erken word.

Eenvoudige opdragte

As 'n eenvoudige opdrag erken is, voer die dop die volgende aksies uit:

  1. Leidende woorde van die vorm `` naam = waarde '' word afgeskuif en aan die omgewing van die eenvoudige opdrag toegeken. Omskakeloperateurs en hul argumente (soos hieronder beskryf) word gestroop en gestoor vir verwerking.
  2. Die oorblywende woorde word uitgebrei soos beskryf in die afdeling genaamd `` Uitbreidings '' en die eerste oorblywende woord word beskou as die bevelnaam en die opdrag is geleë. Die oorblywende woorde word beskou as die argumente van die opdrag. As geen bevelnaam gevolg het nie, raak die `` naam = waarde''veranderlike opdragte wat in item 1 erken word, die huidige dop.
  3. Omleidings word uitgevoer soos beskryf in die volgende afdeling.

doorverwijzing

Aansture word gebruik om te verander waar 'n opdrag sy insette lees of die uitset stuur. Oor die algemeen word redirecties oopgemaak, sluit of dupliseer 'n bestaande verwysing na 'n lêer. Die algehele formaat wat vir herleiding gebruik word, is:

[n] redir-op lêer

waar redir-op is een van die redirection operateurs genoem voorheen. Hier volg 'n lys van die moontlike redirections. Die Bq n is 'n opsionele getal, soos in `3 '(nie` Bq 3' wat na 'n lêerbeskrywer verwys nie.

[n]> lêer

Herlei standaard uitvoer (of n) na lêer.

[n]> | lêer

Dieselfde, maar ignoreer die - C opsie.

[n] >> lêer

Voeg standaard uitvoer (of n) by lêer.

[n]

Herlei standaard insette (of n) van lêer.

[n1] <& n2

Dupliseer standaard invoer (of n1) van lêerbeskrywer n2.

[n] <& -

Maak standaardinvoer (of n).

[n1]> & n2

Dupliseer standaard uitset (of n1) vanaf n2.

[n]> en -

Sluit standaard uitvoer (of n).

[n] <> lêer

Maak lêer oop vir lees en skryf op standaard insette (of n).

Die volgende herleiding word dikwels 'n `` hier-dokument '' genoem

[n] << delimiter

hier-doc-teks ...

delimiter

Al die teks op opeenvolgende lyne tot by die delimiter word weggeberg en beskikbaar gestel aan die opdrag op standaard insette, of lêerbeskrywer n indien dit gespesifiseer word. As die afbakening soos gespesifiseer op die aanvanklike lyn aangehaal word, word die hier-doc-teks letterlik behandel, anders word die teks onderworpe aan parameteruitbreiding, bevelvervanging en rekenkundige uitbreiding (soos beskryf in die afdeling oor `` Uitbreidings ''). 'As die operateur `` << -' 'in plaas van `` <<' 'is, word die leidende oortjies in die hier-doc-teks gestroop.

Soek en Uitvoer

Daar is drie tipes opdragte: skulpfunksies, ingeboude opdragte en normale programme - en die opdrag word gesoek (op naam) in daardie volgorde. Hulle word elk op 'n ander manier uitgevoer.

Wanneer 'n dop funksie uitgevoer word, word al die dop posisionele parameters (behalwe $ 0, wat onveranderd bly) ingestel op die argumente van die dopfunksie. Die veranderlikes wat eksplisiet in die omgewing van die opdrag geplaas word (deur opdragte aan hulle voor die funksie naam te plaas) word lokaal vir die funksie en word op die gegewe waardes gestel. Dan word die bevel gegee in die funksie definisie uitgevoer. Die posisionele parameters word herstel na hul oorspronklike waardes wanneer die opdrag voltooi word. Dit alles gebeur binne die huidige dop.

Shell builtins word intern uitgevoer na die dop, sonder om 'n nuwe proses te bespuit.

Anders, as die bevelnaam nie ooreenstem met 'n funksie of ingebou is nie, word die opdrag as 'n normale program in die lêerstelsel gesoek (soos beskryf in die volgende afdeling). Wanneer 'n normale program uitgevoer word, voer die dop die program uit, verby die argumente en die omgewing na die program. As die program nie 'n normale uitvoerbare lêer is nie (dit wil sê, as dit nie begin met die "magiese nommer" waarvan die ASCII- voorstelling "#!" Is nie, subskil. Die kinderdop sal homself hertitialiseer sodat die effek sal wees asof 'n nuwe dop aangewend is om die ad hoc-skripsoort te hanteer, behalwe dat die ligging van hashed-opdragte in die ouerskil onthou sal word deur die kind.

Let daarop dat vorige weergawes van hierdie dokument en die bronkode self misleidend en sporadies verwys na 'n skildkop sonder 'n magiese nommer as 'n "skedeprosedure".

Pad Soek

Wanneer 'n opdrag geplaas word, kyk die dop eers na of dit 'n dopfunksie deur daardie naam het. Dan soek dit 'n ingeboude opdrag met die naam. As 'n ingeboude opdrag nie gevind word nie, gebeur een van twee dinge:

  1. Command name met 'n slash word eenvoudig uitgevoer sonder om enige soektogte uit te voer.
  2. Die dop soek elke inskrywing in PATH op sy beurt vir die opdrag. Die waarde van die PATH- veranderlike moet 'n reeks inskrywings wees wat deur kolonies geskei word. Elke inskrywing bestaan ​​uit 'n gidsnaam. Die huidige gids kan implisiet aangedui word deur 'n leë gidsnaam, of uitdruklik per enkele periode.

Command Exit Status

Elke opdrag het 'n uitgangstatus wat die gedrag van ander dopopdragte kan beïnvloed. Die paradigma is dat 'n bevel uitgaan met nul vir normale of sukses, en nie-nul vir mislukking, fout of 'n valse aanduiding. Die manblad vir elke opdrag moet die verskillende uitgangskodes aandui en wat dit beteken. Daarbenewens gee die ingeboude opdragte terugkodes terug, net soos 'n uitgevoerde dopfunksie.

Komplekse Opdragte

Komplekse opdragte is kombinasies van eenvoudige opdragte met beheeroperateurs of gereserveerde woorde, tesame met die skep van 'n groter komplekse opdrag. Meer algemeen is 'n opdrag een van die volgende:

  • eenvoudige opdrag
  • pyplyn
  • lys of saamgestelde lys
  • saamgestelde opdrag
  • funksie definisie

Tensy anders vermeld, is die uitgangstatus van 'n opdrag die van die laaste eenvoudige bevel wat deur die bevel uitgevoer word.

pyplyne

'N Pyplyn is 'n volgorde van een of meer opdragte geskei deur die beheeroperateur |. Die standaard uitvoer van alles behalwe die laaste opdrag is gekoppel aan die standaard invoer van die volgende opdrag. Die standaard uitset van die laaste opdrag word soos gewoonlik van die dop geërf.

Die formaat vir 'n pyplyn is:

[!] command1 [| command2 ...]

Die standaard uitvoer van command1 is gekoppel aan die standaard invoer van command2. Die standaard insette, standaard uitset of albei van 'n opdrag word beskou as deur die pyplyn toegewys voor enige herleiding wat deur herbewerkingsoperateurs wat deel van die opdrag is, gespesifiseer word.

As die pyplyn nie op die agtergrond is nie (later bespreek), wag die dop vir alle opdragte om te voltooi.

As die gereserveerde woord! gaan nie voor die pyplyn nie, die uitgangstatus is die uitgangstatus van die laaste opdrag wat in die pyplyn gespesifiseer is. Anders is die uitgangstatus die logiese NOT van die uitgangstatus van die laaste opdrag. Dit is, as die laaste opdrag nul gee, is die uitgangstatus 1; as die laaste opdrag groter as nul is, is die uitgangstatus nul.

Aangesien pyplynopdragte van standaardinvoer of standaarduitvoer of albei plaasvind voor herleiding, kan dit verander word deur herleiding. Byvoorbeeld:

$ command1 2> & 1 | command2

stuur beide die standaard uitvoer en standaard fout van command1 na die standaard invoer van command2.

A; of terminator veroorsaak dat die voorafgaande AND-OR-lys (hierna beskryf) uitgevoer word opeenvolgend; a & veroorsaak asynchrone uitvoering van die voorafgaande AND-OF-lys.

Let daarop dat, in teenstelling met sommige ander skulpe, elke proses in die pyplyn 'n kind is van die aanloklike dop (tensy dit 'n dop is wat ingebou is, in welke geval dit in die huidige dop uitgevoer word - maar enige effek wat dit op die omgewing het, word uitgewis).

Agtergrond Kommando's -

As 'n opdrag beëindig word deur die beheeroperateur ampersand (&), voer die dop die bevel asynchroon uit - dit wil sê, die dop wag nie vir die opdrag om te voltooi voordat die volgende bevel uitgevoer word nie.

Die formaat vir die uitvoer van 'n opdrag in die agtergrond is:

command1 & [command2 & ...]

As die dop nie interaktief is nie, word die standaardinvoer van 'n asynchrone opdrag ingestel op / dev / null

Lyste - Oor die algemeen praat

'N Lys is 'n volgorde van nul of meer opdragte geskei deur nuwe lyne, semikolons of ampersands, en opsioneel beëindig deur een van hierdie drie karakters. Die opdragte in 'n lys word uitgevoer in die volgorde wat hulle geskryf is. As opdrag gevolg word deur 'n ampersand, begin die dop die opdrag en gaan onmiddellik na die volgende opdrag. anders wag dit vir die opdrag om te beëindig voordat u na die volgende een gaan.

Kortsluitlysoperateurs

`` && '' en `` || '' is AND-OR-lysoperateurs. `` && '' voer die eerste opdrag uit, en voer dan die tweede opdrag iff uit, en die uitgangstatus van die eerste opdrag is nul. `` || '' is soortgelyk, maar voer die tweede opdrag iff uit. Die uitgangstatus van die eerste opdrag is nie-nul. `` && '' en `` || '' het albei dieselfde prioriteit.

Flow-Control Constructs - as, terwyl, vir, geval

Die sintaksis van die if-opdrag is

as lys
dan lys
[elif list
dan lys] ...
[anders lys]
fi

Die sintaksis van die tussentydse opdrag is

terwyl lys
doen lys
gedaan

Die twee lyste word herhaaldelik uitgevoer terwyl die uitgangstatus van die eerste lys nul is. Die tot opdrag is soortgelyk, maar het die woord tot in die plek van die tyd wat dit laat herhaal totdat die uitgangstatus van die eerste lys nul is.

Die sintaksis van die vir opdrag is

vir veranderlike in woord ...
doen lys
gedaan

Die woorde word uitgebrei, en dan word die lys herhaaldelik uitgevoer met die veranderlike wat op elke woord aan elke woord gestel word. doen en gedoen kan vervang word met `` {'' en ``} ''

Die sintaksis van die breek en voortgaan opdrag is

breek [num]
gaan voort [num]

Breek eindig die nommer innerste vir of terwyl loops. Gaan voort met die volgende herhaling van die binneste lus. Hierdie word geïmplementeer as ingeboude opdragte.

Die sintaksis van die saak bevel is

gevalwoord in
patroon) lys ;;
...
esac

Die patroon kan eintlik een of meer patrone wees (sien Shellpatrone wat later beskryf word), geskei deur `` '' karakters.

Groepeer opdragte saam

Opdragte kan gegroepeer word deur óf óf te skryf

(Lys)

of

{list;

Die eerste hiervan voer die opdragte in 'n subskerm uit. Ingeboude opdragte wat in 'n (lys) gegroepeer is, sal nie die huidige dop beïnvloed nie. Die tweede vorm vurk nie 'n ander dop nie, so is effens meer doeltreffend. As u opdragte op dieselfde manier groepeer, kan u die uitset daarvan herlei asof hulle een program was:

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

funksies

Die sintaksis van 'n funksie definisie is

naam () opdrag

'N Funksie definisie is 'n uitvoerbare stelling; Wanneer dit uitgevoer word, installeer dit 'n funksie met die naam en gee 'n uitgangstatus van nul. Die opdrag is gewoonlik 'n lys tussen `` {'' en ``} ''

Veranderlikes kan as 'n plaaslike funksie verklaar word deur 'n plaaslike opdrag te gebruik. Dit moet as die eerste verklaring van 'n funksie verskyn, en die sintaksis is

plaaslike [veranderlike | -] ...

Plaaslik word geïmplementeer as 'n ingeboude opdrag.

Wanneer 'n veranderlike plaaslik gemaak word, erf dit die aanvanklike waarde en word dit uitgevoer en leesbaar van die veranderlike met dieselfde naam in die omliggende omvang, indien daar een is. Andersins word die veranderlike aanvanklik afgeskakel. Die skulp maak gebruik van dinamiese omvangsbepaling, sodat as u die veranderlike x lokaal f laat funksioneer, wat dan funksie g noem, verwys verwysings na die veranderlike x wat in g gemaak is, na die veranderlike x binne f, nie na die globale veranderlike genaamd x .

Die enigste spesiale parameter as wat plaaslik gemaak kan word, is `` - '' Plaaslike skulpopsies wat verander word via die ingestelde opdrag binne die funksie wat herstel word na hul oorspronklike waardes wanneer die funksie terugkeer.

Die sintaksis van die opdrag opdrag is

terugkeer [uitgangstatus

Dit beëindig die huidige uitvoerende funksie. Terugkeer word geïmplementeer as 'n ingeboude opdrag.

Veranderlikes en Parameters

Die dop hou 'n stel parameters. 'N Parameter wat deur 'n naam aangedui word, word 'n veranderlike genoem. By die opstarten verander die dop al die omgewing veranderlikes in dop veranderlikes. Nuwe veranderlikes kan met behulp van die vorm ingestel word

name = waarde

Veranderlikes wat deur die gebruiker gestel word, moet 'n naam hê wat uitsluitlik bestaan ​​uit alfabetiese, numeriese en onderstrepingstekens - waarvan die eerste nie numeriese moet wees nie. 'N Parameter kan ook aangedui word deur 'n nommer of 'n spesiale karakter soos hieronder uiteengesit.

Posisionele Parameters

'N Posisionele parameter is 'n parameter aangedui met 'n getal (n> 0). Die dop stel hierdie aanvanklik aan die waardes van die argumente van die command line wat die naam van die dopsoort volg. Die stel (1) ingeboude kan ook gebruik word om hulle te stel of te herstel.

Spesiale Parameters

'N Spesiale parameter is 'n parameter aangedui met een van die volgende spesiale karakters. Die waarde van die parameter word langs sy karakter gelys.

*

Brei na die posisionele parameters uit vanaf een. Wanneer die uitbreiding plaasvind binne 'n dubbele gekwoteerde string, word dit uitgebrei na 'n enkele veld met die waarde van elke parameter geskei deur die eerste karakter van die IFS- veranderlike, of deur 'n as IFS ontbreek.

@

Brei na die posisionele parameters uit vanaf een. Wanneer die uitbreiding binne dubbele aanhalings plaasvind, brei elke posisionele parameter as 'n aparte argument uit. As daar geen posisionele parameters is nie, kan die uitbreiding van @ genereer nul argumente, selfs as @ dubbel gekwoteer is. Wat dit basies beteken, is byvoorbeeld dat $ 1 `` abc '' 'is en $ 2 is `` def ghi' ', en Qq $ @ brei dan uit na die twee argumente:

abc def ghi

#

Brei uit na die aantal posisionele parameters.

?

Vergroot na die uitgangstatus van die mees onlangse pyplyn.

- (Koppelteken.)

Vergroot na die huidige opsie vlae (die enkelletter opsie name wat in 'n string verbind is) soos aangedui op aanroeping, deur die ingestelde ingeboude opdrag, of implisiet deur die dop.

$

Uitbrei na die proses ID van die aangeskrewe dop. 'N Subshell behou dieselfde waarde van $ as sy ouer.

!

Uitbrei na die proses ID van die mees onlangse agtergrondopdrag uitgevoer uit die huidige dop. Vir 'n pyplyn is die proses-ID die van die laaste opdrag in die pyplyn.

0 (Zero.)

Uitbrei na die naam van die dop of dopsoort.

Woord Uitbreidings

Hierdie klousule beskryf die verskillende uitbreidings wat op woorde uitgevoer word. Nie alle uitbreidings word op elke woord uitgevoer nie, soos later verduidelik.

Tilde uitbreidings, parameter uitbreidings, bevel substitusies, rekenkundige uitbreidings, en kwotasie verwyderings wat voorkom binne 'n enkele woord uitbrei na 'n enkele veld. Dit is net veldverdeling of padnaam uitbreiding wat verskeie velde uit 'n enkele woord kan skep. Die enkele uitsondering op hierdie reël is die uitbreiding van die spesiale parameter @ binne dubbele aanhalings, soos hierbo beskryf.

Die volgorde van woorduitbreiding is:

  1. Tilde Uitbreiding, Parameter Uitbreiding, Command Substitution, Arithmetic Expansion (dit alles gebeur op dieselfde tyd).
  2. Veldverdeling word uitgevoer op velde wat deur stap (1) gegenereer word, tensy die IFS- veranderlike nul is.
  3. Padnaam Uitbreiding (tensy set- f in werking is).
  4. Aanhaling van kwotasies.

Die $ karakter word gebruik om parameteruitbreiding, opdragsvervanging of rekenkundige evaluering in te voer.

Tilde Uitbreiding (vervanging van 'n gebruiker se tuisgids)

'N Woord wat begin met 'n ongekende tegelkarakter (~) word onderhewig aan uitbreiding. Al die karakters tot 'n streep (/) of die einde van die woord word as 'n gebruikersnaam behandel en word vervang met die gebruiker se tuisgids. As die gebruikersnaam ontbreek (soos in ~ / foobar) word die tilde vervang met die waarde van die HOME- veranderlike (die huidige gebruiker se tuisgids).

Parameter Uitbreiding

Die formaat vir parameteruitbreiding is soos volg:

waar uitdrukking uit alle karakters bestaan ​​tot die ooreenstemmende ``} '' Enige ``} '' ontsnap deur 'n terugslag of binne 'n gekwoteerde string, en karakters in ingeboude rekenkundige uitbreidings, bevelvervangings en veranderlike uitbreidings, word nie ondersoek in die bepaling van die ooreenstem met ``} ''

Die eenvoudigste vorm vir parameteruitbreiding is:

Die waarde, indien enige, van die parameter is vervang.

Die parameternaam of simbool kan in braces ingesluit word, wat opsioneel is behalwe posisionele parameters met meer as een syfer of wanneer die parameter gevolg word deur 'n karakter wat as deel van die naam geïnterpreteer kan word. As 'n parameteruitbreiding in dubbele aanhalings voorkom:

  1. Padnaam uitbreiding word nie uitgevoer op die resultate van die uitbreiding nie.
  2. Veldverdeling word nie uitgevoer op die resultate van die uitbreiding nie, met die uitsondering van @.

Daarbenewens kan 'n parameter uitbreiding verander word deur een van die volgende formate te gebruik.

Gebruik verstekwaardes. As parameter ongeskakel of nul is, word die uitbreiding van die woord vervang; Andersins word die waarde van die parameter vervang.

Toewys standaardwaardes. As die parameter ongeskakel of nul is, word die uitbreiding van die woord toegeken aan die parameter. In alle gevalle word die finale waarde van die parameter vervang. Slegs veranderlikes, nie posisionele parameters of spesiale parameters, kan op hierdie manier toegeken word nie.

Dui fout as Nul of Ontset aan. As die parameter ongeskakel of nul is, word die uitbreiding van die woord (of 'n boodskap wat aandui dat dit ontbreek as die woord weggelaat is) na standaardfout geskryf en die skulp verlaat met 'n nie-nuluitgangstatus. Andersins word die waarde van die parameter vervang. 'N Interaktiewe dop hoef nie uit te gaan nie.

Gebruik alternatiewe waarde. As parameter ongeskakel of nul is, word nul vervang; Andersins word die uitbreiding van woord vervang.

In die parameter uitbreidings wat voorheen getoon word, lei die gebruik van die kolon in die formaat na 'n toets vir 'n parameter wat ongeskakel of nul is; nalatigheid van die kolon lei tot 'n toets vir 'n parameter wat slegs ontbind word.

String Lengte. Die lengte in karakters met die waarde van die parameter.

Die volgende vier variëteite van parameteruitbreiding maak voorsiening vir substringverwerking. In elke geval word patroonpatroonnotasie (sien Shellpatrone), eerder as gewone uitdrukkingsnotasie, gebruik om die patrone te evalueer. As parameter * of @ is, is die uitslag van die uitbreiding ongespesifiseerde. Deur die volledige parameter uitbreiding string in dubbele aanhalingstekens in te sluit, veroorsaak nie dat die volgende vier spesies patroonkarakters aangehaal word nie, terwyl die aanhaling van karakters binne die hakies die effek het.

Verwyder kleinste Suffix Patroon. Die woord word uitgebrei om 'n patroon te produseer. Die parameteruitbreiding gee dan 'n parameter, met die kleinste gedeelte van die agtervoegsel wat ooreenstem met die patroon wat uitgevee is.

Verwyder grootste patroon. Die woord word uitgebrei om 'n patroon te produseer. Die parameteruitbreiding lei dan tot parameter, met die grootste gedeelte van die agtervoegsel wat ooreenstem met die patroon wat uitgevee is.

Verwyder kleinste voorvoegpatroon. Die woord word uitgebrei om 'n patroon te produseer. Die parameteruitbreiding lei dan tot parameter, met die kleinste gedeelte van die voorvoegsel wat ooreenstem met die patroon wat uitgevee is.

Verwyder grootste voorvoegpatroon. Die woord word uitgebrei om 'n patroon te produseer. Die parameteruitbreiding gee dan die parameter in, met die grootste gedeelte van die voorvoegsel wat ooreenstem met die patroon wat uitgevee is.

Command Substitution

Kommandosubstitusie laat die uitset van 'n opdrag vervang word in plaas van die bevelnaam self. Opdrag vervanging vind plaas wanneer die opdrag soos volg ingevul word:

$ (Opdrag)

of Po `` backquoted '' weergawe Pc:

`command`

Die dop brei die bevel substitusie uit deur bevel in 'n subskerm omgewing uit te voer en vervang die opdrag substitusie met die standaard uitvoer van die opdrag, en verwyder sekwense van een of meer s aan die einde van die vervanging. (Embedded s voor die einde van die uitset word nie verwyder nie, maar tydens veldverdeling kan hulle vertaal word na s, afhangende van die waarde van IFS en die aanhaling daarvan.)

Rekenkundige uitbreiding

Rekenkundige uitbreiding bied 'n meganisme vir die evaluering van 'n rekenkundige uitdrukking en die vervanging daarvan. Die formaat vir rekenkundige uitbreiding is soos volg:

$ ((Uitdrukking))

Die uitdrukking word behandel asof dit in dubbele aanhalingstekens was, behalwe dat 'n dubbelkwotasie in die uitdrukking nie spesiaal behandel word nie. Die dop brei alle tekens uit in die uitdrukking vir parameteruitbreiding, opdrag vervanging en kwotasie verwydering.

Vervolgens behandel die dop dit as 'n rekenkundige uitdrukking en vervang die waarde van die uitdrukking.

Witruimtesplitsing (Veldverdeling)

Na parameteruitbreiding, kommandosubstitusie en rekenkundige uitbreiding, skandeer die dop die resultate van uitbreidings en substitusies wat nie in dubbele aanhalings vir veldverdeling plaasgevind het nie en verskeie velde kan tot gevolg hê.

Die dop behandel elke karakter van die IFS as 'n delimiter en gebruik die delimiters om die resultate van parameteruitbreiding en opdragsvervanging in velde te verdeel.

Padnaam uitbreiding (lêernaam generasie)

Tensy die - f vlag ingestel word, word die lêernaam generasie uitgevoer nadat die woord splitsing voltooi is. Elke woord word beskou as 'n reeks patrone, geskei deur strepies. Die uitbreidingsproses vervang die woord met die name van alle bestaande lêers wie se name gevorm kan word deur elke patroon te vervang met 'n tou wat ooreenstem met die gespesifiseerde patroon. Daar is twee beperkinge hieroor: eerstens kan 'n patroon nie ooreenstem met 'n snaar wat 'n sny bevat nie. Tweedens kan 'n patroon nie ooreenstem met 'n tou wat begin met 'n tydperk nie, tensy die eerste karakter van die patroon 'n tydperk is. Die volgende afdeling beskryf die patrone wat gebruik word vir beide Padnaam uitbreiding en die geval (1) opdrag.

Skulppatrone

'N Patroon bestaan ​​uit normale karakters, wat hulself en meta-karakters pas. Die meta-karakters is `` '' '``?' 'En `` [' 'Hierdie karakters verloor hul spesiale betekenis as hulle aangehaal word. Wanneer opdrag of veranderlike substitusie uitgevoer word en die dollar se aantekeninge of terugkwotasies nie dubbel gekwoteer word nie, word die waarde van die veranderlike of die uitvoer van die opdrag geskandeer vir hierdie karakters en word dit verander in meta-karakters.

'N Sterretjie (`` *' ') pas by enige tekenstreep. 'N Vraesteljie pas by enige enkele karakter. 'N Linkerhakie (`` [' ') stel 'n karakterklas voor. Die einde van die karakterklas word aangedui met 'n (``] '') as die ``] 'ontbreek, pas die `` [' 'by 'n `` [' 'eerder as om 'n karakterklas in te voer. 'N Karakterklas pas by enige van die karakters tussen die vierkantige hakies. 'N Reeks karakters kan met 'n minusteken gespesifiseer word. Die karakterklas kan aangevul word deur 'n uitroepteken die eerste karakter van die karakterklas te maak.

Om 'n ``] 'in 'n karakterklas in te sluit, maak dit die eerste karakter wat gelys word (na die ``!' 'Indien enige). Om 'n minusteken in te sluit, maak dit die eerste of laaste karakter wat gelys is

Builtins

Hierdie afdeling bevat die ingeboude opdragte wat ingebou is omdat hulle 'n operasie moet uitvoer wat nie deur 'n aparte proses uitgevoer kan word nie. Daarbenewens is daar verskeie ander opdragte wat vir doeltreffendheid ingebou kan word (bv. Echo 1).

:

'N Nul-opdrag wat 'n 0 (ware) uitgangswaarde gee.

. lêer

Die opdragte in die gespesifiseerde lêer word deur die dop gelees en uitgevoer.

alias [ naam [ = string ... ]]

As naam = string gespesifiseer word, definieer die dop die alias naam met waarde string As net naam gespesifiseer word, word die waarde van die alias naam gedruk. Met geen argumente, die alias ingeboude druk die name en waardes van al die gedefinieerde aliassen af ​​(sien unalias)

bg [ werk] ...

Gaan voort met die gespesifiseerde werk (of die huidige werk indien geen werkgeleenthede gegee word) in die agtergrond.

bevel bevel arg ...

Voer die gespesifiseerde ingeboude opdrag uit. (Dit is handig as jy 'n dopfunksie het met dieselfde naam as 'n ingeboude opdrag.)

CD [ gids ]

Skakel oor na die gespesifiseerde gids (standaard $ HOME) As 'n inskrywing vir CDPATH verskyn in die omgewing van die cd- opdrag of die skulpveranderlike CDPATH is ingestel en die naam van die gids nie met 'n sny begin nie, sal die dopgehou wat in CDPATH gelys word, gesoek word. vir die gespesifiseerde gids. Die formaat van CDPATH is dieselfde as die van PATH. In 'n interaktiewe dop sal die CD- opdrag die naam van die gids wat dit eintlik aangeskakel het, druk as dit verskil van die naam wat die gebruiker gegee het. Dit kan ook anders wees omdat die CDPATH meganisme gebruik is of omdat 'n simboliese skakel gekruis is.

eval string ...

Smee al die argumente met spasies saam. Herprobeer en voer dan die bevel uit.

exec [ bevel arg ... ]

Tensy bevel nie weggelaat word nie, word die dopproses vervang met die gespesifiseerde program (wat 'n regte program moet wees, nie 'n dop wat ingebou of funksie is nie). Enige herleidings op die exec- opdrag word permanent gemerk, sodat hulle nie ongedaan gemaak word wanneer die exec- opdrag voltooi word nie.

uitgang [ uitgangstatus ]

Beëindig die dopproses. As u uitgangstatus gegee word, word dit gebruik as die uitgangstatus van die dop; Anders word die uitgangstatus van die voorafgaande opdrag gebruik.

uitvoer naam ...

uitvoer -p

Die gespesifiseerde name word uitgevoer sodat hulle in die omgewing van die daaropvolgende opdragte verskyn. Die enigste manier om 'n veranderlike te eksporteer, is om dit uit te skakel. Die dop laat die waarde van 'n veranderlike toe gestel word op dieselfde tyd wat dit deur middel van skryf uitgevoer word

uitvoer naam = waarde

Met geen argumente word die name van alle uitgevoerde veranderlikes in die uitvoer bevel vertoon. Met die - p opsie gespesifiseer, sal die uitvoer geskik geformateer word vir nie-interaktiewe gebruik.

fc [- e redakteur ] [ eerste [ laaste ]]

fc -l [- nr ] [ eerste [ laaste ]]

fc-s [ oud = nuut ] [ eerste ]

Die fc ingeboude lyste, of wysigings en weer uitgevoer, opdragte wat voorheen by 'n interaktiewe dop ingeskryf is.

-e redakteur

Gebruik die redakteur wat deur die redakteur genoem word om die opdragte te wysig. Die redigeerdersreeks is 'n opdragnaam, onderhewig aan soektog via die PATH- veranderlike. Die waarde in die FCEDIT- veranderlike word as 'n standaard gebruik wanneer - e nie gespesifiseer word nie. As FCEDIT nul of unset is, word die waarde van die EDITOR- veranderlike gebruik. As EDITOR nul of unset is, word ed (1) as die redigeerder gebruik.

-l (ell)

Lys die opdragte eerder as om 'n redakteur op hulle te noem. Die opdragte word geskryf in die volgorde wat deur die eerste en laaste operasies aangedui word, soos geraak deur - r met elke opdrag voorafgegaan deur die bevel nommer.

-n

Onderdruk bevelnommers wanneer u met -l opskryf.

r

Omkeer die volgorde van die opdragte wat gelys is (met - l of geredigeer (met nie - ek ook nie )

s

Voer die opdrag weer uit sonder om 'n redakteur te versoek.

eerste

laaste

Kies die opdragte om te lys of te wysig. Die aantal vorige opdragte wat verkry kan word, word bepaal deur die waarde van die HISTSIZE- veranderlike . Die waarde van eerste of laaste of albei is een van die volgende:

[+] getal

'N Positiewe getal wat 'n bevelnommer voorstel; bevel nommers kan vertoon word met die - l opsie.

-number

'N Negatiewe desimale getal wat die opdrag verteenwoordig wat voorheen uitgevoer is. Byvoorbeeld, -1 is die onmiddellike vorige opdrag.

string

'N Snaar wat die mees onlangs ingevoerde opdrag aandui wat met daardie snaar begin. As die ou = nuwe operand nie ook gespesifiseer word nie, kan die stringvorm van die eerste operand nie 'n ingebedde gelykaat bevat nie.

Die volgende omgewingsveranderlikes beïnvloed die uitvoering van fc:

FCEDIT

Naam van die redakteur om te gebruik.

HISTSIZE

Die aantal vorige opdragte wat toeganklik is.

fg [ werk ]

Beweeg die gespesifiseerde werk of die huidige werk na die voorgrond.

getopts optstring var

Die POSIX getopts opdrag, nie verwar word met die Bell Labs- ontvanger getopt (1).

Die eerste argument moet 'n reeks briewe wees, waarvan elkeen opsioneel gevolg kan word deur 'n kolon om aan te dui dat die opsie 'n argument vereis. Die veranderlike wat gespesifiseer is, is ingestel op die ontleed-opsie.

Die getopts opdrag verval die ouer getopt (1) nut as gevolg van die hantering van argumente wat witspasie bevat.

Die getopts ingeboude kan gebruik word om opsies en hul argumente te verkry uit 'n lys van parameters. Wanneer aangevra word, plaas die waarde van die volgende opsie uit die opsie string in die lys in die skaalveranderlike wat deur var gespesifiseer is en dit is die indeks in die skulpveranderlike OPTIND Wanneer die skulp aangewend word, word OPTIND geïnitialiseer na 1. Vir elke opsie wat vereis 'n argument, die getopts ingeboude sal dit in die dopveranderlike opsie plaas. OPTARG Indien 'n opsie nie toegelaat word in die optstring nie, sal OPTARG uitgestel word.

optstring is 'n string van erkende opsie letters. As 'n brief gevolg word deur 'n kolon, word daar van die opsie verwag om 'n argument te hê wat dalk met wit spasie daarvan afgeskei kan word. As 'n opsie karakter nie gevind word waar verwag word nie, sal getopts die veranderlike var na '``' ' getopts stel en dan OPTARG ontkoppel en uitvoer na standaardfout skryf. Deur 'n kolon as die eerste karakter van optstring te spesifiseer, sal alle foute geïgnoreer word.

'N Nie-nulwaarde word teruggestuur wanneer die laaste opsie bereik word. As daar geen oorblywende argumente is nie, sal getopts die spesiale opsie stel, anders sal dit '``' 'wees.' '

Die volgende kodefragstuk wys hoe mens die argumente kan verwerk vir 'n opdrag wat die opsies [a] en [b] en die opsie [c] kan gebruik wat 'n argument vereis.

terwyl getopts abc: f
doen
geval $ f in
a | b) vlag = $ f ;;
c) carg = $ OPTARG ;;
\?) eggo $ USAGE; afrit 1 ;;
esac
gedaan
skuif `expr $ OPTIND - 1`

Hierdie kode sal enige van die volgende as ekwivalent aanvaar:

cmd -acarg lêer lêer
cmd -a-c arg lêer lêer
cmd-carg -a lêer lêer
cmd -a-carg - lêer lêer

hash -rv bevel ...

Die dop hou 'n hash-tabel wat die liggings van opdragte onthou. Met geen argumente nie, druk die hash- bevel die inhoud van hierdie tabel af. Inskrywings wat nie gekyk is nie sedert die laaste CD- opdrag is gemerk met 'n asterisk; Dit is moontlik dat hierdie inskrywings ongeldig is.

Met argumente verwyder die hash- bevel die gespesifiseerde opdragte uit die hash-tabel (tensy dit funksies is) en plaas dit dan. Met die - v opsie, druk die hash die liggings van die opdragte af soos dit hulle vind. Die - r opsie veroorsaak dat die hash opdrag al die inskrywings in die hash tabel verwyder behalwe vir funksies.

jobid [ werk ]

Druk die proses-ID's van die prosesse in die werk af. As die werksargument weggelaat word, word die huidige werk gebruik.

werk

Hierdie opdrag lys al die agtergrond prosesse wat kinders van die huidige dopproses is.

PWD

Druk die huidige gids af. Die ingeboude opdrag kan verskil van die program met dieselfde naam omdat die ingeboude opdrag onthou wat die huidige gids is, eerder as om dit elke keer weer te komponeer. Dit maak dit vinniger. As die huidige gids egter hernoem word, sal die ingeboude weergawe van pwd voortgaan om die ou naam vir die gids te druk.

lees [- p prompt ] [- r ] veranderlike ...

Die prompt word gedruk as die - p opsie gespesifiseer word en die standaard insette 'n terminaal is. Dan word 'n lyn van die standaardinvoer gelees. Die agterliggende nuwe lyn word van die lyn verwyder en die lyn word verdeel soos beskryf in die gedeelte oor die splitsing van woorde hierbo en die stukke word aan die veranderlikes in volgorde toegeken. Ten minste een veranderlike moet gespesifiseer word. As daar meer stukke as veranderlikes is, word die oorblywende stukke (saam met die karakters in IFS wat hulle geskei het) aan die laaste veranderlike toegeken. As daar meer veranderlikes as stukke is, word die nul-string aan die oorblywende veranderlikes toegeken. Die ingeboude leeswerk sal sukses aantoon tensy die EOF op insette aangetref word, in welke geval versuim terugbesorg word.

By verstek, tensy die - r opsie gespesifiseer word, dien die terugslag `` \ '' as 'n ontsnappingskarakter, wat veroorsaak dat die volgende karakter letterlik behandel word. As 'n terugslag gevolg word deur 'n nuwe lyn, sal die terugslag en die nuwe lyn uitgevee word.

leesbare naam ...

leesbaar -p

Die gespesifiseerde name is gemerk as leesalleen, sodat hulle nie later aangepas of ontbind kan word nie. Die dop laat die waarde van 'n veranderlike toe gestel word op dieselfde tyd as wat dit gemerk is, en word slegs gelees deur te skryf

leesbare naam = waarde

Met geen argumente word die name van alle lees-veranderlikes in die leesbare opdrag genoem nie. Met die - p opsie gespesifiseer, sal die uitvoer geskik geformateer word vir nie-interaktiewe gebruik.

stel [(- opsies | + opsies | - arg ... ]

Die ingestelde opdrag voer drie verskillende funksies uit.

Met geen argumente, dit lys die waardes van alle dop veranderlikes.

As opsies gegee word, stel dit die gespesifiseerde opsie vlae in, of verwyder hulle soos beskryf in die afdeling genaamd Sx Argument List Processing.

Die derde gebruik van die ingestelde opdrag is om die waardes van die dop se posisionele parameters in die gespesifiseerde args te stel. Om die posisionele parameters te verander sonder om enige opsies te verander, gebruik `` - '' as die eerste argument om te stel. As daar geen args teenwoordig is nie, sal die ingestelde opdrag al die posisionele parameters skoonmaak (ekwivalent aan die uitvoer van `` shift $ #. ''

veranderlike waarde

Ken waarde toe aan veranderlike. (In die algemeen is dit beter om veranderlike = waarde te skryf eerder as om gebruik te stel setvar setvar is bedoel om gebruik te word in funksies wat waardes toewys aan veranderlikes wie se name as parameters geslaag word.)

skuif [ n ]

Verander die posisionele parameters n keer. 'N Skuif stel die waarde van $ 1 ter waarde van $ 2 die waarde van $ 2 ter waarde van $ 3 ensovoorts, waardeur die waarde van $ # deur een verminder word. As n groter is as die aantal posisionele parameters, sal skuif 'n foutboodskap uitreik en uittree met terugkeerstatus 2.

keer

Druk die opgehoopte gebruiker en stelsel tye vir die dop af en vir prosesse loop vanaf die dop. Die terugkeerstatus is 0.

trap aksie sein ...

Verskaf die dop om aksie te ontleed en uit te voer wanneer enige van die gespesifiseerde seine ontvang word. Die seine word deur seinnommer gespesifiseer. As sein 0 is, word die aksie uitgevoer wanneer die dop uitgaan. aksie kan nul wees of `` - '' die voormalige veroorsaak dat die gespesifiseerde sein geïgnoreer word en laasgenoemde veroorsaak dat die standaard aksie geneem word. Wanneer die dop uit 'n subskerm vurk, herstel dit vasgevang (maar nie geïgnoreer nie) seine na die verstekaksie. Die trapopdrag het geen effek op seine wat geïgnoreer is by toetrede tot die dop nie.

tik [ naam ... ]

Interpreteer elke naam as 'n opdrag en druk die resolusie van die opdragsoektog uit. Moontlike resolusies is: dop navraag, alias, dop ingebou , opdrag, alias opgespoor en nie gevind nie. Vir aliasse word die alias uitbreiding gedruk; vir opdragte en opgetekende aliasse word die volledige padnaam van die opdrag gedruk.

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

Doen navraag oor of stel die harde of sagte perke op prosesse of stel nuwe perke in. Die keuse tussen harde limiet (wat geen proses toegelaat word om te skend nie, en wat nie verhoog mag word sodra dit verlaag is nie) en sagte limiet (wat veroorsaak dat prosesse gesignaleer word maar nie noodwendig gedood word nie, en wat opgevoed kan word) word gemaak met hierdie vlae:

-H

stel of navraag doen oor harde perke

-S

stel of navraag doen oor sagte grense. Indien nie - H nor - S gespesifiseer is, word die sagte limiet vertoon of albei limiete is ingestel. As albei gespesifiseer word, wen die laaste een.

Die beperking wat ondervra of gestel word, word dan gekies deur enige van hierdie vlae te spesifiseer:

-a

wys al die huidige perke

t

wys of stel die limiet op die SVE-tyd (in sekondes)

f

wys of stel die limiet op die grootste lêer wat geskep kan word (in 512-byte blokke)

d

wys of stel die limiet op die datasegmentgrootte van 'n proses (in kilobiete)

s

wys of stel die limiet op die stapelgrootte van 'n proses (in kilobiete)

-c

wys of stel die limiet op die grootste kern dump grootte wat geproduseer kan word (in 512-byte blokke)

-m

wys of stel die limiet op die totale fisiese geheue wat gebruik kan word deur 'n proses (in kilobiete)

-l

wys of stel die limiet vas op hoeveel geheue 'n proses kan sluit met mlock (2) (in kilobiete )

p

wys of stel die limiet op die aantal prosesse wat hierdie gebruiker op een slag kan hê

-n

wys of stel die limiet op die nommerlêers wat 'n proses gelyktydig kan oopmaak

As nie een van hierdie is gespesifiseer nie, is dit die limiet op lêergrootte wat getoon of gestel word. As die waarde gespesifiseer word, is die limiet op daardie nommer ingestel; anders word die huidige limiet vertoon.

Limiete van 'n arbitrêre proses kan vertoon of gestel word met behulp van die sysctl (8) nut.

umask [ masker ]

Stel die waarde van umask (sien umask (2)) tot die gespesifiseerde oktale waarde. As die argument weggelaat word, word die umask waarde gedruk.

unalias [- a ] [ naam ]

As die naam gespesifiseer word, verwyder die dop die alias. As - a gespesifiseer word, word aliasse verwyder.

ontstelde naam ...

Die gespesifiseerde veranderlikes en funksies is onbeduidend en ongeporteer. As 'n gegewe naam ooreenstem met beide 'n veranderlike en 'n funksie, is beide die veranderlike en die funksie ongeskakel.

wag [ werk ]

Wag vir die gespesifiseerde werk om die uitgangsstatus van die laaste proses in die werk te voltooi en terug te stuur. As die argument weggelaat word, wag vir alle werk om te voltooi en die terugkeerstatus van nul is terug.

Command Line Editing

Wanneer sh interaktief van 'n terminaal gebruik word, kan die huidige opdrag en die opdraggeskiedenis (sien fc in Sx Builtins) geredigeer word met behulp van vi-modus opdrag-redigering. Hierdie modus gebruik bevele, wat hieronder beskryf word, soortgelyk aan 'n deelversameling van die wat op die vi manblad beskryf word. Die opdrag `stel '- ons stel vi-modus redigeer in en plaas sh in vi insert-modus. Met vi-modus geaktiveer, kan sh tussen tussenvoegmodus en opdragmodus oorgeskakel word. Die redakteur word nie hier volledig beskryf nie, maar sal in 'n latere dokument wees. Dit is soortgelyk aan vi: tik Aq ESC sal jou in bevel VI-opdrag af gooi. Raak Aq terug terwyl in die opdrag af die lyn na die dop gaan.

Belangrik: Gebruik die man opdrag ( % man ) om te sien hoe 'n opdrag op u rekenaar gebruik word.