Sh - Linux Command - Unix Command

NAAM

bash - GNU Bourne-Again SHell

SINOPSIS

bash [opsies] [lêer]

BESKRYWING

Bash is 'n sh- verenigbare beveltaal-tolk wat opdragte uitvoer vanaf die standaardinvoer of van 'n lêer. Bash bevat ook bruikbare kenmerke van die Korn en C skulpe ( ksh en csh ).

Bash is bedoel om 'n konformante implementering van die IEEE POSIX Shell en Tools-spesifikasie (IEEE Working Group 1003.2) te wees.

OPTIONS

Benewens die skyfopsies met een karakter wat gedokumenteer word in die beskrywing van die ingeboude opdrag, interpreteer bash die volgende opsies wanneer dit aangewend word:

-c- string

As die -c opsie teenwoordig is, word opdragte van string gelees. As daar argumente is na die string , word hulle toegeken aan die posisionele parameters, begin met $ 0 .

-i

As die -i opsie teenwoordig is, is die dop interaktief .

-l

Maak bash daad asof dit as 'n inskrywingsdop aangewend is (sien INVOER hieronder).

r

As die -r opsie teenwoordig is, word die dop beperk (sien BEPERKTE SHELL hieronder).

s

As die opsie -s teenwoordig is, of as daar geen argumente bly na die opsie verwerking nie, word opdragte van die standaardinvoer gelees. Met hierdie opsie kan die posisionele parameters gestel word wanneer 'n interaktiewe dop aangevra word.

-D

'N Lys van alle dubbele gekwoteerde snare voorafgegaan deur $ is op die standaard oututut gedruk. Dit is die snare wat onderhewig is aan taalvertaling wanneer die huidige land nie C of POSIX is nie . Dit impliseer die -n opsie; Geen opdragte sal uitgevoer word nie.

[- +] O [ shopt_option ]

shopt_option is een van die skulpopsies wat aanvaar word deur die shopt builtin (sien SHELL BUILTIN COMMANDS hieronder). As shopt_option teenwoordig is, -O stel die waarde van daardie opsie in; + O stel dit on. As shopt_option nie verskaf word nie, word die name en waardes van die skulpopsies wat deur shopt aanvaar word, op die standaard uitset gedruk. As die aanroep opsie + O is , word die uitset vertoon in 'n formaat wat as insette hergebruik kan word.

A - dui die einde van die opsies aan en skakel verdere opsieverwerking uit. Enige argumente na die - word behandel as lêername en argumente. 'N Argument van - is gelykstaande aan - .

Bash interpreteer ook 'n aantal multi-karakter opsies. Hierdie opsies moet op die opdraglyn verskyn voordat die eenkarakter opsies herken word.

--dump-po-snare

Ekwivalent aan -D , maar die uitvoer is in die GNU gettext po (draagbare objek) lêerformaat.

--dump-snare

Ekwivalent aan -D .

help uit te voer

Wys 'n gebruiksboodskap op standaarduitvoer en sluit suksesvol uit.

--init-lêer lêer

--rcfile lêer

Voer opdragte uit lêer in plaas van die standaard persoonlike initialisasie lêer ~ / .bashrc as die dop interaktief is (sien INVOER hieronder).

--teken aan

Ekwivalent aan -l .

--noediting

Moenie die GNU leeslynbiblioteek gebruik om opdraglyne te lees wanneer die dop interaktief is nie.

--noprofile

Moenie die stelselwye opstartlêer / ens / profiel of enige van die persoonlike initialisasie lêers ~ / .bash_profile , ~ / .bash_login , of ~ / .profile lees nie . By verstek lees bash hierdie lêers wanneer dit aangewys word as 'n inskrywingsdop (sien INVOER hieronder).

--norc

Moenie die persoonlike initialisasie lêer ~ / .bashrc lees of uitvoer nie as die dop interaktief is. Hierdie opsie is standaard aan as die skulp as sh geskryf word .

--posix

Verander die gedrag van bash waar die verstekoperasie verskil van die POSIX 1003.2-standaard om die standaard ( posix-modus ) te pas.

--restricted

Die dop word beperk (sien BEPERKTE SHELL hieronder).

--rpm-vereis

Produseer die lys van lêers wat benodig word vir die dop om te hardloop. Dit impliseer '-n' en is onderworpe aan dieselfde beperkings as samestellingstydfoutkontrole; Backticks, [] toetse en euwels word nie ontleed nie, so sommige afhanklikhede kan gemis word. --verbose Ekwivalent aan -v .

--version

Wys weergawe inligting vir hierdie geval van bash op die standaard uitvoer en sluit suksesvol uit.

ARGUMENTE

As argumente bly na opsieverwerking, en nie die -c of die -s- opsie is verskaf nie, word die eerste argument aanvaar as die naam van 'n lêer wat dopopdragte bevat. As bash op hierdie manier aangespreek word, word $ 0 op die naam van die lêer gestel, en die posisionele parameters word op die oorblywende argumente gestel. Bash lees en voer instruksies uit hierdie lêer, en gaan dan uit. Bash se uitgangstatus is die uitgangstatus van die laaste opdrag wat in die skrif uitgevoer word. As geen opdragte uitgevoer word nie, is die uitgangstatus 0. 'N Poging word eers gemaak om die lêer in die huidige gids oop te maak. As daar geen lêer gevind word nie, soek die dop die lêers in PATH vir die skrif.

aanroeping

'N Inskrywingsdop is een waarvan die eerste karakter van die argument nul is a, of een begin met die --login opsie.

'N Interaktiewe skulp is een sonder argumente sonder opsie en sonder die -c opsie waarvan die standaard insette en uitset beide verbind is met terminale (soos bepaal deur isatty (3)) of een met die -i- opsie begin. PS1 is ingestel en $ - sluit ek in indien bash interaktief is, sodat 'n skulpkop of 'n opstartlêer hierdie toestand kan toets.

Die volgende paragrawe beskryf hoe bash sy opstartlêers uitvoer. As enige van die lêers bestaan, maar nie gelees kan word nie, rapporteer bash ' n fout. Tildes word uitgebrei in lêername soos hieronder beskryf onder Tilde Uitbreiding in die EXPANSION- afdeling.

Wanneer bash as 'n interaktiewe inskrywingsdop of as 'n nie-interaktiewe dop met die --login- opsie aangewend word, lees dit en voer die opdragte uit die lêer / etc / profiel , indien die lêer bestaan. Na die lees van die lêer kyk dit na ~ / .bash_profile , ~ / .bash_login , en ~ / .profile , in daardie volgorde, en lees en voer opdragte uit die eerste een wat bestaan ​​en leesbaar is. Die opsie -noprofiel kan gebruik word wanneer die dop hierdie gedrag begin inhibeer.

Wanneer 'n inskrywing skulp verlaat, lees bash en voer bevele uit die lêer ~ / .bash_logout , indien dit bestaan.

Wanneer 'n interaktiewe dop wat nie 'n aanmeldskulp is nie, begin, lees bash en voer bevele uit ~ / .bashrc , as die lêer bestaan. Dit kan geïnhibeer word deur die --norc opsie te gebruik. Die opsie --rcfile lêer sal bash dwing om kommando's van lêer te lees en uit te voer in plaas van ~ / .bashrc .

Wanneer bash nie-interaktief begin word, om byvoorbeeld 'n skulpkop te laat loop, soek dit na die veranderlike BASH_ENV in die omgewing, word die waarde uitgebrei as dit daar verskyn en gebruik die uitgebreide waarde as die naam van 'n lêer om te lees en uit te voer. . Bash gedra asof die volgende opdrag uitgevoer is:

as [-n "$ BASH_ENV"]; dan. "$ BASH_ENV"; fi

maar die waarde van die PATH- veranderlike word nie gebruik om die lêernaam te soek nie.

As bash met die naam sh aangewend word, probeer dit die opstartgedrag van historiese weergawes van Sh so nou as moontlik naboots, terwyl dit ook aan die POSIX-standaard voldoen. As dit as 'n interaktiewe inskrywingsdop of 'n nie-interaktiewe dop met die --login- opsie aangewend word, probeer dit eers om kommando's te lees en uit te voer vanaf / etc / profiel en ~ / .profile , in daardie volgorde. Die -noprofile- opsie kan gebruik word om hierdie gedrag te inhibeer. Wanneer hy as 'n interaktiewe dop met die naam sh aangewys word , kyk bash na die veranderlike ENV , sy waarde uitbrei as dit gedefinieer word en gebruik die uitgebreide waarde as die naam van 'n lêer om te lees en uit te voer. Aangesien 'n skulp wat as sh aangewend word, nie probeer om kommentaar van enige ander opstartlêers te lees en uit te voer nie, het die opsie --rcfile geen effek nie. 'N Nie-interaktiewe dop wat met die naam sh aangewend word, probeer nie om enige ander opstartlêers te lees nie. Wanneer as sh aangevra word , gaan bash in posix af nadat die opstart lêers gelees is.

Wanneer bash in posix- modus begin, soos met die --posix- opsie, volg dit die POSIX-standaard vir opstartlêers . In hierdie modus brei interaktiewe skale die ENV- veranderlike uit en die opdragte word gelees en uitgevoer uit die lêer waarvan die naam die uitgebreide waarde is. Geen ander opstartlêers word gelees nie.

Bash poog om te bepaal wanneer dit deur die afgeleë dopdemon uitgevoer word, gewoonlik rshd . As bash bepaal dat dit deur rshd bestuur word, lees en voer dit bevele uit ~ / .bashrc , as die lêer bestaan ​​en leesbaar is. Dit sal dit nie doen as dit as sh geskryf word nie . Die --norc opsie kan gebruik word om hierdie gedrag te inhibeer, en die --rcfile opsie kan gebruik word om 'n ander lêer te laat dwing om te lees, maar rshd maak gewoonlik nie die dop toe met die opsies of toelaat dat hulle gespesifiseer word nie.

As die dop begin word met die effektiewe gebruiker (groep) ID nie gelyk aan die regte gebruiker (groep) ID nie, en die -p opsie nie verskaf word nie, word geen opstartlêers gelees nie, dopfunksies word nie van die omgewing geërf nie, die SHELLOPTS veranderlike, as dit in die omgewing voorkom, word geïgnoreer, en die effektiewe gebruikers-ID is ingestel op die regte gebruikersnaam. As die -p- opsie by invokasie verskaf word, is die opstartgedrag dieselfde, maar die effektiewe gebruikers-ID word nie herstel nie.

DEFINISIES

Die volgende definisies word deur die res van hierdie dokument gebruik.

leeg

'N Spasie of 'n oortjie.

woord

'N Volgorde karakters beskou as 'n enkele eenheid deur die dop. Ook bekend as 'n teken .

naam

'N Woord wat slegs bestaan ​​uit alfanumeriese karakters en onderstrepe, en begin met 'n alfabetiese karakter of 'n onderstreep. Ook na verwys as 'n identifiseerder .

metacharacter

'N Karakter wat, wanneer ongemerk, skei woorde. Een van die volgende:

| &; () <> spasie oortjie

beheer operateur

'N Token wat 'n beheerfunksie verrig. Dit is een van die volgende simbole:

|| & &&; ;; () |

RESERVERE WOORDE

Voorgeskrewe woorde is woorde wat 'n spesiale betekenis vir die dop het. Die volgende woorde word as gereserveer as ongemerk en óf die eerste woord van 'n eenvoudige opdrag (sien SHELL GRAMMAR hieronder) of die derde woord van 'n saak of vir opdrag:

! geval doen anders as vir die funksie as in kies dan tot en met {} tyd [[]]

SHELL GRAMMAR

Eenvoudige opdragte

'N Eenvoudige opdrag is 'n reeks opsionele veranderlike opdragte gevolg deur leë geskeide woorde en afleidings, en beëindig deur 'n beheeroperateur. Die eerste woord spesifiseer die opdrag wat uitgevoer moet word en word as argument nul oorgedra. Die oorblywende woorde word as argumente aan die aangevoerde opdrag oorgedra.

Die terugkeerwaarde van 'n eenvoudige opdrag is sy uitgangstatus, of 128 + n as die opdrag beëindig word deur sein n .

pyplyne

'N Pyplyn is 'n volgorde van een of meer opdragte geskei deur die karakter | . Die formaat vir 'n pyplyn is:

[ tyd [ -p ]] [! ] opdrag [ | command2 ...]

Die standaard uitvoer van opdrag word via 'n pyp aan die standaard invoer van command2 gekoppel . Hierdie verbinding word uitgevoer voor enige herleidings wat deur die opdrag gespesifiseer word (sien REDIRECTION hieronder).

As die gereserveerde woord ! voorafgaan 'n pyplyn, die uitgangstatus van daardie pyplyn is die logiese NOT van die uitgangstatus van die laaste opdrag. Andersins is die status van die pyplyn die uitgangstatus van die laaste opdrag. Die dop wag vir alle opdragte in die pyplyn om te beëindig voordat u 'n waarde terugbring.

As die tyd gereserveerde woord 'n pyplyn voorafgaan, word die verloop sowel as die gebruiker- en stelseltyd wat deur die uitvoering daarvan verteer word, aangemeld wanneer die pyplyn beëindig word. Die -p- opsie verander die uitvoerformaat as wat deur POSIX gespesifiseer is. Die TIMEFORMAT- veranderlike kan ingestel word op 'n formaatstring wat spesifiseer hoe die tydinligting moet vertoon word; sien die beskrywing van TIMEFORMAT onder Shell Variables hieronder.

Elke opdrag in 'n pyplyn word as 'n afsonderlike proses uitgevoer (dws in 'n subskerm).

lyste

'N Lys is 'n volgorde van een of meer pypleidings geskei deur een van die operateurs ; , & , && , of || , en opsioneel beëindig deur een van ; , & , of .

Van hierdie lysoperateurs, && and || het gelyke voorrang, gevolg deur ; en , wat gelyke voorrang het.

'N Volgorde van een of meer nuwe lyne mag in 'n lys voorkom in plaas van 'n semikolon om kommando's te delimiteer.

As 'n opdrag beëindig word deur die beheeroperateur, voer die dop die opdrag in die agtergrond in 'n subskerm uit. Die dop wag nie vir die opdrag om te voltooi nie, en die terugkeerstatus is 0. Opdragte geskei deur a ; word opeenvolgend uitgevoer; die dop wag vir elke opdrag om op sy beurt te beëindig. Die terugkeerstatus is die uitgangstatus van die laaste opdrag uitgevoer.

Die beheeroperateurs && and || noem EN lyste en OF lyste, onderskeidelik. 'N AND-lys het die vorm

command1 && command2

command2 word uitgevoer as, en slegs indien, command1 'n uitgangstatus van nul gee.

'N OR-lys het die vorm

command1 || command2

command2 word uitgevoer as en slegs as command1 'n nie-nul uitgangstatus gee. Die terugkeer status van AND en OR lyste is die uitgang status van die laaste opdrag uitgevoer in die lys.

Saamgestelde opdragte

'N Gekombineerde opdrag is een van die volgende:

( lys )

Lys word uitgevoer in 'n subskerm. Veranderlike opdragte en ingeboude opdragte wat die dop se omgewing beïnvloed, bly nie in werking nadat die opdrag voltooi is nie. Die terugkeerstatus is die uitgangstatus van die lys .

{ list ; }

Lys word eenvoudig uitgevoer in die huidige skulpomgewing. lys moet beëindig word met 'n newline of semikolon. Dit staan ​​bekend as 'n groep opdrag . Die terugkeerstatus is die uitgangstatus van die lys . Let daarop dat, in teenstelling met die meta karakters ( en ) , { en } gereserveerde woorde is en moet plaasvind waar 'n gereserveerde woord toegelaat word om erken te word. Aangesien hulle nie 'n woord breek nie, moet hulle geskei word uit die lys deur witruim.

(( uitdrukking ))

Die uitdrukking word geëvalueer volgens die reëls wat hieronder beskryf word onder ARITHMETIC EVALUATION . As die waarde van die uitdrukking nie-nul is, is die terugkeerstatus 0; anders is die terugkeerstatus 1. Dit is presies gelyk aan laat " uitdrukking ".

[[ uitdrukking ]]

Wys 'n status van 0 of 1, afhangende van die evaluering van die voorwaardelike uitdrukkingsuitdrukking . Uitdrukkings is saamgestel uit die onderstaande primêre voorskrifte onder VOORWAARDELIKE UITDRUKKINGS . Woordverdeling en padnaam uitbreiding word nie op die woorde tussen die [[ en ]] uitgevoer nie ; tilde uitbreiding, parameter en veranderlike uitbreiding, rekenkundige uitbreiding, opdrag vervanging, proses vervanging, en kwotasie verwydering word uitgevoer.

Wanneer die == en ! = Operateurs gebruik word, word die string regs van die operateur beskou as 'n patroon en ooreenstem met die reëls wat hieronder beskryf word onder Patroonpassing . Die terugkeerwaarde is 0 as die tou ooreenstem of nie ooreenstem met die patroon, respektiewelik, en 1 andersins. Enige deel van die patroon kan aangehaal word om te dwing om dit as 'n tou te pas.

Uitdrukkings kan gekombineer word deur gebruik te maak van die volgende operateurs, wat in dalende volgorde van voorkeur voorkom:

( uitdrukking )

Wys die waarde van uitdrukking terug . Dit kan gebruik word om die normale voorrang van operateurs te ignoreer.

! uitdrukking

Waar as uitdrukking vals is.

uitdrukking1 && uitdrukking2

Waar of beide uitdrukking1 en uitdrukking2 waar is.

uitdrukking1 || uitdrukking2 Waar of uitdrukking1 of uitdrukking2 waar is.

Die && en || operateurs evalueer nie uitdrukking2 as die waarde van uitdrukking1 voldoende is om die terugwaarde van die hele voorwaardelike uitdrukking te bepaal nie.

vir naam [ in woord ]; doen lys ; gedaan

Die lys met woorde wat volg , is uitgebrei, wat 'n lys items opwek. Die veranderlike naam word op elke element van hierdie lys op sy beurt gestel en elke keer word die lys uitgevoer. As die in- woord weggelaat word, voer die vir opdrag een keer uit vir elke posisionele parameter wat ingestel is (sien PARAMETERS hieronder). Die terugkeerstatus is die uitgangstatus van die laaste opdrag wat uitgevoer word. As die uitbreiding van die items wat volg in ' n leë lys gevolg word, word geen opdragte uitgevoer nie en die terugkeerstatus is 0.

vir (( expr1 ; expr2 ; expr3 )); doen lys ; gedaan

Eerstens word die rekenkundige uitdrukking expr1 geëvalueer volgens die reëls hieronder beskryf onder ARITHMETIC EVALUATION . Die rekenkundige uitdrukking expr2 word dan herhaaldelik geëvalueer totdat dit na nul evalueer. Elke keer as expr2 evalueer na 'n nie-nul waarde, word die lys uitgevoer en die rekenkundige uitdrukking expr3 geëvalueer. As enige uitdrukking weggelaat word, dien dit asof dit evalueer na 1. Die terugkeerwaarde is die uitgangstatus van die laaste opdrag in die lys wat uitgevoer word, of vals indien enige van die uitdrukkings ongeldig is.

kies naam [ in woord ]; doen lys ; gedaan

Die lys met woorde wat volg , is uitgebrei, wat 'n lys items opwek. Die stel uitgebreide woorde word op die standaardfout gedruk, elkeen voorafgegaan deur 'n nommer. As die in- woord weggelaat word, word die posisionele parameters gedruk (sien PARAMETERS hieronder). Die PS3- prompt word dan vertoon en 'n lyn word vanaf die standaardinvoer gelees. As die lyn bestaan ​​uit 'n getal wat ooreenstem met een van die vertoonde woorde, word die waarde van die naam op daardie woord gestel. As die lyn leeg is, word die woorde en prompt weer vertoon. As EOF gelees word, voltooi die opdrag. Enige ander waarde-lees veroorsaak dat die naam op nul gestel word. Die lynlees is gestoor in die veranderlike ANTWOORD . Die lys word na elke keuse uitgevoer totdat 'n breekopdrag uitgevoer word. Die uitgang status van die kies is die uitgang status van die laaste opdrag uitgevoer in die lys , of nul as geen opdragte uitgevoer is.

gevalwoord in [[(] patroon [ | patroon ]

'N Gevalopdrag brei eers die woord uit , en probeer dit ooreenstem met elke patroon op sy beurt, met dieselfde ooreenstemmende reëls as vir die uitbreiding van padnaam (sien Padnaamuitbreiding hieronder). Wanneer 'n wedstryd gevind word, word die ooreenstemmende lys uitgevoer. Na die eerste wedstryd word geen volgende wedstryde aangepak nie. Die uitgangstatus is nul indien geen patroon ooreenstem nie. Andersins is dit die uitgangstatus van die laaste opdrag uitgevoer in die lys .

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

Die indien lys word uitgevoer. As die uitgangstatus nul is, word die lys dan uitgevoer. Anders word elke elif- lys op sy beurt uitgevoer, en as sy uitgangstatus nul is, word die ooreenstemmende danlys uitgevoer en die opdrag voltooi. Andersins word die ander lys uitgevoer, indien teenwoordig. Die uitgangstatus is die uitgangstatus van die laaste opdrag uitgevoer, of nul as geen voorwaarde getoets word nie.

terwyl die lys ; doen lys ; gedaan

tot lys ; doen lys ; gedaan

Die instruksies terwyl die opdrag voortdurend die doellys uitvoer, solank die laaste opdrag in die lys 'n uitgangstatus van nul gee. Die tot opdrag is identies aan die tydsbevel, behalwe dat die toets afgekeur word; Die lys word uitgevoer so lank as wat die laaste opdrag in die lys 'n nie-nul-uitgangstatus gee. Die uittreestatus van die tyd en tot opdragte is die uitgangstatus van die laaste lysopdrag uitgevoer, of nul as niemand uitgevoer is nie.

[ funksie ] naam () { list ; }

Dit definieer 'n funksie naam genoem . Die funksie van die funksie is die lys van opdragte tussen {en}. Hierdie lys word uitgevoer wanneer die naam gespesifiseer word as die naam van 'n eenvoudige opdrag. Die uitgang status van 'n funksie is die uitgang status van die laaste opdrag uitgevoer in die liggaam. (Sien FUNKSIES hieronder.)

KOMMENTAAR

In 'n nie-interaktiewe dop, of 'n interaktiewe dop waarin die opsie interactive_comments vir die inkopie gebou is, is dit aangeskakel (sien SHELL BUILTIN COMMANDS hieronder), 'n woord wat begin met # veroorsaak dat die woord en al die oorblywende karakters op die lyn geïgnoreer word. 'N Interaktiewe skerm sonder die opsie interactive_comments geaktiveer, laat nie kommentaar toe nie. Die opsie interactive_comments is standaard in interaktiewe skulpe.

vermelding

Aanhaling word gebruik om die spesiale betekenis van sekere karakters of woorde na die dop te verwyder. Quoting kan gebruik word om spesiale behandeling vir spesiale karakters uit te skakel, om te verhoed dat gereserveerde woorde as sodanig herken word en om die uitbreiding van die parameter te voorkom.

Elk van die meta karakters wat hierbo genoem word onder DEFINITIES, het spesiale betekenis aan die dop en moet aangehaal word as dit homself moet verteenwoordig.

Wanneer die opdrag geskiedenis uitbreiding fasiliteite gebruik word, die geskiedenis uitbreiding karakter, gewoonlik ! , moet aangehaal word om geskiedenisuitbreiding te voorkom.

Daar is drie aanhalingsmeganismes: die ontsnappingkarakter , enkele aanhalings en dubbele aanhalings.

'N Onbekende terugslag ( \ ) is die ontsnappingskarakter . Dit behou die letterlike waarde van die volgende karakter wat volg, met die uitsondering van . As 'n \ -paar verskyn en die terugslag nie self aangehaal word nie, word die \ behandel as 'n lynvoortgang (dit word verwyder van die invoerstroom en effektief geïgnoreer).

Omskakeling karakters in enkele aanhalings behou die letterlike waarde van elke karakter binne die aanhalings. 'N Enkele aanhaling mag nie tussen enkele aanhalingstekens voorkom nie, selfs wanneer dit voorafgegaan word deur 'n terugslag.

Omskakeling karakters in dubbele aanhalings behou die letterlike waarde van alle karakters binne die aanhalings, met die uitsondering van $ , ` en \ . Die karakters $ en ` behou hul spesiale betekenis binne dubbele aanhalingstekens. Die terugslag behou slegs sy spesiale betekenis wanneer dit gevolg word deur een van die volgende karakters: $ , ` , ' , \ , of .' N Dubbelkwotasie kan in dubbele aanhalings aangehaal word deur dit met 'n terugslag te gee.

Die spesiale parameters * en @ het spesiale betekenis wanneer dit in dubbele aanhalings is (sien PARAMETERS hieronder).

Woorde van die vorm $ ' string ' word spesiaal behandel. Die woord brei uit na die tou , met terugslag-ontsnapte karakters vervang soos aangedui deur die ANSI C-standaard. Backslash escape sequences, indien teenwoordig, word soos volg gedekodeer:

\ n

waarskuwing (klok)

\ b

Back Space

\ e

'n ontsnapping karakter

\ f

vorm voer

\ N

nuwe lyn

\ r

vervoer terugkeer

\ t

horisontale oortjie

\ v

vertikale oortjie

\\

agteroorskuinsstreep

\ "

enkel kwotasie

\ nnn

die agt-bis karakter waarvan die waarde die oktale waarde is nnn (een tot drie syfers)

\ x HH

die agt-bis karakter waarvan die waarde die heksadesimale waarde HH is (een of twee heks syfers)

\ c x

'n beheer- x karakter

Die uitgebreide resultaat is enkel-aangehaal, asof die dollarteken nie teenwoordig was nie.

'N Dubbele gekwoteerde tou wat voorafgegaan word deur 'n dollar teken ( $ ), sal veroorsaak dat die tou volgens die huidige ligging vertaal word. As die huidige plek C of POSIX is , word die dollarsein geïgnoreer. As die tou vertaal en vervang word, is die vervanging dubbel gekwoteer.

GRENSE

'N Parameter is 'n entiteit wat waardes stoor. Dit kan 'n naam , 'n nommer of een van die spesiale karakters hieronder onder Spesiale Parameters wees . Vir die dop se doeleindes is 'n veranderlike 'n parameter aangedui met 'n naam . 'N Veranderlike het 'n waarde en nul of meer eienskappe . Eienskappe word toegeken deur gebruik te maak van die verklaarde ingeboude opdrag (sien hieronder in SHELL BUILTIN COMMANDS).

'N Parameter word gestel as dit 'n waarde toegeken is. Die nul-string is 'n geldige waarde. Sodra 'n veranderlike ingestel is, kan dit slegs afgeskakel word deur gebruik te maak van die unset builtin- opdrag (sien SHELL BUILTIN COMMANDS hieronder).

'N Verandering kan deur 'n verklaring van die vorm toegewys word

naam = [ waarde ]

As waarde nie gegee word nie, word die veranderlike toegeken aan die nul-string. Alle waardes word onderhewig aan uitbreiding, parameter en veranderlike uitbreiding, opdrag vervanging, rekenkundige uitbreiding, en kwotasie verwydering (sien UITBREIDING hieronder). As die veranderlike sy integer eienskap stel het, is die waarde onderhewig aan rekenkundige uitbreiding selfs al is die $ ((...)) uitbreiding nie gebruik nie (sien Aritmetiese uitbreiding hieronder). Word splitsing word nie uitgevoer nie, met die uitsondering van "$ @" soos hieronder onder Spesiale Parameters verduidelik . Padnaam uitbreiding word nie uitgevoer nie. Opdrag-stellings kan ook verskyn as argumente vir die verklaar- , tik- , uitvoer- , lees- en plaaslike ingeboude opdragte.

Posisionele Parameters

'N Posisionele parameter is 'n parameter aangedui met een of meer syfers, behalwe die enkelsyfer 0. Posisionele parameters word toegeken vanaf die skulp se argumente wanneer dit aangewend word, en kan weer toegewys word met behulp van die ingeboude opdrag. Posisionele parameters mag nie toegeken word met werkopdragte nie. Die posisionele parameters word tydelik vervang wanneer 'n dopfunksie uitgevoer word (sien FUNKSIES hieronder).

Wanneer 'n posisionele parameter wat bestaan ​​uit meer as 'n enkelsyfer, uitgebrei word, moet dit in braces ingehul word (sien UITBREIDING hieronder).

Spesiale Parameters

Die dop behandel verskeie parameters spesiaal. Hierdie parameters mag slegs verwys word; Opdrag vir hulle is nie toegelaat nie.

*

Brei na die posisionele parameters uit vanaf een. Wanneer die uitbreiding binne dubbele aanhalings plaasvind, brei dit uit na 'n enkele woord met die waarde van elke parameter geskei deur die eerste karakter van die IFS spesiale veranderlike. Dit beteken dat " $ * " gelykstaande is aan " $ 1 c $ 2 c ... ", waar c die eerste karakter van die waarde van die IFS- veranderlike is. As IFS afgeskakel is, word die parameters geskei deur spasies. As IFS nul is, word die parameters verbind sonder tussenposes van skeidings.

@

Brei na die posisionele parameters uit vanaf een. Wanneer die uitbreiding binne dubbele aanhalings plaasvind, brei elke parameter uit na 'n aparte woord. Dit beteken dat " $ @ " gelykstaande is aan " $ 1 " " $ 2 " ... As daar geen posisionele parameters is nie, word " $ @ " en $ @ na niks uitgebrei nie (dit wil sê, dit word verwyder).

#

Brei uit tot die aantal posisionele parameters in desimale.

?

Brei uit na die status van die mees onlangs uitgevoerde voorgrondpyplyn.

-

Brei na die huidige opsie vlae soos gespesifiseer by aanroeping, deur die stel ingeboude opdrag, of die wat deur die dop self gestel word (soos die -i opsie).

$

Uitbrei na die proses ID van die dop. In 'n () subskerm brei dit uit na die proses ID van die huidige dop, nie die subskerm nie.

!

Brei na die proses ID van die mees onlangse uitgevoer agtergrond (asynchrone) opdrag.

0

Uitbrei na die naam van die dop of dopsoort. Dit is ingestel op skulpinisialisering. As bash met 'n lêer van opdragte aangewend word, is $ 0 ingestel op die naam van daardie lêer. As bash met die -c- opsie begin word, word $ 0 gestel na die eerste argument nadat die string uitgevoer moet word, as een teenwoordig is. Andersins, is dit ingestel op die lêernaam wat gebruik word om bash aan te teken , soos gegee deur argument nul.

_

By opstart van die dop, stel die absolute lêernaam van die dop of dopsoort wat uitgevoer word soos geslaag in die argumentlys. Vervolgens brei na die vorige argument uit na die vorige opdrag, na uitbreiding. Stel ook op na die volledige lêernaam van elke opdrag uitgevoer en geplaas in die omgewing wat na die opdrag uitgevoer word. Wanneer u e-pos nagaan, hou hierdie parameter die naam van die e-pos lêer wat tans nagegaan word.

Shell Variables

Die volgende veranderlikes word deur die dop gestel:

bash

Uitbrei na die volledige lêernaam wat gebruik word om hierdie geval van bash te gebruik .

BASH_VERSINFO

'N Leeskeurige skikking veranderlike wie se lede weergawe inligting vir hierdie geval van bash bevat . Die waardes wat aan die skikkingslede toegewys is, is soos volg:

BASH_VERSINFO [ 0]

Die hoof weergawe nommer (die vrystelling ).

BASH_VERSINFO [ 1]

Die geringe weergawe nommer (die weergawe ).

BASH_VERSINFO [ 2]

Die pleistervlak.

BASH_VERSINFO [ 3]

Die bou weergawe.

BASH_VERSINFO [ 4]

Die vrystellingstatus (bv. Beta1 ).

BASH_VERSINFO [ 5]

Die waarde van MACHTYPE .

BASH_VERSION

Brei uit na 'n tou wat die weergawe van hierdie geval van bash beskryf .

COMP_CWORD

COMP_LINE

Die huidige opdrag lyn. Hierdie veranderlike is slegs beskikbaar in dopfunksies en eksterne opdragte wat deur die programmeerbare voltooiingsfasiliteite (kyk Programmeerbare voltooiing hieronder) aangevra word.

COMP_POINT

COMP_WORDS

'N Skikkingveranderlike (sien Skikkings hieronder) wat bestaan ​​uit die individuele woorde in die huidige opdraglyn. Hierdie veranderlike is slegs beskikbaar in dopfunksies wat deur die programmeerbare voltooiingsfasiliteite (kyk Programmeerbare voltooiing hieronder) gebruik word.

DIRSTACK

'N Skikkingveranderlike (sien Arrays hieronder) wat die huidige inhoud van die gidsstapel bevat. Gidse verskyn in die stapel in die volgorde waarin hulle vertoon word. Die toekenning aan lede van hierdie skikking veranderlike kan gebruik word om dopgehou wat reeds in die stapel is, te verander, maar die pushd en popd builtins moet gebruik word om dopgehou by te voeg en te verwyder. Opdrag vir hierdie veranderlike sal nie die huidige gids verander nie. As DIRSTACK uitgestel is, verloor dit sy spesiale eienskappe, al word dit weer gereset.

EUID

Uitbrei na die effektiewe gebruikers-ID van die huidige gebruiker, geïnisieer by die opstart van dop. Hierdie veranderlike is gelees.

funknaam

Die naam van enige huidiglik uitvoerende dopfunksie. Hierdie veranderlike bestaan ​​slegs wanneer 'n dopfunksie uitgevoer word. Opdragte na FUNCNAME het geen effek nie en gee 'n foutstatus terug. As FUNCNAME afgeskakel is, verloor dit sy spesiale eienskappe, al word dit weer gereset.

GROEPE

'N Skikkingveranderlike wat die lys bevat van groepe waarvan die huidige gebruiker 'n lid is. Opdragte vir GROEPE het geen effek nie en gee 'n foutstatus terug. As GROEPE ontkoppel word, verloor dit sy spesiale eienskappe, al word dit weer gereset.

HISTCMD

Die geskiedenis nommer, of indeks in die geskiedenislys, van die huidige opdrag. As HISTCMD is afgeskakel , verloor dit sy spesiale eienskappe, al word dit weer gereset.

HOSTNAME

Stel outomaties die naam van die huidige gasheer in.

HOSTTYPE

Stel outomaties op 'n tou wat die tipe masjien waarop die bash uitgevoer word, uniek beskryf. Die standaard is stelselafhanklik.

Lineno

Elke keer as hierdie parameter verwys word, vervang die dop 'n desimale getal wat die huidige opeenvolgende reëlnommer (begin met 1) binne 'n skrif of funksie verteenwoordig. Wanneer dit nie in 'n skrif of funksie is nie, word die waardevervanging nie gewaarborg om sinvol te wees nie. As LINENO uitgestel word, verloor dit sy spesiale eienskappe, selfs al word dit weer gereset.

MACHTYPE

Stel outomaties 'n tou wat die stelseltipe volledig beskryf op watter bash uitgevoer word, in die standaard GNU- cpu-maatskappy-stelselformaat . Die standaard is stelselafhanklik.

OLDPWD

Die vorige werkgids soos deur die cd- opdrag gestel.

OPTARG

Die waarde van die laaste opsie argument verwerk deur die getopts builtin opdrag (sien SHELL BUILTIN opdragte hieronder).

OPTIND

Die indeks van die volgende argument wat verwerk moet word deur die getopts builtin command (sien SHELL BUILTIN COMMANDS hieronder).

OSTYPE

Stel outomaties 'n string in wat die bedryfstelsel beskryf waarop die bash uitgevoer word. Die standaard is stelselafhanklik.

PIPESTATUS

'N Skikkingveranderlike (sien skikkings hieronder) bevat 'n lys van uitgangstatuswaardes van die prosesse in die mees onlangs uitgevoerde voorgrondpyplyn (wat slegs 'n enkele opdrag mag bevat).

PPID

Die proses ID van die dop se ouer. Hierdie veranderlike is gelees.

PWD

Die huidige werkgids soos deur die cd- opdrag gestel.

RANDOM

Elke keer as hierdie parameter verwys word, word 'n ewekansige getal tussen 0 en 32767 gegenereer. Die volgorde van ewekansige getalle kan geïnisieer word deur 'n waarde toe te ken aan RANDOM . As RANDOM is afgeskakel, verloor dit sy spesiale eienskappe, selfs al word dit weer gereset.

REPLY

Stel op die lyn van insette gelees deur die ingeboude ingeboude opdrag wanneer geen argumente verskaf word nie.

SEKONDES

Elke keer as hierdie parameter verwys word, word die aantal sekondes sedert die skulpaanroeping terugbesorg. As 'n waarde toegeken is aan SECONDS , is die waarde wat op die volgende verwysings teruggekeer is die aantal sekondes sedert die opdrag plus die toegewysde waarde. As SECONDS is afgeskakel, verloor dit sy spesiale eienskappe, selfs al word dit weer gereset.

SHELLOPTS

'N Colon-geskeide lys van geaktiveerde skulpopsies. Elke woord in die lys is 'n geldige argument vir die -O opsie vir die ingestelde ingeboude opdrag (sien SHELL BUILTIN COMMANDS hieronder). Die opsies wat in SHELLOPTS verskyn, is dié wat aangemeld is deur set -o . As hierdie veranderlike in die omgewing is wanneer bash begin, sal elke dop opsie in die lys aangeskakel word voordat enige opstartlêers gelees word. Hierdie veranderlike is slegs-leesbaar.

SHLVL

Elke keer word 'n voorbeeld van bash toegeneem.

UID

Uitbrei na die gebruikers ID van die huidige gebruiker, geïnisieer by die opstart van die dop. Hierdie veranderlike is gelees.

Die volgende veranderlikes word deur die dop gebruik. In sommige gevalle gee bash 'n verstekwaarde aan 'n veranderlike toe. Hierdie gevalle word hieronder genoem.

BASH_ENV

As hierdie parameter gestel word wanneer bash 'n dopsoort uitvoer, word die waarde daarvan geïnterpreteer as 'n lêernaam met instruksies om die dop te initialiseer, soos in ~ / .bashrc . Die waarde van BASH_ENV word onderworpe aan parameteruitbreiding, bevelvervanging en rekenkundige uitbreiding voordat dit as 'n lêernaam geïnterpreteer word. PATH word nie gebruik om die resulterende lêernaam te soek nie.

CDPATH

Die soekpad vir die cd- opdrag. Dit is 'n kolon geskeide lys van dopgehou waarin die dop vir bestemmingsgidse soek wat deur die cd- opdrag gespesifiseer word. 'N Voorbeeldwaarde is ".: ~: / Usr".

KOLOMME

Gebruik deur die gekose ingeboude opdrag om die terminale breedte te bepaal wanneer u keuringslyste druk. Stel outomaties by ontvangs van 'n SIGWINCH.

COMPREPLY

'N Skikkingveranderlike waaruit bash die moontlike voltooiings wat gegenereer word deur 'n dopfunksie wat deur die programmeerbare voltooiingsfasiliteit aangevra word, lees (sien Programmeerbare voltooiing hieronder).

FCEDIT

Die verstek redakteur vir die fc builtin bevel.

FIGNORE

'N Colon-geskeide lys van agtervoegsels om te ignoreer wanneer die lêernaam voltooi word (sien LEERLYS hieronder). 'N Leêrnaam waarvan die agtervoegsel ooreenstem met een van die inskrywings in FIGNORE, word uitgesluit van die lys van ooreenstemmende lêername. 'N Monsterwaarde is ".o: ~".

GLOBIGNORE

'N Kolon geskeide lys van patrone wat die stel lêername definieer wat geïgnoreer word deur die uitbreiding van padnaam. As 'n lêernaam wat ooreenstem met 'n padnaamuitbreidingspatroon , ook een van die patrone in GLOBIGNORE pas , word dit uit die lys van vuurhoutjies verwyder.

HISTCONTROL

As dit 'n waarde van onkunde is , word lyne wat met 'n spasie- karakter begin, nie in die geskiedenislys ingevoer nie. As ingestel op 'n waarde van ignoredups , word lyne wat ooreenstem met die vorige geskiedenislyn nie ingevoer nie. 'N waarde van ignoreboth kombineer die twee opsies. As dit nie ingestel is nie, of indien dit op enige ander waarde as dié hierbo gestel is, word alle lyne wat deur die parser gelees word, op die geskiedenislys gestoor, onderhewig aan die waarde van HISTIGNORE . Hierdie veranderlike se funksie word vervang deur HISTIGNORE . Die tweede en daaropvolgende lyne van 'n multi-lyn saamgestelde opdrag word nie getoets nie, en word bygevoeg aan die geskiedenis ongeag die waarde van HISTCONTROL .

HISTFILE

Die naam van die lêer waarin bevelgeskiedenis gestoor word (sien GESKIEDENIS hieronder). Die verstekwaarde is ~ / .bash_history . As dit nie ingestel is nie, word die opdraggeskiedenis nie gestoor wanneer 'n interaktiewe skulp uitgaan nie.

HISTFILESIZE

Die maksimum aantal lyne in die geskiedenislêer. Wanneer hierdie veranderlike 'n waarde toegeken is, word die geskiedenislêer afgeknip, indien nodig, nie meer as daardie aantal lyne bevat nie. Die verstekwaarde is 500. Die geskiedenislêer word ook na hierdie grootte afgeknip nadat dit geskryf is wanneer 'n interaktiewe skulp verlaat.

HISTIGNORE

'N Colon-geskeide lys van patrone wat gebruik word om te besluit watter opdrag lyne op die geskiedenislys gestoor moet word. Elke patroon word aan die begin van die lyn geanker en moet die volledige lyn pas (geen implisiete ` * 'is bygevoeg nie). Elke patroon word getoets teen die lyn nadat die tjeks wat deur HISTCONTROL gespesifiseer is, toegepas word. Bykomend tot die normale skulppatroon-ooreenstemmende karakters, kom ` & 'ooreen met die vorige geskiedenislyn. ` & 'kan ontsnap word deur 'n terugslag te gebruik; die terugslag word verwyder voordat 'n wedstryd aangepak word. Die tweede en daaropvolgende lyne van 'n multi-lyn saamgestelde opdrag word nie getoets nie, en word bygevoeg aan die geskiedenis ongeag die waarde van HISTIGNORE .

HISTSIZE

Die aantal instruksies om in die opdraggeskiedenis te onthou (sien GESKIEDENIS hieronder). Die verstekwaarde is 500.

HOME

Die tuisgids van die huidige gebruiker; die standaard argument vir die cd ingeboude opdrag. Die waarde van hierdie veranderlike word ook gebruik wanneer die uitbreiding van die teël uitgevoer word.

HOSTFILE

Bevat die naam van 'n lêer in dieselfde formaat as / etc / hosts wat gelees moet word wanneer die dop 'n gasheernaam moet voltooi. Die lys van moontlike voltooide hostname kan verander word terwyl die dop hardloop; Die volgende keer word die voltooiing van die hostnaam gepoog nadat die waarde verander is. Bash voeg die inhoud van die nuwe lêer by die bestaande lys toe. As HOSTFILE ingestel is, maar geen waarde het nie, probeer ons om die / etc / hosts te lees om die lys van moontlike voltooide hostname te kry. Wanneer HOSTFILE is afgeskakel , word die lys van host name skoongemaak.

IFS

Die interne veldafskeider wat gebruik word vir die splitsing van woorde na uitbreiding en om lyne in woorde te verdeel met die lees- ingeboude opdrag. Die verstekwaarde is `` ''.

IGNOREEOF

Beheer die werking van 'n interaktiewe dop op die ontvangs van 'n EOF- karakter as die enigste inset. As ingestel, is die waarde die aantal opeenvolgende EOF karakters wat getik moet word as die eerste karakters op 'n invoerlyn voor bash- uitgange. As die veranderlike bestaan, maar nie 'n numeriese waarde het nie, of geen waarde het nie, is die standaardwaarde 10. As dit nie bestaan ​​nie, beteken EOF die einde van die inset by die dop.

INPUTRC

Die lêernaam vir die leeslyn-opstartlêer , wat die standaard van ~ / .inputrc oorheers (sien READLINE hieronder).

LANG

Gebruik om die plaaslike kategorie te bepaal vir enige kategorie wat nie spesifiek gekies is met 'n veranderlike wat met LC_ begin nie .

LC_ALL

Hierdie veranderlike oortree die waarde van LANG en enige ander LC_- veranderlike wat 'n plaaslike kategorie spesifiseer.

LC_COLLATE

Hierdie veranderlike bepaal die sorterings volgorde wat gebruik word wanneer die resultate van die uitbreiding van padnaam gesorteer word, en bepaal die gedrag van reeksuitdrukkings, ekwivalentieklasse en versamelingsreekse binne padnaamuitbreiding en patroonpassing.

LC_CTYPE

Hierdie veranderlike bepaal die interpretasie van karakters en die gedrag van karakterklasse binne padnaam uitbreiding en patroon ooreenstem.

LC_MESSAGES

Hierdie veranderlike bepaal die lokaal wat gebruik word om dubbele genoteerde stringe te vertaal, voorafgegaan deur 'n $ .

LC_NUMERIC

Hierdie veranderlike bepaal die plaaslike kategorie wat gebruik word vir getalformatering.

LINES

Gebruik deur die gekose ingeboude opdrag om die kolomlengte te bepaal vir die druk van keuringslyste. Stel outomaties by ontvangs van 'n SIGWINCH.

POS

As hierdie parameter op 'n lêernaam is ingestel en die MAILPATH- veranderlike nie ingestel is nie, stel bash die gebruiker in kennis van die aankoms van die pos in die gespesifiseerde lêer.

Mail Check

Spesifiseer hoe gereeld (in sekondes) vlugkontrole vir e-pos gaan. Die verstek is 60 sekondes. Wanneer dit tyd is om na pos te kyk, doen die dop dit voordat die primêre prompt vertoon word. As hierdie veranderlike ongeskakel is, of ingestel is op 'n waarde wat nie 'n getal is wat groter is as of gelyk aan nul nie, word die e-poskontrole gedeaktiveer.

MAILPATH

'N Colon-geskeide lys van lêername wat nagegaan moet word vir pos. Die boodskap wat gedruk moet word wanneer pos in 'n spesifieke lêer kom, kan gespesifiseer word deur die lêernaam van die boodskap te skei met 'n `? '. Wanneer dit in die teks van die boodskap gebruik word, word $ _ uitgebrei na die naam van die huidige poslêer. voorbeeld:

MAILPATH = '/ var / mail / bfox? "Jy het e-pos": ~ / shell-mail? "$ _ Het pos!"'

Bash verskaf 'n verstekwaarde vir hierdie veranderlike, maar die ligging van die gebruikersposlêers wat dit gebruik, is stelselafhanklik (bv. / Var / mail / $ USER ).

OPTERR

As ingestel op die waarde 1, vertoon bash foutboodskappe wat gegenereer word deur die getopts builtin- opdrag (sien SHELL BUILTIN COMMANDS hieronder). OPTERR word geïnitialiseer tot 1 elke keer wanneer die dop aangevra word of 'n dopsoort word uitgevoer.

PATH

Die soekpad vir opdragte. Dit is 'n kolon geskeide lys van dopgehou waarin die dop vir opdragte kyk (sien COMMAND EXECUTION hieronder). Die standaardpad is stelselafhanklik en word deur die administrateur wat bash installeer, ingestel. 'N Algemene waarde is `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :.' '.

POSIXLY_CORRECT

As hierdie veranderlike in die omgewing is wanneer bash begin, gaan die dop in posix af voordat die opstartlêers gelees word, asof die --posix-aanroepopsie verskaf is. As dit ingestel word terwyl die dop hardloop, kan bash posix-modus aktiveer, asof die opdrag stel -of posix uitgevoer is.

PROMPT_COMMAND

As ingestel, word die waarde uitgevoer as 'n opdrag voordat elke primêre prompt uitgereik word.

PS1

Die waarde van hierdie parameter is uitgebrei (sien PROMPTING hieronder) en gebruik as die primêre sneltrajek . Die verstekwaarde is `` \ s- \ v \ $ ''.

PS2

Die waarde van hierdie parameter word uitgebrei soos met PS1 en word gebruik as die sekondêre promptstring. Die standaard is `` > ''.

PS3

Die waarde van hierdie parameter word gebruik as die aansporing vir die kiesopdrag (sien SHELL GRAMMAR hierbo).

PS4

Die waarde van hierdie parameter word uitgebrei soos met PS1 en die waarde word gedruk voordat elke bevelskerm vertoon word tydens 'n uitvoeringspoor. Die eerste karakter van PS4 word herhaaldelik gerepliseer, soos nodig, om verskeie vlakke van indireksie aan te dui. Die standaard is `` + ''.

TIMEFORMAT

Die waarde van hierdie parameter word gebruik as 'n snaarreeks wat spesifiseer hoe die tydinligting vir pyplyne vooraf met die tydreserwe woord vertoon moet word. Die % karakter stel 'n ontsnapvolgorde bekend wat uitgebrei word na 'n tydwaarde of ander inligting. Die ontsnapvolgorde en hul betekenisse is soos volg; die braces dui opsionele gedeeltes aan.

%%

'N letterlike % .

% [ p ] [l] R

Die verloop van tyd in sekondes.

% [ p ] [l] U

Die aantal SVE sekondes wat in die gebruikersmodus bestee is.

% [ p ] [l] S

Die aantal SVE sekondes wat in stelselmodus bestee word.

% P

Die persentasie van die SVE, bereken as (% U +% S) /% R.

Die opsionele p is 'n syfer wat die presisie , die getal breuke syfers na 'n desimale punt spesifiseer. 'N waarde van 0 veroorsaak geen desimale punt of breuk wat uitset moet word nie. Hoogstens drie plekke nadat die desimale punt gespesifiseer kan word; waardes van p groter as 3 word verander na 3. As p nie gespesifiseer word nie, word die waarde 3 gebruik.

Die opsionele l spesifiseer 'n langer formaat, insluitende minute, van die vorm MM m SS . VF s. Die waarde van p bepaal of die breuk ingesluit is of nie.

As hierdie veranderlike nie gestel is nie, tree bash op asof dit die waarde $ '\ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS' gehad het . As die waarde nul is, word geen tydinligting vertoon nie. 'N Trailing newline word bygevoeg wanneer die formaat string vertoon word.

TMOUT

As ingestel op 'n waarde groter as nul, word TMOUT behandel as die standaard time-out vir die lees- ingeboude. Die kiesopdrag eindig as insette nie na TMOUT sekondes arriveer wanneer insette van 'n terminaal af kom nie. In 'n interaktiewe dop word die waarde geïnterpreteer as die aantal sekondes om te wag vir insette nadat die primêre prompt uitgereik is. Bash beëindig nadat die aantal sekondes gewag het as insette nie aankom nie.

auto_resume

Hierdie veranderlike beheer hoe die dop in wisselwerking met die gebruiker en werk beheer. As hierdie veranderlike ingestel is, word enkele woord eenvoudige opdragte sonder herleidings behandel as kandidate vir die hervatting van 'n bestaande gestopte werk. Daar is geen dubbelsinnigheid toegelaat nie; As daar meer as een werk is wat met die snaar getik word, word die mees onlangse werk gekies. Die naam van 'n gestopte werk, in hierdie konteks, is die opdrag wat gebruik word om dit te begin. As die waarde presies gestel word , moet die string wat verskaf word presies ooreenstem met die naam van 'n gestopte werk. As dit ingestel is op substring , moet die toevoer wat verskaf word, 'n substring van die naam van 'n gestopte werk pas. Die substring waarde bied funksionaliteit analoog aan die %? pos identifiseerder (sien JOB CONTROL hieronder). As dit aan enige ander waarde gestel word, moet die verskafde string 'n voorvoegsel van 'n gestopte werk se naam wees; Dit bied funksionaliteit wat analoog is aan die % werksidentifikasie.

histchars

Die twee of drie karakters wat die geskiedenisuitbreiding en tokenning beheer (sien GESKIEDENIS-UITBREIDING hieronder). Die eerste karakter is die geskiedenis uitbreiding karakter, die karakter wat die begin van 'n geskiedenis uitbreiding, gewoonlik ` ! '. Die tweede karakter is die vinnige substitusieteken , wat as kortskrif gebruik word om die vorige opdrag wat weer ingevoer is, weer in te voer, en een string vir die ander in die opdrag te vervang. Die verstek is ` ^ '. Die opsionele derde karakter is die karakter wat aandui dat die res van die reël 'n kommentaar is wanneer dit as die eerste karakter van 'n woord voorkom, gewoonlik ` # '. Die geskiedenis kommentaar karakter veroorsaak dat geskiedenis vervanging oorgeslaan word vir die oorblywende woorde op die lyn. Dit veroorsaak nie noodwendig dat die doppersoon die res van die lyn as 'n opmerking behandel nie.

skikkings

Bash bied een-dimensionele skikking veranderlikes. Enige veranderlike mag as 'n skikking gebruik word; die verklaar ingeboude sal 'n skikking uitdruklik verklaar. Daar is geen maksimum limiet op die grootte van 'n skikking, of enige vereiste dat lede geïndekseer of toegewys word nie. Skikkings word geïndekseer met heelgetalle en is op nul gebaseer.

'N Skikking word outomaties geskep indien enige veranderlike toegeskryf word aan die gebruik van die sintaksnaam [ subscript ] = waarde . Die subskripsie word behandel as 'n rekenkundige uitdrukking wat moet evalueer na 'n getal groter as of gelyk aan nul. Om 'n skikking uitdruklik te verklaar, gebruik verklaar -a naam (sien SHELL BUILTIN COMMANDS hieronder). verklaar -'n naam [ subskripsie ] word ook aanvaar; die subskripsie word geïgnoreer. Eienskappe kan gespesifiseer word vir 'n skikkingveranderlike met behulp van die verklaar en leesbaar gebou. Elke kenmerk is van toepassing op alle lede van 'n skikking.

Skikkings word toegeskryf aan die gebruik van saamgestelde opdragte van die vorm naam = ( waarde 1 ... waarde n ) , waar elke waarde van die vorm [ subscript ] = string is . Slegs string is nodig. As die opsionele hakies en subskripsie verskaf word, word daardie indeks toegeskryf aan; anders is die indeks van die toegewezen element die laaste indeks wat deur die stelling plus een toegeken word. Indeksering begin teen nul. Hierdie sintaks word ook aanvaar deur die verklaar ingeboude. Individuele skikking elemente kan toegeskryf word aan die gebruik van die naam [ subscript ] = value syntax wat hierbo geïntroduceerd word.

Die unset builtin word gebruik om skikkings te vernietig. Onbeperkte naam [ Subskripsie ] vernietig die skikking element by indeks Subskripsie . unset naam , waar die naam 'n skikking is of 'n unset naam [ subskripsie ], waar subskripsie * of @ is , verwyder die hele skikking.

Die verklaar , lokaal , en leesbaar gebou word elk aanvaar a -a opsie om 'n skikking te spesifiseer. Die ingeboude ingeboude aanvaar a -a opsie om 'n lys woorde wat vanaf die standaard insette na 'n skikking gelees word, toe te ken. Die stel en verklaar ingeboude skerm waardes op 'n manier wat hulle toelaat om as opdragte hergebruik te word.

UITBREIDING

Uitbreiding word uitgevoer op die opdraglyn nadat dit in woorde verdeel is. Daar is sewe soorte uitbreiding uitgevoer: stut uitbreiding , teël uitbreiding , parameter en veranderlike uitbreiding , opdrag vervanging , rekenkundige uitbreiding , woord splitsing , en padnaam uitbreiding .

Die uitbreidingsvolgorde is: uitbreiding van brace, tilde uitbreiding, parameter-, veranderlike en rekenkundige uitbreiding en opdragsvervanging (links-na-regs gedoen), woordverdeling en uitbreiding van padnaam.

Op stelsels wat dit kan ondersteun, is daar 'n bykomende uitbreiding beskikbaar: prosesvervanging .

Brace Uitbreiding

Brace uitbreiding is 'n meganisme waardeur arbitrêre snare gegenereer kan word. Hierdie meganisme is soortgelyk aan die uitbreiding van die padnaam , maar die lêername wat gegenereer word, hoef nie te bestaan ​​nie. Patrone om uit te brei, neem die vorm van 'n opsionele aanhef , gevolg deur 'n reeks kommas geskeide snare tussen 'n paar kouse, gevolg deur 'n opsionele postskrif . Die aanhef word voorafgegaan aan elke snaar wat in die hakies voorkom, en die postskrif word dan by elke gevolglike string gevoeg, en links na regs uitgebrei.

Brace uitbreidings kan geneste word. Die resultate van elke uitgebreide string word nie gesorteer nie; links na regs orde is behou. Byvoorbeeld, 'n { d, c, b } e brei uit in `ade ace abe '.

Brace uitbreiding word uitgevoer voor enige ander uitbreidings, en enige karakters spesiaal vir ander uitbreidings word in die uitslag behou. Dit is streng tekstuele. Bash pas nie 'n sintaktiese interpretasie toe op die konteks van die uitbreiding of die teks tussen die hakies nie.

Hierdie konstruksie word tipies as korthand gebruik as die algemene voorvoegsel van die snare wat gegenereer word, langer is as in die bostaande voorbeeld:

mkdir / usr / local / src / bash / (ou, nuut, dist, foute)

of

hoofwortel /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

Brace uitbreiding stel 'n geringe onverenigbaarheid met historiese weergawes van sh voor . sh behandel nie openings- of sluitingstutjies spesiaal wanneer dit as deel van 'n woord voorkom nie, en behou hulle in die uitset. Bash verwyder braces uit woorde as gevolg van brace uitbreiding. Byvoorbeeld, 'n woord wat ingevoer word na sh, aangesien lêer {1,2} identies in die uitset verskyn. Dieselfde woord is uitvoer as lêer1 file2 na uitbreiding deur bash . As streng verenigbaarheid met sh verlang word, begin bash met die + B opsie of skakel die uitbreiding van die brace uit met die + B opsie na die ingestelde opdrag (sien SHELL BUILTIN COMMANDS hieronder).

Tilde Uitbreiding

As 'n woord begin met 'n ongekende tegelkarakter (` ~ '), word al die karakters wat voor die eerste onbenoteerde snystreep (of al die karakters, indien daar nie 'n ongekende streep is nie) beskou as 'n tilde-voorvoegsel . As geen van die karakters in die tode-voorvoegsel aangehaal word nie, word die karakters in die tode-voorvoegsel wat die tilde volg, behandel as 'n moontlike aanmeldnaam . As hierdie aanmeldnaam die nul-string is, word die tilde vervang met die waarde van die dopparameter HOME . As HOME is uitgestel, word die tuisgids van die gebruiker wat die dop uitvoer, vervang in plaas daarvan. Andersins word die tode-voorvoegsel vervang met die tuisgids wat verband hou met die gespesifiseerde aanmeldnaam.

As die tilde-voorvoegsel 'n `~ 'is, vervang die waarde van die skulpveranderlike PWD die tilde-voorvoegsel. As die tilde-voorvoegsel 'n `~ 'is, word die waarde van die skulpveranderlike OLDPWD , indien dit ingestel is, vervang. As die karakters wat die tilde in die tode-voorvoegsel volg, bestaan ​​uit 'n getal N , wat moontlik deur 'n `+ 'of' - 'voorkom, word die tilde-voorvoegsel vervang met die ooreenstemmende element uit die gidsstapel, soos dit vertoon sal word deur die dars gebouin aangevoer met die tilde-voorvoegsel as 'n argument. As die karakters wat die tilde in die tode-voorvoegsel volg, bestaan ​​uit 'n nommer sonder 'n leidende `+ 'of` -', word '+' aanvaar.

As die aanmeldnaam ongeldig is, of die tilde-uitbreiding misluk, is die woord onveranderd.

Elke veranderlike opdrag word nagegaan vir ongekende tilde-voorvoegsels wat onmiddellik volg a : of = . In hierdie gevalle word tegeluitbreiding ook uitgevoer. Gevolglik kan mens lêername gebruik met tildes in opdragte na PATH , MAILPATH en CDPATH , en die dop gee die uitgebreide waarde toe.

Parameter Uitbreiding

Die ` $ '-karakter stel parameteruitbreiding, opdrag vervanging of rekenkundige uitbreiding voor. Die parameternaam of simbool wat uitgebrei word, mag in braces ingesluit word, wat opsioneel is, maar dien om die veranderlike te beskerm wat uitgebrei word uit karakters wat dadelik daarop volg, wat as deel van die naam geïnterpreteer kan word.

Wanneer braces gebruik word, is die ooreenstemmende eindstut die eerste `` 'nie ontsnap deur 'n terugslag of binne 'n gekwoteerde string nie, en nie binne 'n ingeboude rekenkundige uitbreiding, opdragvervanging of parameteruitbreiding nie.

Die waarde van die parameter word vervang. Die hakies word benodig wanneer die parameter 'n posisionele parameter is met meer as een syfer, of wanneer die parameter gevolg word deur 'n karakter wat nie as deel van sy naam geïnterpreteer moet word nie.

In elk van die onderstaande gevalle is woord onderhewig aan uitbreiding, parameteruitbreiding, opdrag vervanging en rekenkundige uitbreiding. Wanneer nie substringuitbreiding uitgevoer word nie, bash toetse vir 'n parameter wat nie ingestel is nie of nul; om die kolon resultate uit te laat in 'n toets slegs vir 'n parameter wat ontbind is.

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 . Die waarde van die parameter word dan vervang. Posisionele parameters en spesiale parameters mag nie op hierdie wyse toegewys word nie.

Vertoon fout as Null of Unset . As die parameter nul of unset is, word die uitbreiding van die woord (of 'n boodskap daartoe as 'n woord nie teenwoordig is nie) na die standaardfout en die dop geskryf, as dit nie interaktief is nie, uitgange. Andersins word die waarde van die parameter vervang.

Gebruik alternatiewe waarde . As parameter nul of unset is, word niks vervang nie, anders word die uitbreiding van woord vervang.

Vergroot na die name van veranderlikes wie se name begin met voorvoegsel , geskei deur die eerste karakter van die IFS spesiale veranderlike.

Die lengte in karakters van die waarde van die parameter word vervang. As parameter * of @ is , is die waarde gesubstitueer die aantal posisionele parameters. As parameter 'n skikking naam is wat deur * of @ onderskryf word, is die waarde gesubstitueer die aantal elemente in die skikking.

Die woord word uitgebrei om 'n patroon te produseer, net soos in die uitbreiding van die padnaam. As die patroon ooreenstem met die begin van die waarde van die parameter , is die resultaat van die uitbreiding die uitbreide waarde van die parameter met die kortste paspatroon (die `` # '' geval) of die langste paspatroon (die `` ## ' 'geval) verwyder. As parameter @ of * is , word die patroonverwyderingsoperasie op elke posisionele parameter toegepas, en die uitbreiding is die gevolglike lys. As parameter 'n skikkingveranderlike is wat met @ of * onderskryf word, word die patroonverwyderingsoperasie op elke lid van die skikking toegepas en die uitbreiding is die gevolglike lys.

Die woord word uitgebrei om 'n patroon te produseer, net soos in die uitbreiding van die padnaam. As die patroon ooreenstem met 'n agterste gedeelte van die uitgebreide waarde van die parameter , is die uitkoms van die uitbreiding die uitbreide waarde van die parameter met die kortste paspatroon (die `` % '' geval) of die langste paspatroon (die `` % % '' geval) verwyder. As parameter @ of * is , word die patroonverwyderingsoperasie op elke posisionele parameter toegepas, en die uitbreiding is die gevolglike lys. As parameter 'n skikkingveranderlike is wat met @ of * onderskryf word, word die patroonverwyderingsoperasie op elke lid van die skikking toegepas en die uitbreiding is die gevolglike lys.

Die patroon word uitgebrei om 'n patroon te produseer, net soos in die uitbreiding van die padnaam. Parameter word uitgebrei en die langste patroonpatroon teen sy waarde word vervang met string . In die eerste vorm word slegs die eerste wedstryd vervang. Die tweede vorm veroorsaak dat alle patrone van die patroon vervang word met 'n tou . As die patroon begin met # , moet dit ooreenstem met die begin van die uitgebreide waarde van die parameter . As die patroon begin met % , moet dit ooreenstem met die einde van die uitgebreide waarde van die parameter . As die string nul is, word patrone van patroon uitgevee en die volgende patroon mag weggelaat word. As parameter @ of * is , word die vervangingsoperasie op elke posisionele parameter toegepas, en die uitbreiding is die gevolglike lys. As parameter 'n skikkingveranderlike is wat met @ of * onderskryf word, word die vervangingsoperasie op elke lid van die skikking toegepas en die uitbreiding is die gevolglike lys.

Command Substitution

Command substitution laat die uitvoer van 'n opdrag toe om die bevelnaam te vervang. Daar is twee vorme:

$ ( opdrag )

of

` opdrag`

Bash voer die uitbreiding uit deur bevel te doen en die instruksies vervang met die standaard uitvoer van die opdrag, met enige latere nuwe lyne verwyder. Ingeboude nuwe lyne word nie uitgevee nie, maar hulle kan verwyder word tydens woordverdeling. Die opdrag vervanging $ (kat lêer ) kan vervang word met die ekwivalent maar vinniger $ (< lêer ).

Wanneer die ou-styl-terugquote-vorm van substitusie gebruik word, behou die terugslag sy letterlike betekenis, behalwe wanneer dit gevolg word deur $ , ` , of \ . Die eerste backquote wat nie voorafgegaan word deur 'n terugslag, beëindig die opdrag vervanging. Wanneer u die $ ( opdrag ) vorm gebruik, maak al die karakters tussen die hakies die opdrag uit; Niemand word spesiaal behandel nie.

Kommandosubstitusies kan geneste wees. Om te nes wanneer die teruggetekende vorm gebruik word, ontsnap die binneste terugkwotasies met terugslag.

As die vervanging binne dubbele aanhalings voorkom, word die verdeling van woordverdeling en padnaam nie op die resultate uitgevoer nie.

Rekenkundige uitbreiding

Rekenkundige uitbreiding kan die evaluering van 'n rekenkundige uitdrukking en die vervanging van die uitslag. Die formaat vir rekenkundige uitbreiding is:

$ (( uitdrukking ))

Die uitdrukking word behandel asof dit binne dubbele aanhalings was, maar 'n dubbele aanhaling in die hakies word nie spesiaal behandel nie. Alle tokens in die uitdrukking ondergaan parameter uitbreiding, string uitbreiding, opdrag vervanging, en kwotasie verwydering. Rekenkundige substitusies kan genesteer word.

Die evaluering word uitgevoer volgens die onderstaande reëls onder ARITHMETIC EVALUATION . As uitdrukking ongeldig is, druk bash ' n boodskap wat die mislukking aandui en geen vervanging vind plaas nie.

Prosesvervanging

Prosesvervanging word ondersteun op stelsels wat die genoemde pype ( EIEU's ) of die / dev / fd- metode gebruik om oop lêers te benoem. Dit neem die vorm van <( lys ) of > ( lys ) . Die proseslys word uitgevoer met sy insette of uitset gekoppel aan 'n EIEU of 'n lêer in / dev / fd . Die naam van hierdie lêer is geslaag as argument vir die huidige opdrag as gevolg van die uitbreiding. As die > ( lys ) vorm gebruik word, sal die skryf van die lêer insette vir die lys verskaf . As die <( lys ) vorm gebruik word, moet die lêer geslaag word as 'n argument gelees moet word om die uitset van die lys te verkry .

As dit beskikbaar is, word prosesvervanging gelyktydig uitgevoer met parameter- en veranderlike uitbreiding, opdrag vervanging en rekenkundige uitbreiding.

Woordversplintering

Die dop skandeer die resultate van parameteruitbreiding, opdrag vervanging, en rekenkundige uitbreiding wat nie binne dubbele aanhalings vir woordverdeling plaasgevind het nie .

Die dop behandel elke karakter van IFS as 'n delimiter en verdeel die resultate van die ander uitbreidings in woorde op hierdie karakters. As IFS is afgeskakel of die waarde daarvan is presies , die standaard, dan word enige volgorde van IFS karakters gebruik om woorde te definieer. As IFS n ander waarde as die standaard het, word die reekse van die ruimteruimte en die oortjie in die witruimte aan die begin en einde van die woord geïgnoreer, solank die witkarakterkarakter in die waarde van IFS ('n IFS- witkarakter) is. Enige karakter in IFS wat nie IFS witruimte is nie, tesame met enige aangrensende IFS- witkarakters, verdeel 'n veld. 'N Volgorde van IFS- witkarakters word ook as 'n delimiter behandel. As die waarde van IFS nul is, vind geen woordverdeling plaas nie.

Explicit null arguments ( "" of '' ) word behou. Ongekwoteerde implisiete nul-argumente, as gevolg van die uitbreiding van parameters wat geen waardes het nie, word verwyder. As 'n parameter met geen waarde binne dubbele aanhalings uitgebrei word nie, word 'n nul-argument gevolg en word dit behou.

Let daarop dat indien geen uitbreiding plaasvind, geen splitsing uitgevoer word nie.

Padnaam Uitbreiding

Na die splitsing van woorde, tensy die -f opsie ingestel is, skop bash elke woord vir die karakters * ,? , en [ . As een van hierdie karakters verskyn, word die woord as 'n patroon beskou , en vervang met 'n alfabeties gesorteer lys van lêernaam wat ooreenstem met die patroon. As daar geen ooreenstemmende lêernaam is nie, en die dop opsie nullglob is gedeaktiveer, word die woord onveranderd gelaat. As die opsie nullglob is ingestel en geen resultate word gevind nie, word die woord verwyder. As die Shell-opsie nocaseglob aangeskakel is, word die wedstryd uitgevoer sonder inagneming van die geval van alfabetiese karakters. Wanneer 'n patroon gebruik word vir die uitbreiding van die padnaam, moet die karakter ``. '' Aan die begin van 'n naam of onmiddellik na 'n skuinsstreep eksplisiet vergelyk word, tensy die dopglob vir dopopsies ingestel is. Wanneer 'n padnaam ooreenstem, moet die skuinskarakter altyd eksplisiet ooreenstem. In ander gevalle word die `` .''- karakter nie spesiaal behandel nie. Sien die beskrywing hieronder onder SHELL BUILTIN COMMANDS vir 'n beskrywing van die nocaseglob , nullglob en dotglob shell opsies.

Die GLOBIGNORE-skilveranderlike kan gebruik word om die stel lêername te beperk wat ooreenstem met 'n patroon . As GLOBIGNORE ingestel is, word elke ooreenstemmende lêernaam wat ook ooreenstem met een van die patrone in GLOBIGNORE , verwyder uit die lys van vuurhoutjies. Die lêernaam ``. '' En `` .. '' word altyd geïgnoreer, selfs wanneer GLOBIGNORE ingestel is. Die instelling van GLOBIGNORE het egter die moontlikheid om die dotglob shell opsie te aktiveer , sodat alle ander lêername wat begin met 'n ``. '' Ooreenstem. Om die ou gedrag te verkry om lêername te ignoreer wat begin met 'n ``. '' , Maak ``. * '' Een van die patrone in GLOBIGNORE . Die opsie vir dotglob is gedeaktiveer wanneer GLOBIGNORE is afgeskakel.

Patroon Matching

Enige karakter wat in 'n patroon verskyn, behalwe die spesiale patroonkarakters wat hieronder beskryf word, pas by homself. Die NUL-karakter mag nie in 'n patroon voorkom nie. Die spesiale patroon karakters moet aangehaal word as hulle letterlik ooreenstem.

Die spesiale patroon karakters het die volgende betekenisse:

*

Pas enige string, insluitend die nul-string.

?

Pas enige enkele karakter aan.

[...]

Pas enige van die ingeslote karakters by. 'N Paar karakters wat deur 'n koppelteken geskei word, dui op 'n reeks uitdrukking ; enige karakter wat tussen die twee karakters sorteer, insluitend die gebruik van die koördineervolgorde en karakterstel van die huidige plek, word ooreenstem. As die eerste karakter wat die [ is 'n ! of 'n ^ word enige karakter wat nie ingesluit is nie, ooreenstem. Die sorteervolgorde van karakters in reeksuitdrukkings word bepaal deur die huidige plek en die waarde van die LC_COLLATE-skaalveranderlike , indien ingestel. A - kan ooreenstem deur dit as die eerste of laaste karakter in die stel in te sluit. A ] kan ooreenstem deur dit as die eerste karakter in die stel in te sluit.

Binne [ en ] kan karakters klassifiseer deur gebruik te maak van die sintaksis [: klas :] , waar die klas een van die volgende klasse is wat in die POSIX.2 standaard gedefinieer is:

alnum alfa ascii leë cntrl syfergrafiek laer druk punctruimte boonste woord xdigit
'N Karakterklas pas by enige karakter wat aan daardie klas behoort. Die woordkarakterklas pas letters, syfers en die karakter _.

Binne [ en ] kan 'n ekwivalentieklas gespesifiseer word met die sintaksis [= c =] , wat ooreenstem met alle karakters met dieselfde collasiegewig (soos gedefinieer deur die huidige plek) as die karakter c .

Binne [ en ] , die sintaksis [. simbool .] pas by die versamel simbool simbool .

As die extglob- dop opsie geaktiveer word met behulp van die shopt ingeboude, word verskeie uitgebreide patroon ooreenstemmende operateurs herken. In die volgende beskrywing is 'n patroonlys 'n lys van een of meer patrone geskei deur 'n | . Saamgestelde patrone kan gevorm word deur een of meer van die volgende subpatrone te gebruik:

? ( patroonlys )

Vergelyk nul of een voorkoms van die gegewe patrone

* ( patroonlys )

Vergelyk nul of meer voorkoms van die gegewe patrone

+ ( patroonlys )

Pas een of meer voorkoms van die gegewe patrone aan

@ ( patroonlys )

Pas presies een van die gegewe patrone

! ( patroonlys )

Vergelyk enigiets behalwe een van die gegewe patrone

Aanhaling van kwotasies

Na die voorafgaande uitbreidings word alle ongekende gebeure van die karakters \ , ' en ' wat nie uit een van die bogenoemde uitbreidings voortspruit nie, verwyder.

REDIRECTION

Voordat 'n opdrag uitgevoer word, kan die invoer en uitvoer daarvan herlei word deur 'n spesiale notasie te gebruik wat deur die dop geïnterpreteer word. Herleiding kan ook gebruik word om lêers oop te maak en toe te maak vir die huidige implementeringsomgewing. Die volgende omleidingsoperateurs kan enige plek binne 'n eenvoudige opdrag voorkom of vertoon of 'n opdrag volg . Omleidings word verwerk in die volgorde wat hulle verskyn, van links na regs.

In die volgende beskrywings, as die lêerbeskrywingsnommer uitgelaat word en die eerste karakter van die omleiding operateur , verwys die omleiding na die standaard invoer (lêer beskrywing 0). As die eerste karakter van die omleiding operateur >> is , verwys die omleiding na die standaard uitvoer (lêerbeskrywer 1).

Die woord wat volg op die omskakelingsoperateur in die volgende beskrywings, tensy anders vermeld, word onderworpe aan stut uitbreiding, tilde uitbreiding, parameter uitbreiding, opdrag vervanging, rekenkundige uitbreiding, kwotasie verwydering, uitbreiding van padnaam en woord splitsing. As dit uitbrei na meer as een woord, rapporteer bash ' n fout.

Let daarop dat die volgorde van aansture beduidend is. Byvoorbeeld, die opdrag

ls > dirlist 2 > & 1

lei beide standaard uitvoer en standaard fout na die lêer dirlist , terwyl die opdrag

ls 2 > & 1 > dirlist

lei slegs die standaard uitvoer na lêer dirlist , omdat die standaard fout as standaard uitvoer gedupliseer is voordat die standaard uitvoer na dirlist herlei is.

Bash hanteer verskeie lêername spesiaal wanneer dit in herleidings gebruik word, soos beskryf in die volgende tabel:

/ dev / fd / fd

As fd 'n geldige heelgetal is, word lêerbeskrywer fd gedupliseer.

/ dev / stdin

Lêerbeskrywer 0 is gedupliseer.

/ dev / stdout

Lêerbeskrywer 1 word gedupliseer.

/ dev / stderr

Lêerbeskrywer 2 word gedupliseer.

/ dev / tcp / gasheer / poort

As die gasheer 'n geldige gasheernaam of internetadres is, en die poort is 'n integerpoortnommer of diensnaam, probeer om 'n TCP-verbinding na die ooreenstemmende sok oop te maak.

/ dev / udp / gasheer / hawe

As gasheer 'n geldige gasheernaam of internetadres is, en die poort is 'n integerpoortnommer of diensnaam, probeer om 'n UDP-verbinding na die ooreenstemmende sok oop te maak.

As 'n lêer nie oopgemaak of gemaak word nie, word die omruiling misluk.

Herlei invoer

Herleiding van insette veroorsaak die lêer wie se naam voortspruit uit die uitbreiding van die woord wat oopgemaak moet word vir lees op lêerbeskrywer n , of die standaard insette (lêerbeskrywer 0) indien n nie gespesifiseer word nie.

Die algemene formaat vir die aanstuur van insette is:

[ n ] < woord

Herlei Uitvoer

Omskakeling van uitvoer veroorsaak dat die lêer waarvan die naam voortspruit uit die uitbreiding van die woord wat oopgemaak moet word vir skryf op lêerbeskrywer n , of die standaard uitvoer (lêerbeskrywer 1) indien n nie gespesifiseer word nie. As die lêer nie bestaan ​​nie, word dit geskep; as dit wel bestaan, word dit na nulgrootte afgeknip.

Die algemene formaat vir herleiding van uitvoer is:

[ n ] > woord

As die redirection-operateur >> is en die noclobber- opsie aan die ingeboude stel is aangeskakel, sal die herleiding terugval as die lêer waarvan die naam uit die uitbreiding van die woord voortspruit, bestaan ​​en is 'n gereelde lêer. As die redirection operateur is > | , of die redirection operateur is > en die noclobber opsie vir die ingestelde ingeboude opdrag is nie geaktiveer nie, die herleiding word gepoog, selfs al is die lêer wat deur die woord genaamd is.

Byvoeging van aangestelde uitset

Omskakeling van uitvoer op hierdie manier veroorsaak dat die lêer waarvan die naam voortspruit uit die uitbreiding van die woord wat oopgemaak moet word vir byvoeging op lêerbeskrywer n , of die standaard uitvoer (lêerbeskrywer 1) indien n nie gespesifiseer word nie. As die lêer nie bestaan ​​nie, word dit geskep.

Die algemene formaat vir die byvoeging van uitvoer is:

[ n ] >> woord

Herlei Standaard Uitvoer en Standaardfout

Bash laat beide die standaard uitvoer (lêerbeskrywer 1) en die standaard foutuitset (lêerbeskrywer 2) toe om na die lêer te verwys, wie se naam die uitbreiding van die woord met hierdie konstruksie is.

Daar is twee formate vir die herlei van standaarduitvoer en standaardfout:

&> woord

en

> en woord

Van die twee vorms is die eerste voorkeur. Dit is semanties ekwivalent aan

> woord 2 > en 1

Hier Dokumente

Hierdie tipe herleiding gee aan dat die dop die invoer van die huidige bron lees, totdat 'n lyn met slegs 'n woord (met geen spasies) verskyn. Al die lyne wat tot op daardie stadium gelees word, word dan as die standaard invoer vir 'n opdrag gebruik.

Die formaat van hier-dokumente is:

<< [ - ] woord hier-dokument delimiter

Geen parameteruitbreiding, opdrag vervanging, rekenkundige uitbreiding of uitbreiding van padnaam word op woord uitgevoer nie. As enige karakters in woord aangehaal word, is die skeidingsverandering die gevolg van die verwydering van kwotasies op woord , en die lyne in die hier-dokument word nie uitgebrei nie. As 'n woord ongemerk is, word alle lyne van die hier-dokument onderworpe aan parameteruitbreiding, opdrag vervanging en rekenkundige uitbreiding. In laasgenoemde geval word die karaktervolgorde \ geïgnoreer, en \ moet gebruik word om die karakters \ , $ , en `te vermeld .

As die redirection operateur << - is , word al die leidende karakters uit invoerlyne gestroop en die lyn wat die afbakening bevat . Dit laat hier-dokumente binne dopskripte op natuurlike wyse toe.

Hier snare

'N Variant van hier dokumente, die formaat is:

<<< woord

Die woord word uitgebrei en verskaf aan die bevel op sy standaard insette.

Dupliserende lêerbeskrywings

Die redirection operateur

[ n ] woord

word gebruik om insetlêerbeskrywers te dupliseer. As die woord uitbrei na een of meer syfers, word die lêerbeskrywer aangedui deur n gemaak om 'n afskrif van daardie lêerbeskrywer te wees. As die syfers in woord nie 'n lêerbeskrywer spesifiseer wat oop is vir insette nie, vind 'n herleiding fout plaas. As woord evalueer na - , lêerbeskrywer n is gesluit. As n nie gespesifiseer word nie, word die standaard invoer (lêerbeskrywer 0) gebruik.

Die operateur

[ n ] > en woord

word soortgelyk aan duplikaat-uitvoerlêerbeskrywers gebruik. As n nie gespesifiseer word nie, word die standaard uitvoer (lêerbeskrywer 1) gebruik. As die syfers in woord nie 'n lêerbeskrywer spesifiseer wat oop is vir uitvoer nie, vind 'n herleiding fout plaas. As 'n spesiale geval, as n uitgelaat word en die woord nie uitbrei na een of meer syfers nie, word die standaard uitvoer en standaard fout herlei soos hierbo beskryf.

Lêerbeskrywings beweeg

Die redirection operateur

[ n ] <& syfer -

beweeg die lêerbeskrywersyfer na lêerbeskrywer n , of die standaardinvoer (lêerbeskrywer 0) as n nie gespesifiseer word nie. syfer is gesluit nadat dit gedupliseer is na n .

Net so, die redirection operateur

[ n ] > en syfer -

beweeg die lêerbeskrywersyfer na lêerbeskrywer n , of die standaard uitvoer (lêerbeskrywer 1) as n nie gespesifiseer word nie.

Lêerbeskrywings vir lees en skryf oop

Die redirection operateur

[ n ] <> woord

veroorsaak die lêer wie se naam die uitbreiding van die woord is wat oopgemaak moet word vir beide lees en skryf op lêerbeskrywer n , of op lêerbeskrywer 0 as n nie gespesifiseer word nie. As die lêer nie bestaan ​​nie, word dit geskep.

aliasse

Alias laat 'n string toe om 'n woord te vervang wanneer dit as die eerste woord van 'n eenvoudige opdrag gebruik word. Die dop hou 'n lys van aliasse wat ingestel en ontbind kan word met die alias en unalias builtin opdragte (sien SHELL BUILTIN COMMANDS hieronder). Die eerste woord van elke opdrag, indien ongenoteer, is nagegaan om te sien of dit 'n alias het. Indien wel, word die woord vervang deur die teks van die alias. Die aliasnaam en die vervangingstekst kan enige geldige dopinvoer bevat, insluitende die bostaande meta karakters , met die uitsondering dat die aliasnaam dalk nie bevat nie. Die eerste woord van die vervangende teks word getoets vir aliasse, maar 'n woord wat identies is aan 'n alias wat uitgebrei word, word nie 'n tweede keer uitgebrei nie. Dit beteken dat 'n mens byvoorbeeld alias ls- l , byvoorbeeld, en bash kan nie die vervangende teks herhaaldelik uitbrei nie. As die laaste karakter van die aliaswaarde 'n leë is , word die volgende opdragwoord wat die alias volg, ook nagegaan vir alias-uitbreiding.

Alias ​​word geskep en gelys met die alias bevel, en verwyder met die unalias opdrag.

Daar is geen meganisme om argumente in die vervangende teks te gebruik nie. Indien argumente benodig word, moet 'n dopfunksie gebruik word (sien FUNKSIES hieronder).

Alhalwes word nie uitgebrei as die dop nie interaktief is nie, tensy die opsie expand_aliases shell ingestel word met behulp van shopt (sien die beskrywing van SHOP BUILTIN COMMANDS hieronder).

Die reëls rakende die definisie en gebruik van aliasse is ietwat verwarrend. Bash lees altyd ten minste een volledige lyn van insette voordat u enige van die opdragte op die lyn uitvoer. Alias ​​word uitgebrei wanneer 'n opdrag gelees word, nie wanneer dit uitgevoer word nie. Daarom word 'n alias-definisie wat op dieselfde reël verskyn as 'n ander opdrag, nie van krag nie totdat die volgende reël insette gelees word. Die opdragte wat die aliasdefinisie op die lyn volg, word nie deur die nuwe alias beïnvloed nie. Hierdie gedrag is ook 'n probleem wanneer funksies uitgevoer word. Alias ​​word uitgebrei wanneer 'n funksiedefinisie gelees word, nie wanneer die funksie uitgevoer word nie, omdat 'n funksiedefinisie self 'n saamgestelde opdrag is. As gevolg hiervan, aliasse wat in 'n funksie gedefinieer is, is nie beskikbaar nie totdat die funksie uitgevoer word. Om veilig te wees, stel altyd alias definisies op 'n aparte reël en gebruik nie alias in saamgestelde opdragte nie.

Vir byna elke doel word aliasse vervang deur dopfunksies.

FUNKSIES

'N Dopfunksie, gedefinieer soos hierbo beskryf onder SHELL GRAMMAR , stoor 'n reeks instruksies vir latere uitvoering. As die naam van 'n dopfunksie as 'n eenvoudige opdragnaam gebruik word, word die lys van opdragte wat met daardie funksie naam geassosieer word, uitgevoer. Funksies word uitgevoer in die konteks van die huidige dop; Geen nuwe proses word geskep om dit te interpreteer nie (kontrasteer dit met die uitvoer van 'n skulpkop). Wanneer 'n funksie uitgevoer word, word die argumente tot die funksie die posisionele parameters tydens die uitvoering daarvan. Die spesiale parameter # is opgedateer om die verandering te weerspieël. Posisionele parameter 0 is onveranderd. Die FUNCNAME- veranderlike word ingestel op die naam van die funksie terwyl die funksie uitgevoer word. Alle ander aspekte van die uitvoering van die dop is identies tussen 'n funksie en sy oproeper, met die uitsondering dat die DEBUG- val (sien die beskrywing van die lokval onder SHELL BUILTIN COMMANDS hieronder) nie geërf word nie, tensy die funksie die spoor eienskap gegee het ( sien die beskrywing van die verklaring hieronder).

Veranderlikes wat plaaslike aan die funksie is, kan verklaar word met die plaaslike ingeboude opdrag. Gewoonlik word veranderlikes en hul waardes gedeel tussen die funksie en sy oproeper.

As die ingeboude opdrag opdrag uitgevoer word in 'n funksie, word die funksie voltooi en word die uitvoering hervat met die volgende opdrag na die funksieoproep. Wanneer 'n funksie voltooi word, word die waardes van die posisionele parameters en die spesiale parameter # herstel na die waardes wat hulle gehad het voor die uitvoering van die funksie.

Funksiename en definisies kan gelys word met die -f opsie vir die verklaarde of tipe ingeboude opdragte. Die -F opsie om te verklaar of tik sal slegs die funksie name lys. Funksies kan uitgevoer word sodat subshells hulle outomaties gedefinieer het met die -f opsie vir die uitvoer ingeboude.

Funksies kan rekursief wees. Daar is geen beperking op die aantal rekursiewe oproepe nie.

ARITMETIESE EVALUERING

Die dop laat rekenkundige uitdrukkings onder sekere omstandighede geëvalueer word (sien die ingeboude opdrag en rekenkundige uitbreiding ). Evaluering word gedoen in heelgetalle met 'n vaste wydte, sonder om te oorloop, maar die verdeling van 0 is vasgevang en gemerk as 'n fout. Die operateurs en hul voorrang en assosiativiteit is dieselfde as in die C-taal. Die volgende lys van operateurs word gegroepeer in vlakke van gelyke voorrangoperateurs. Die vlakke word gelys in volgorde van dalende voorrang.

id + + id -

veranderlike na-inkrement en na-afname

+ + id - id

veranderlike voorverhoging en voorvermindering

- +

uniese minus en plus

! ~

logiese en bietjie verwerping

**

magsverheffing

* /%

vermenigvuldiging, deling, restant

+ -

Byvoeging, aftrekking

<< >>

links en regs bietjie skofte

<=> = <>

vergelyking

==! =

gelykheid en ongelykheid

&

bitwise AND

^

bietjie eksklusiewe OF

|

bietjie OR

&&

logiese AND

||

logiese OF

expr ? expr : expr

voorwaardelike evaluering

= * = / =% = + = - = << = >> = & = ^ = | =

opdrag

expr1 , expr2

komma

Skelveranderlikes word toegelaat as operands; parameter uitbreiding word uitgevoer voordat die uitdrukking geëvalueer word. Binne 'n uitdrukking kan skulpveranderlikes ook na die naam verwys word sonder om die parameteruitbreidingsintaksis te gebruik. Die waarde van 'n veranderlike word geëvalueer as 'n rekenkundige uitdrukking wanneer dit verwys word. 'N Skulpveranderlike hoef nie die integer-kenmerk wat aangeskakel is, in 'n uitdrukking te gebruik nie.

Konstantes met 'n leidende 0 word as oktale getalle geïnterpreteer. 'N Leidende 0x of 0X dui heksadesimaal aan. Anders neem die nommers die vorm [ basis # ] n, waar die basis 'n desimale getal is tussen 2 en 64 wat die rekenkundige basis verteenwoordig, en n is 'n getal in die basis. As basis # weggelaat word, word basis 10 gebruik. Die syfers groter as 9 word voorgestel in die klein letters, die hoofletters, @ en _, in die volgorde. As basis minder as of gelyk aan 36 is, kan kleinletters en hoofletters wisselvallig gebruik word om getalle tussen 10 en 35 te verteenwoordig.

Operateurs word geëvalueer in volgorde van voorkeur. Subuitdrukkings tussen hakies word eers geëvalueer en mag die voorrangreëls hierbo oorskry.

VOORWAARDELIKE UITDRUKKINGS

Voorwaardelike uitdrukkings word gebruik deur die [[ saamgestelde opdrag en die toets en [ ingeboude opdragte om eienskappe van lêers te toets en string- en rekenkundige vergelykings uit te voer. Uitdrukkings word gevorm uit die volgende unêre of binêre primêre. As 'n lêer argument vir een van die primêre eienskappe van die vorm / dev / fd / n is , word lêerbeskrywer n nagegaan. As die lêer argument vir een van die primêre tale een van / dev / stdin , / dev / stdout , of / dev / stderr , lêerbeskrywer 0, 1 of 2 onderskeidelik is, nagegaan word.

-'n lêer

Waar as lêer bestaan.

-b- lêer

Waar as lêer bestaan ​​en is 'n blok spesiale lêer.

-c lêer

Waar as lêer bestaan ​​en is 'n karakter spesiale lêer.

-d lêer

Waar as lêer bestaan ​​en is 'n gids.

-e lêer

Waar as lêer bestaan.

-f lêer

Waar as lêer bestaan ​​en is 'n gereelde lêer.

-g lêer

Waar as lêer bestaan ​​en is set-groep-ID.

-h lêer

Waar as lêer bestaan ​​en is 'n simboliese skakel.

-k lêer

Waar as die lêer bestaan ​​en die `` taai '' '' '' is ingestel.

-p lêer

Waar as lêer bestaan ​​en is 'n genoemde pyp (EIEU).

-r lêer

Waar as lêer bestaan ​​en leesbaar is.

-lêer

Waar as lêer bestaan ​​en 'n grootte groter as nul het.

-die vorige

Waar as lêerbeskrywer fd oop is en verwys na 'n terminaal.

-U lêer

Waar as lêer bestaan ​​en sy set-user-id-bit is ingestel.

-w lêer

Waar as lêer bestaan ​​en skryfbaar is.

-x lêer

Waar as lêer bestaan ​​en uitvoerbaar is.

-O lêer

Waar as lêer bestaan ​​en besit word deur die effektiewe gebruikers-ID.

-G- lêer

Waar as lêer bestaan ​​en in besit is van die effektiewe groep-ID.

-L lêer

Waar as lêer bestaan ​​en is 'n simboliese skakel.

-S lêer

Waar as lêer bestaan ​​en is 'n sok.

-N- lêer

Waar as lêer bestaan ​​en is verander sedert dit laas gelees is.

file1 - nt file2

Waar as lêer1 nuwer is (volgens wysigingsdatum) as lêer2 , of as lêer1 bestaan ​​en lêer2 nie.

lêer1 - ot file2

Waar as lêer1 ouer is as lêer2 , of as lêer2 bestaan ​​en lêer1 nie.

file1 -ef file2

Waar as lêer1 en lêer2 verwys na dieselfde toestel en inode nommers.

-opname

Waar as opsie vir dopopsie aangeskakel is. Sien die lys opsies onder die beskrywing van die -O opsie na die onderstaande reeks .

-s snaar

Waar as die lengte van die tou nul is.

-n string

string

Waar as die lengte van die tou nie nul is nie.

string1 == string2

Waar as die snare gelyk is. = mag gebruik word in plaas van == vir streng POSIX nakoming.

string1 ! = string2

Waar as die snare nie gelyk is nie.

string1 < string2

Waar as string1 voor string2 leksikografies in die huidige lokaal sorteer.

string1 > string2

Waar as string1 na string 2 sorteer leksikografies in die huidige land.

arg1 OP arg2

OP is een van -qq , -ne , -lt , -le , -gt of -ge . Hierdie rekenkundige binêre operatore keer waar as arg1 gelyk is aan, nie gelyk aan minder as, minder as of gelyk aan, groter as, of groter as of gelyk aan arg2 , onderskeidelik nie. Arg1 en arg2 kan positiewe of negatiewe heelgetalle wees.

EENVOUDIGE OPKOMENDE UITBREIDING

Wanneer 'n eenvoudige opdrag uitgevoer word, voer die dop die volgende uitbreidings, opdragte en herleidings uit van links na regs.

1.

Die woorde wat die parser gemerk het as veranderlike opdragte (diegene wat die bevelnaam voorafgaan) en redirections word gestoor vir latere verwerking.

2.

Die woorde wat nie veranderlike opdragte of herleidings is nie, word uitgebrei. As enige woorde na uitbreiding bly, word die eerste woord geneem as die naam van die opdrag en die oorblywende woorde is die argumente.

3.

Omleidings word uitgevoer soos hierbo beskryf onder REDIRECTION .

4.

Die teks na die = in elke veranderlike opdrag word onderhewig aan uitbreiding, parameteruitbreiding, opdrag vervanging, rekenkundige uitbreiding en kwotasie verwydering voordat dit aan die veranderlike toegewys word.

As geen opdragnaam uitkom nie, beïnvloed die veranderlike opdragte die huidige skulpomgewing. Andersins word die veranderlikes bygevoeg aan die omgewing van die uitgevoer bevel en raak nie die huidige skulpomgewing nie. As enige van die opdragte poog om 'n waarde aan 'n leesbare veranderlike toe te ken, ontstaan ​​daar 'n fout en die opdrag verlaat met 'n nie-nul-status.

As daar geen opdragnaam is nie, word herleidings uitgevoer, maar raak nie die huidige skulpomgewing nie. 'N Herleidingsfout veroorsaak dat die bevel met 'n nie-nul-status verlaat.

As daar 'n opdragnaam is wat na uitbreiding oorgebly het, word die uitvoering soos hieronder beskryf, voortgesit. Anders gaan die bevel uit. As een van die uitbreidings 'n opdrag substitusie bevat, is die uitgangstatus van die opdrag die uitgangstatus van die laaste opdrag vervanging uitgevoer. As daar geen opdrag substitutions was nie, verlaat die bevel met 'n status van nul.

BEHEER UITVOERING

Nadat 'n opdrag in woorde verdeel is, as dit 'n eenvoudige opdrag en 'n opsionele lys van argumente tot gevolg het, word die volgende aksies geneem.

As die bevelnaam geen skuins bevat nie, probeer die dop om dit op te spoor. As daar 'n dopfunksie by daardie naam bestaan, word die funksie aangespreek soos hierbo beskryf in FUNKSIES . As die naam nie ooreenstem met 'n funksie nie, soek die dop dit in die lys van dop geboue. As 'n wedstryd gevind word, word dit ingebou.

As die naam nie 'n dopfunksie is nie, of 'n ingeboude, en geen snit bevat nie, soek bash elke element van die PATH vir 'n gids met 'n uitvoerbare lêer met daardie naam. Bash gebruik 'n hash tabel om die volledige padname van uitvoerbare lêers te onthou (sien hash onder SHELL BUILTIN COMMANDS hieronder). 'N Volledige soektog van die directories in PATH word slegs uitgevoer indien die opdrag nie in die hash-tabel gevind word nie. As die soektog onsuksesvol is, druk die dop 'n foutboodskap en gee 'n uittreestatus van 127.

As die soektog suksesvol is, of as die bevelnaam een ​​of meer snystrepe bevat, voer die dop die genoemde program uit in 'n aparte uitvoeringsomgewing. Argument 0 is ingestel op die naam wat gegee word, en die oorblywende argumente aan die opdrag word ingestel op die gegewe argumente, indien enige.

As hierdie uitvoering misluk omdat die lêer nie in uitvoerbare formaat is nie, en die lêer nie 'n gids is nie, word dit aanvaar dat dit 'n dopsoort is , 'n lêer met dopopdragte. 'N Subshell word aangewend om dit uit te voer. Hierdie subskerm herinitialiseer homself, sodat die effek is asof 'n nuwe dop aangewend is om die skrif te hanteer, met die uitsondering dat die plekke van opdragte wat die ouer onthou (sien die hash hieronder onder SHELL BUILTIN COMMANDS ) deur die kind behoue ​​bly.

As die program 'n lêer is wat begin met #! , die res van die eerste reël spesifiseer 'n tolk vir die program. Die dop voer die gespesifiseerde tolk uit op bedryfstelsels wat nie self die uitvoerbare formaat hanteer nie. Die argumente vir die tolk bestaan ​​uit 'n enkele opsionele argument wat volg op die tolk naam op die eerste reël van die program, gevolg deur die naam van die program, gevolg deur die opdrag argumente, indien enige.

COMMAND EXECUTION MILIEU

Die dop het 'n uitvoering omgewing , wat bestaan ​​uit die volgende:

*

oop lêers geërf deur die dop by aanroeping, soos gewysig deur redirections verskaf aan die exec builtin

*

die huidige werkgids soos gestel deur CD , druk of popd , of geërf deur die dop by aanroeping

*

die lêer skepping modus masker soos gestel deur umask of geërf van die dop se ouer

*

huidige velle wat deur die val vasgestel word

*

skulpparameters wat deur veranderlike opdragte gestel word, of met stel of geërf van die skulp se ouer in die omgewing

*

skulpfunksies wat tydens die uitvoering van die dop se ouer in die omgewing bepaal word

*

opsies geaktiveer by aanroeping (óf by verstek óf met opdraglyn argumente) of volgens stel

*

opsies geaktiveer deur shopt

*

dop aliases gedefinieer met alias

*

verskeie proses-ID's, insluitend dié van agtergrondwerk, die waarde van $ $ en die waarde van $ PPID

Wanneer 'n eenvoudige opdrag anders as 'n ingeboude of dopfunksie uitgevoer moet word, word dit aangewend in 'n aparte uitvoeringsomgewing wat uit die volgende bestaan. Tensy anders vermeld, word die waardes geërf van die dop.

*

die dop se oop lêers, plus enige wysigings en byvoegings wat deur herleidings na die opdrag gespesifiseer word

*

die huidige werkgids

*

die lêer skepping modus masker

*

skaal veranderlikes gemerk vir uitvoer, saam met veranderlikes uitgevoer vir die opdrag, geslaag in die omgewing

*

valletjies wat deur die dop gevang word, word teruggee na die waardes wat van die dop se ouer geërf word, en valse wat deur die dop geïgnoreer word, word geïgnoreer

'N Opdrag wat in hierdie afsonderlike omgewing aangespreek word, kan nie die uitvoeromgewing van die dop beïnvloed nie.

Kommandosubstitusie en asynchrone opdragte word aangewend in 'n subskerm-omgewing wat 'n duplikaat van die dopomgewing is, behalwe dat die velle wat deur die dop gevang word, teruggestel word na die waardes wat die dop van sy ouer geërf het by aanroeping. Ingeboude opdragte wat as deel van 'n pyplyn aangewend word, word ook uitgevoer in 'n subskerm-omgewing. Wysigings wat aan die subskerm-omgewing gemaak word, kan nie die uitvoeromgewing van die dop beïnvloed nie.

As 'n opdrag gevolg word deur 'n & en werk beheer is nie aktief nie, is die standaard standaard invoer vir die opdrag die leë lêer / dev / null . Andersins, die aangeskrewe opdrag erf die lêerbeskrywers van die roepskulp soos gewysig deur aansture.

SIEN OOK

Bash Reference Manual , Brian Fox en Chet Ramey

Die Gnu Leeslyn Biblioteek , Brian Fox en Chet Ramey

Die Gnu Geskiedenis Biblioteek , Brian Fox en Chet Ramey

Draagbare bedryfstelsel koppelvlak (POSIX) Deel 2: Shell en nutsprogramme , IEEE

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

emacs (1), vi (1)

leeslyn (3)