Sh - Linux Command Unix Command

NAMME

bash - GNU Bourne-Again SHELL

SYNOPSIS

bash [opsjes] [file]

BESKRIUWING

Bash is in sh- kompatibele kommandespando-printer dy't útfiert fan kommando's lêzen fan de standertynfier of fan in bestân. Fluch befettet nuttige funksjes fan de Korn en C shells ( ksh en csh ).

Bash is bedoeld om in konformante ymplemintaasje fan 'e IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2) te wêzen.

OPTIONS

Neist de ienpersoartige shell-opsjes dy't dokumentearre binne yn 'e beskriuwing fan it ynstelde kommando kommando, skriuw bash de neikommende opsjes wannear't it berekkene is:

-c string

As de -c- opsje oanwêzich is, wurde kommando's lêzen fan tekenrige . As der arguminten binne nei de tekenrige , wurde se oanjûn oan de posysjeparamaten, begjinnend mei $ 0 .

-ik

As de -e- opsje oanwêzich is, is de shell ynteraktyf .

-l

Meitsje bash act as wie it opnommen as in ynlochshell (sjoch INVOCATION hjirûnder).

-r

As de -r- opsje oanwêzich is wurdt de shell beheind (sjoch RESTRICTED SHELL hjirûnder).

-s

As de -s- opsje oanwêzich is, of as gjin arguminten bliuwe nei de opsjeproses, dan wurde kommando's lêzen út de standertynfier. Dizze opsje lit de posysjeparameters ynstelle by it opnimmen fan in ynteraktive shell.

-D

In list mei alle dûbele toetsen wurdt foarôfgeand oan $ presintearre op 'e standert útfier. Dit binne de stringen dy't ûnderwerp fan taalgebrûk binne as de hjoeddeistige locale net C of POSIX is . Dit betsjut de -n- opsje; gjin kommando's wurde útfierd.

[- +] O [ shopt_option ]

shopt_option is ien fan 'e shell-opsjes, akseptearre troch de shopt ynbouwing (sjoch SHELL BUILTIN COMMANDS hjirûnder). As shopt_option oanwêzich is, -O de wearde fan dizze opsje set; + O it net. As shopt_option net levere wurdt, wurde de nammen en wearden fan de shell-opsjes akseptearre troch shopt op de standertútfier. As de opsje-opsje as + O is , wurdt de útfier yn in formaat werjûn dat mooglik werjûn wurde as ynfier.

A - sinjalearret it ein fan 'e opsjes en útsette de fierdere opsjeproses. Alle arguminten nei de - wurde behannele as filenames en arguminten. In argumint fan - is lykweardich foar - .

Bash fermset ek in oantal meardere karakteropsjes. Dizze opsjes moatte op 'e kommandorigel ferskine foardat de single-karakter-opsjes te erkennen binne.

--dump-po-strings

Equivalent mei -D , mar de útfier is yn it triemformaat fan GNU gettext po (portable object).

--dump-strings

Equivalent mei -D .

--help

Lit in brûk berjocht sjen op standertútfier en súksesfol út.

- init-triem file

--rcfile triem

Befestigje kommando's fan triem ynstee fan it standert persoanlike ynbiningfile ~ / .bashrc as de shell ynteraktyf is (sjoch INVOCATION hjirûnder).

--login

Equivalent mei -l .

--noediting

Bliuw de GNU- readline- bibliotek net brûke om kommando-rigels te lêzen as de shell ynteraktyf is.

--noprofile

Lês de system-wide-start-bestân / etc / profyl net of ien fan 'e persoanlike ynisjalisaasje triemen ~ / .bash_profile , ~ / .bash_login , of ~ / .profile . Standert stiet de bash dizze bestannen as it opnij is as in ynlochshell (sjoch INVOCATION hjirûnder).

--norc

It persoanlike ynitialiseardriem ~ / .bashrc net lêze en útfiere as de shell ynteraktyf is. Dizze opsje is standert as standert as de shell opnomd is as sh .

--posysje

Feroarje it gedrach fan 'e bash wêr' t de standert operaasje ferskaft fan 'e standert POSIX 1003.2 nei de standert ( posisjemodus ).

--restricted

De shell wurdt beheind (sjoch RESTRICTED SHELL hjirûnder).

- rpm-fereasket

Fertelt de list fan triemmen dy't foar it shell skript nedich binne om te fieren. Dit betsjuttet '-n' en jildt deselde limiten as kompilearje tiidfout kontrôle kontrôle; Backtaksen, [] Tests, en evalen wurde net ferwurke, sadat guon ôfwikingen mooglik fermoaze. --verbose Equivalent mei -v .

--ferzje

Jou ferzje ynformaasje foar dit eksimplaar fan bash op 'e standertútfier en súksesfol út.

ARGUMENTS

As arguminten nei de opsje ferwurkjen bliuwe, en wierskynlik net de -c noch de -s- opsje levere, wurdt it earste argumint as de namme fan in bestân mei shellkommando's. As bash op dizze modus opnij is, wurdt $ 0 ynsteld op de namme fan de triem, en de posysjeparameters binne ynsteld nei de oerbleaun arguminten. Bash lêze en befettet kommando's fan dit bestân, dêrnei komt út. De útgongstatus fan Bash is de útgongstatus fan it lêste kommando útfierd yn it skript. As der gjin kommando's útfierd is, is de útgongstatus 0. In besykjen is earst makke om de triem yn it aktive triem te iepenjen, en as der gjin triem fûn wurdt, sykje de shell de mappen yn it paad foar it skript.

INVOCATION

In ynlochshell is ien dy't it earste karakter fan argument nul is - of ien begon mei de --login- opsje.

In ynteraktive shell is begon sûnder opsje-arguminten en sûnder de -c- opsje wêryn de standert ynput en output binne beide ferbûn mei terminalen (as fêststeld troch isatty (3)), of men begon mei de -i- opsje. PS1 is ynsteld en $ - befettet ik as bash is ynteraktyf, sadat in shell-skript of in startup bestân kin dizze state probearje.

De neikommende paragrafen beskriuwe hoe bash docht syn starttriemmen út. As ien fan 'e bestannen bestiet, mar kin net lêzen wurde, rapportearje in flater. Tildes wurde útwreide yn triemnammen sa as hjirûnder beskreaun ûnder Tilde-útwreiding yn 'e seksje EXPANSION .

As bash wurdt as in ynteraktive loginshell opnommen, of as in net-ynteraktive shell mei de -login- opsje, lêst it earste en liedt kommando's út it bestân / etc / profyl , as dizze bestand bestiet. Nei it lêzen fan dizze triem sjocht it nei ~ / .bash_profile , ~ / .bash_login , en ~ / .profile , yn dy folchoarder en lêzen en útfiert kommando's út de earste dy't bestiet en is lêsber. De -noprofile- opsje kin brûkt wurde as de shell begon is om dizze gedrach yn te hâlden.

As in sykopdialoop út einiget , lês de bash en befettet kommando's út de triem ~ / .bash_logout , as it bestiet.

Wannear't in ynteraktive shell dat net in ynlochshell is úteinset, lês de bash en befettet kommando's út ~ / .bashrc , as dizze bestand bestiet. Dit kin ynhierd wurde troch de -norc- opsje te brûken. De - rcfile triem- opsje sil brek meitsje om behearen fanút triem te lêzen en út te fieren ynstee fan ~ / .bashrc .

As bash wurdt net ynteraktyf begon, om in skelpskript út te fieren, soest it bygelyks de fariabele BASH_ENV yn 'e miljeu, ferheget har wearde as it dêr ferskynt en brûkt de útwreide wearde as de namme fan in bestân om te lêzen en útfiere . Bash hâldt as it folgjende kommando útfierd waard:

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

mar de wearde fan 'e PATH- fariabele wurdt net brûkt om te sykjen foar de triemnamme.

As bash opnommen is mei de namme sh , besiket er it begjinsel gedrach fan histoaryske ferzjes fan s as safol mooglik te mimykjen, wylst de POSIX-standert lykwols oanpast. As jo ​​as ynteraktive ynlochskerm opnomd binne, of in net-ynteraktive shell mei de --login- opsje, besykje it earst de kommando's út / etc / profile en ~ / .profile yn dizze opdracht te lezen en út te fieren. De -noprofile- opsje kin brûkt wurde om dizze gedrach yn te hâlden. As jo ​​as ynteraktive shell opnommen wurde mei de namme sh , sjocht de bash nei de fariabele ENV , ferheft har wearde as it is definieare en brûkt de útwreide wearde as de namme fan in bestân om te lêzen en út te fieren. Sûnt in shell opjûn wurdt as sh net besykje om kommando's út elke oare startupdateits te lêzen en út te fieren, hat de -rcfile- opsje gjin effekt. In net-ynteraktive shell opnij mei de namme sh besiket gjin oare starttriemmen te lêzen. As opsjoneel as sh , bash komt yn posisjemodus nei't de startup bestannen lêzen wurde.

As bash begjint yn posisjemodus , lykas by de opsje fan de opsje -posix-opslach , folget de POSIX-standert foar starte-bestannen. Yn dizze modus útwreide ynteraktive shells de ENV- fariabele en kommando's wurde lêzen en útfierd út 'e triem dy namme is de útwreide wearde. Gjin oare startup bestannen wurde lêzen.

Bash besyket om te bepalen wannear't it útfierd wurdt troch de remote shell daemon, meastal rshd . As bash bepale dat it troch rshd útfiert wurdt , lêst en befettet kommando's fan ~ / .bashrc , as dizze bestân bestiet en is lêsber. It sil dit net dwaan as jo opnomd binne as sh . De -norc- opsje kin brûkt wurde om dizze gedrach te ynsette, en de -rcfile- opsje kin brûkt wurde om in oare ljepper te ferwiderjen, mar rshd jout de shell net allinich mei dizze opsjes op as jo kinne oantsjutte.

As de shell begon is mei de effektive brûker (groep) id net te fergelykjen mei de echte brûkers (groep) id, en de -p- opsje is net levere, gjin startup bestannen lêze, shellfunksjes wurde net oernaam troch de omjouwing, de SHELLOPTS variable, as it yn 'e omjouwing ferskynt, wurdt negearre, en de effektive brûkersnamme is ynsteld nei de echte brûkers id. As de -p- opsje oanfrege is, is it startbewiis itselde, mar de effektive brûkersnamme is net weromsette.

DEFINITIONS

De folgjende definysjes wurde yn 'e rest fan dit dokumint brûkt.

leech

In romte of ljepblêd.

wurd

In folchoarder fan tekens wurdt beskôge as ienige ienheid troch de shell. Ek bekend as token .

namme

In wurd dat allinich bestiet út alphanumerike tekens en ûnderskrêften, en begjint mei in alfabetysk karakter of in ûnderwerp. Ek wurdt as identifier neamd .

metacharacter

In karakter dat as ûnbrutsen wurdt, skieden wurden. Ien fan 'e neikommende:

| &; () <> romte tab

bestjoerder

In token dy't in behearfunksje útfiert. It is ien fan 'e folgjende symboalen:

|| & && ;; () |

RESERVED WORDS

Reservearre wurden binne wurden dy't in spesjaal betsjutting hawwe foar de shell. De neikommende wurden wurde as reservearre erkend as net besette en it earste wurd fan in ienfâldige kommando (sjoch SHELL GRAMMAR hjirûnder) of it tredde wurd fan in saak as foar kommando:

! It gefal docht oars as esac fi foar funksje as yn selektearje dan oant {{time}} [[]]

SHELL GRAMMAR

Ienfâldige kommando's

In ienfâldige kommando is in folchoarder fan opsjonele fariabele opdrachten, folge troch blank- ôfwikende wurden en opdrachten, en beëindere troch in kontrôneroperator. It earste wurd bepaalt it kommando om útfierd wurde en wurdt as argumint nul brûkt. De oerbleaune wurden wurde as arguminten trochjûn nei it opsleine kommando.

De weromkommende wearde fan in ienfâldige kommando is de ôfslachstatus, of 128+ n as it kommando is ôfsluten troch sinjaal n .

Pipelines

In pipeline is in folchoarder fan ien of mear kommando's skieden troch it karakter . It formaat foar in pipeline is:

[ tiid [ -p ]] [! ] kommando [ | command2 ...]

De standertútfier fan kommando is ferbûn troch in pûde nei de standertynfier fan command2 . Dizze ferbining is foltôge foardat eltse troch it kommando bepaalde opdrachten binne (sjoch REDIRECTION hjirûnder).

As it reservearre wurd ! precedes in pipeline, de útgongstatus fan dy pipeline is de logyske NOT fan 'e exitstatus fan it lêste kommando. Oars, de status fan de pipeline is de útgongstatus fan it lêste kommando. De shell waist foar alle kommando's yn 'e pipeline om te begjinnen foardat in wearde weromkommt.

As it tiid reservearre wurd foardogge fan in pipeline, wurdt de ôfrûne as brûker en systeemtyd konsumearre troch syn útfiering rapporteare as de pipeline terminearret. De -p- opsje feroaret it útfierformaat nei de oantsjutte troch POSIX. De fariabele TIMEFORMAT kin ynsteld wurde oan in formaatstring, dy't oanjout hoe't de timingsynformaasje werjûn wurde moat; Sjoch de beskriuwing fan TIMEFORMAT ûnder Shell Variables ûnder.

Elk kommando yn in pipeline wurdt útfierd as in apart proses (dat is yn in subshell).

Lists

In list is in gefolch fan ien of mear pipelines, skieden troch ien fan 'e operators ; , & , && , of || , en fakultatyf beëinige troch ien fan ; , & , of .

Fan dizze listoperators, && and || hawwe gelikense prioriteit, folge troch ; en &, dy't itselde prefinsje hawwe.

In folchoarder fan ien of mear nije linen kin ferskine yn in list ynstee fan in semykolon om befetsje te begjinnen.

As in kommando beëinige wurdt troch de kontrôler operator & , útfiert de shell it kommando op 'e eftergrûn yn in subshell. De shell wachtet net foar it kommando om te foltôgje, en de weromkomststatus is 0. Kommandoarren skieden troch in ; wurde sekulearre útfierd; De shell waitsje foar elk kommando om te setten. De weromkommstatus is de útkomstestatus fan it lêste kommando útfierd.

De kontrolearders && and || neamen AND lists en OR list respektivelik. In AND-list hat it formulier

command1 && command2

Kommando2 wurdt útfierd as, en allinich as, kommando1 jout in útgongstatus fan nul.

In list OR hat it formulier

command1 || command2

Kommando2 wurdt útfierd as allinich as command1 jout in net-nul- útstatusstatus . De weromstânstatus fan AND en OR list is de útgongstatus fan it lêste kommando útfierd yn 'e list.

Compound Commands

In kommando-kommando is ien fan 'e folgjende:

( list )

List wurdt útfierd yn in subshell. Variable assignments en ynfierbehearders dy't de omkriten fan 'e shell beynfloedzje, bliuwe net effekt nei it kommando fermindert. De weromkommstatus is de útgongstatus fan de list .

{ list ; }

List wurdt ienfâldich útfierd yn 'e hjoeddeiske shell-omjouwing. list moat ôfsluten wurde mei in nijline of semikolon. Dit is bekend as in groepkommando . De weromkommstatus is de útgongstatus fan de list . Tink derom dat oars as de metacharacters ( en ) , { en } reservearre wurden en moatte foarkom wurde wêr't in reservearre wurd tastien is te erkennen. Om't se gjin wurd brek meitsje, moatte se fan lis wurde apart skille.

( útdrukking ))

De ekspresje wurdt evaluearre neffens de hjirboppe beskreaune regels ûnder ARITHMETIC EVALUATION . As de wearde fan 'e ekspresje net-nul is, is de weromkomststatus 0; Oars is de weromreisstatus 1. Dit is krekt lykweardich om " ekspresje " te litten.

[[ ekspresje ]]

Weromst in status fan 0 of 1 ôfhinklik fan 'e evaluaasje fan' e bedoeling útdrukking . Ekspresjes binne gearstald út de ûndersteande ûnderwerpen ûnder betingsten fan betingsten . Wurd splitsing en padename útwreiding wurde net dien troch de wurden tusken de [[ en ]] ; Nei útwreiding, parameter en fariabele útwreiding, arithmetyk-útwreidings, kommando-substitution, prosesferbod, en quote-útfiering wurde útfierd.

As de == en ! = Operators brûkt wurde, wurdt de tekenrige oan 'e rjochter fan' e operator as in tekenrige beskôge en oerienkommend neffens de regels dy't hjirûnder beskreaun binne ûnder Pattern Matching . De weromkommende wearde is 0 as de string oerienkomt of komt net oerien mei it patroan, respektivelik en 1 oars. Elk diel fan it patroan kin wurde beoardiele om it te tekenjen as in tekenrige.

Ekspresjes kinne kombineare wurde mei de folgjende operators, neamd yn ôfnimende regel fan prioriteit:

( ekspresje )

Gout de wearde fan 'e ekspresje werom . Dit kin brûkt wurde om de gewoane prioriteit fan 'e operators te oerwinnen.

! útdrukking

Wiere as útdrukking is falsk.

expression1 && expression2

Wier as beide ekspresjes1 en ekspresje2 wier binne.

expression1 || expression2 Wier as ien útdrukking1 of ekspresje2 wier is.

De && and || Operaters evaluearje gjin ekspresje2 as de wearde fan ekspresje1 genôch is om de weromkommende wearde fan 'e folsleine bedoeling út te fieren.

foar namme [ yn wurd ]; do list ; dien

De list mei wurden dy't nei oanwêzich is útwreide, generearret in list fan items. De fariabele namme wurdt op elk elemint fan dizze list ynsteld, en de list wurdt elke kear útfierd. As it wurd ynlitten wurdt, wurdt it kommando foar ien kear foar elke posysje parameter útfierd (sjoch de PARAMETERS hjirûnder). De weromkommstatus is de útgongstatus fan it lêste kommando dat útfiert. As de útwreiding fan de items nei resultaten nei in lege list folgje, wurde gjin kommando's útfierd, en de weromkomststatus is 0.

foar (( expr1 ; expr2 ; expr3 )); do list ; dien

Earst wurdt de arithmetike ekspresje ekspr1 evaluearre neffens de regels dy't hjirûnder beskreaun binne ûnder ARITHMETIC EVALUATION . De arithmetike ekspresje ekspr2 wurdt dan werhelle evaluearre oant it evaluearret nei nul. Elk momint ekspr2 evaluearret nei in net-nul-wearde, de list wurdt útfierd en de arithmetike ekspresje ekspr3 wurdt evaluearre. As der gjin útdrukking is wegere, behannelet it as as it evaluearret nei 1. De weromkommende wearde is de exitstatus fan it lêste kommando yn de list dy't útfiert is, of falsk as ien fan 'e útdrukkingen ûnjildich is.

selektearje namme [ yn wurd ]; do list ; dien

De list mei wurden dy't nei oanwêzich is útwreide, generearret in list fan items. De opset fan útwreide wurden wurdt op 'e standertflater gedrukt, elk foarôfgeand fan in nûmer. As it wurd net wegere wurdt, wurde de posysjeparamten gedrukt (sjoch PARAMETERS hjirûnder). De prompt PS3 wurdt dan werjûn en in line lêze út de standertynfier. As de line bestiet út in nûmer dat ien fan 'e oanjûne wurden is, dan wurdt de wearde fan de namme op dat wurd ynsteld. As de line leech is, wurde de wurden en werklik wer werjûn. As EOF lêzen wurdt, foltôrt it kommando. Elk oare wearde lêzen feroaret dat namme neamd wurdt. De ljepene lêzen wurdt bewarre yn 't ferfange REPLY . De list wurdt nei elke seleksje útfierd oant in brekbehearder foltôge wurdt. De útgongstatus fan selektearje is de útgongstatus fan it lêste kommando útfierd yn list , of nul as gjin kommando's útfierd binne.

Fall word in [[() pattern [ | pattern ]

In saakbehearder ferheft earst it wurd en besiket it oan te passen tsjin elke patroan op 'e hichte, mei it brûken fan deselde oerienkommende regels as foar padenname útwreiding (sjoch Pathname-útwreiding hjirûnder). As in wedstriid fûn wurdt, wurdt de oerienkommende list útfierd. Nei it earste wedstriid wurde gjin folgjende wedstriden besocht. De útgongstatus is nul as gjin patroanen oerienkomme. Oars, it is de útgongstatus fan it lêste kommando útfierd yn list .

as list ; dan list; [ elif list ; dan list ; ] ... [ oars list ; ] fi

De as list is útfierd. As syn status-útgongstatus nul is, wurdt de list dan útfierd. Oars wurde eliflist elkoar útfierd, en as de ôfslachstatus nul is, wurdt de oerienkommende dan dan útfiert en it kommando fermindert. Oars, de oare list wurdt útfierd, as oanwêzich is. De útgongstatus is de útgongstatus fan it lêste kommando útfierd, of nul as der gjin betingst getten waard.

wylst list ; do list ; dien

oant list ; do list ; dien

It winstbehear befestiget de do- list altyd troch, sûnder it lêste kommando yn de list jout in útgongstatus fan nul. It oant kommando is identyk foar it wierskynlike kommando, útsein dat de test negaasearre is; de do list wurdt útfiert as it lêste kommando yn de list jout in net-nul-útstatusstatus. De útgongstatus fan 'e tiid en oant kommando's is de útkomstestatus fan it lêste kommando-bestel útfierd, of nul as der gjin útfierd is.

[ function ] name () { list ; }

Dit definiearret in funksje mei namme neamd. It lichem fan 'e funksje is de list fan kommando's tusken {en}. Dizze list wurdt útfierd wannear't de namme oantsjutte is as de namme fan in ienfâldige kommando. De útgongstatus fan in funksje is de útgongstatus fan it lêste kommando útfierd yn it lichem. (Sjoch FUNCTIONS hjirûnder.)

COMMENTS

Yn in net-ynteraktive shell, of in ynteraktive shell wêryn de ynteraktive_comments- opsjes nei de shopt-ynbouwing ynskeakele is (sjoch SHELL BUILTIN COMMANDS hjirûnder), in wurd begjint mei # oarsaak dat wurd en alle oerbliuwende tekens op dizze line ferneatige wurde. In ynteraktive shell sûnder de ynteraktive_comments- opsje ynskeakele makket gjin kommentaar. De opsje ynteraktive_kommenten is standert yn ynteraktive shells.

QUOTING

It petearen wurdt brûkt om de spesjale betsjutting fan bepaalde karakters of wurden nei it shell te ferwiderjen. It petearen kin brûkt wurde om de spesjale behanneling te skeakeljen foar spesjale tekens, om reservearre wurden te foarkommen dat se as erkenning erkend binne en foarkommen fan parallele útwreiding.

Elk fan 'e metoadearders dy't hjirboppe neamd binne, hawwe spesjale betsjutting oan' e shell en moatte beoardiele wurde as it sels te representearjen is.

As de kommando histoarje útwreide foarsjenningen brûkt wurde, is it histoarje útwreiding karakter, meastal ! , moat oanfrege wurde om histoaryske útwreiding te foarkommen.

Der binne trije quotingmechanismen: it ûntkommen karakter , single quotes, en dûbele saken.

In net-siferearre eftergrûn ( \ ) is it fluchtoets . It bewarret de literêre wearde fan it folgjende karakter dat folget, mei útsûndering fan . As in \ pairo ferskynt, en de efterkant is net sels sjoen, wurdt de \ behannele as lineline (dit is út it ynfier stream fuortsmiten en effektyf negearre).

De karakters yn ienige quotes bewarje de literale wearde fan elke karakter yn 'e quotes. In inkele quote kin net foarkomme tusken single-quotes, ek as jo troch in efterblokje foardwaan.

De karakters yn dûbele quotes bewarje de literêre wearde fan alle tekens yn 'e quotes, mei útsûndering fan $ , ` , en \ . De tekens $ en ' behâlde har spesifike betsjutting binnen dûbele saken. De efterkant behâldt har spesjale betsjutting allinich wannear't ien fan de neikommende tekens folgje: $ , ` , " , \ , or . In dûbeldeksje kin sizze yn dûbele quotes troch foarôfgeande mei in backslash.

De spesjale parameter * en @ hawwe spesjaal betsjutting as yn dûbele quotes (sjoch PARAMETERS hjirûnder).

Wurden fan it formulier $ ' string ' wurde spesjaal behannele. It wurd fergruttet nei tekenrige , mei efterkant-escaped karakter ferfongen as spesifisearre troch de standert ANSI C. Eftergrûn fan efterblêden útbrekke, as oanwêzich, wurde sa decodearre:

\in

alert (klok)

\ b

eftergrûn

\ e

in karakter

\ f

formfiere

\ n

nije rigel

\ r

ferfier werom

\ t

horizontale ljepper

\ v

vertical tab

\\

backslash

\ '

single quote

\ nnn

de acht-bit karakter, waans wearde de oktale wearde nnn (ien oant trije sifers)

\ x HH

it acht-bit-karakter dat wearde is de hexadezimal wearde HH (ien of twa hex sifers)

\ c x

in kontrol- x- karakter

It útwreide terrein is single-quoted, lykas it dollar-teken net oanwêzich wie.

In dûbele toanielstik foarôfgeand fan in dollar-teken ( $ ) sil de snaal ommeitsje neffens de hjoeddeistige locale. As de hjoeddeistige locale C of POSIX is , wurdt it dollar-teken negearre. As de teken oersetten en ferfongen is, wurdt de ferfanging dûbeld bewarre.

PARAMETERS

In parameter is in entiteit dy't wearden bewarret. It kin in namme wêze , in nûmer, of ien fan 'e spesjale tekens dy't hjirûnder neamd binne ûnder Special Parameters . Foar de foarmen fan 'e shell is in fariant in parameter mei in namme oanwiisd. In fariabele hat in wearde en nul of mear attributen . Attributen wurde oantsjutte mei it kommandoarearkombe befêstigje (sjoch hjirûnder te deklare yn SHELL BUILTIN COMMANDS ).

In parameter wurdt ynsteld as it in wearde steld hat. De nulle string is in jildich wearde. Ien kear in fariant is ynsteld, kin allinich net brûke by it gebrûk fan it gebrûkskomment befettet (sjoch SHELL BUILTIN COMMANDS hjirûnder).

In fariabele kin by in ferklearring fan it formulier oantsjutte wurde

namme = [ wearde ]

As wearde net jûn wurdt, wurdt de fariant oanbelanget de nul-tekenrige. Alle wearden ûnderlinge útwreiding, parameter en fariabele útwreiding, command substitution, arithmetic-útwreiding, en sertifikaatútgong (sjoch EXPANSION hjirûnder). As de fariabele hat syn ynteger- attribute-opset, dan wearde is ûnderwerp fan arithmetic-útwreiding sels as de $ ((...)) útwreiding net brûkt wurdt (sjoch Arithmetic Expansion hjirûnder). Wurd splitsing wurdt net útfierd, mei útsûndering fan "$ @" lykas hjirûnder eksplisyt ûnder Special Parameters . Pathname-útwreiding wurdt net útfierd. Zuisjele ferklearrings kinne ek as arguminten ferskine foar de ferklearring , opsjes , eksportearjen , readonly en lokale ynboude kommando's.

Posityf Parameters

In posysjeparameter is in parameter dy't oanjûn wurdt troch ien of meardere sifers, oars as de single-digit. Posityf parameter wurde fan 'e arguminten fan' e shell as it berekkene wurde steld en kin mei it ynstallearre gebou kommando brûkt wurde. Posityf parameteren kinne net oanbelanget wurde mei oplaadberjochten. De posysjeparameter binne tydlik ferfongen as in shellfunksje útfierd wurdt (sjoch FUNCTIONS hjirûnder).

As in posysjeparameter bestiet út mear as in single-digit wurdt útwreide, moat it omhannele wurde yn pylken (sjoch EXPANSION hjirûnder).

Special Parameters

De shell behannelet ferskate parameter spesjaal. Dizze parameters kinne allinich ferwiisd wurde; Oanstelling oan har is net tastien.

*

Ferheget nei de posisjoneel parameters, begjinnend fan ien. Wannear't de útwreiding yn binnen doppelte kanten foarkomt, wurdt it útwreide ta ien wurd mei de wearde fan elke parameter, skieden troch it earste karakter fan 'e spesjale fariant fan IFS . Dit is, " $ * " is lykwichtlik " $ 1 c $ 2 c ... ", wêrby c is it earste karakter fan 'e wearde fan de IFS- fariabele. As IFS net is, wurde de parameter skieden troch spaasjes. As IFS nul is, wurde de parameter ferbûn sûnder yntervende skiedingsteken.

@

Ferheget nei de posisjoneel parameters, begjinnend fan ien. Wannear't de útwreiding binnen dûbele quotes komt, elke parameter wurdt útwreide nei in aparte wurd. Dit is, " $ @ " is lyk oan " $ 1 " " $ 2 " ... As der gjin posysjeparameter binne, " $ @ " en $ @ útwreidzje nei neat (dus, se binne fuorthelle).

#

Ferheegje nei it oantal posysjeparameters yn desimaal.

?

Ferhellet nei de status fan de neamde útfierde foargrûnpipeline.

-

Ferheegje nei de aktive opsjefakken as opjûn op opsletten, troch it ynstallearre befettingsbehearder, of dyjinge dy troch de shell sels sette (lykas de -e- opsje).

$

Ferhellet nei de proses-ID fan de shell. Yn in () subshell wurdt it proses-ID fan 'e aktuele shell útwreide, net it subshell.

!

Ferheegje nei de prozess-ID fan it lêst útfierde eftergrûn (asynchrone) kommando.

0

Ferheget de namme fan it shell of shell skript. Dit is yn 'e shell ynstallaasje set. As bash opnommen is mei in bestân fan kommando's, wurdt $ 0 ynsteld op de namme fan dizze bestân. As bash begjint mei de -c- opsje, dan wurdt $ 0 ynsteld nei it earste argumint nei de tekenrige om útfierd wurde moat as ien is. Oarspronklik is it ynsteld op de triemnamme dy't brûkt wurdt om opnij te opheljen , lykas argument nul.

_

At shell startup, set de absolute triemnamme fan it shell of shell-skript útfiert as ferwidere yn de argument list. Dêrnei ferheget it lêste argumint nei it foarige befel, nei útwreiding. Ek yn 'e folsleine triemnamme fan elke kommando útfierd en pleatst yn' e omkriten dy't eksportearre binne nei dat kommando. By it kontrolearjen fan post, hâldt dizze parameter de namme fan it e-post te aktyf opnij.

Shell Variables

De folgjende fariabelen binne ynsteld troch de shell:

BASH

Ferheegje nei de folsleine triemnamme dy't brûkt waard om dit eksimplaar fan bash te opsjen .

BASH_VERSINFO

In readonlik array variable wêrfan leden foar ferzje ynformaasje foar dit eksimplaar fan bash . De wearden dy 't oan' e array-leden oanwêzich binne binne sa:

BASH_VERSINFO [ 0]

It grutte ferzjenûmer (de frijlitting ).

BASH_VERSINFO [ 1]

It lytse ferzjenûmer (de ferzje ).

BASH_VERSINFO [ 2]

De patchnivo.

BASH_VERSINFO [ 3]

De bou ferzje.

BASH_VERSINFO [ 4]

De frijstatusstatus (bygelyks beta1 ).

BASH_VERSINFO [ 5]

De wearde fan MACHTYPE .

BASH_VERSION

Ferwachtet nei in string dy't de ferzje beskriuwt fan dit eksimplaar fan bash .

COMP_CWORD

COMP_LINE

De aktive kommando-rigel. Dizze fariant is allinne beskikber yn skelpfunksjes en eksterne kommando's dy't opnommen wurde troch de programmabel folsleine foarsjennings (sjoch programmabel foltôgje hjirûnder).

COMP_POINT

COMP_WORDS

In array variable (sjoch ûnderwerpen hjirûnder) besteande út de yndividuele wurden yn 'e aktive kommandorigel. Dizze fariabele is allinne beskikber yn shellfunksjes opnomd troch de programmabel folsleine foarsjennings (sjoch programmabel foltôgje hjirûnder).

DIRSTACK

In arrayfariabele (sjoch Arrays hjirûnder) mei de aktuele ynhâld fan 'e triemtafel. Dûbelders ferskine yn 'e stap yn' e oarder dat se werjûn wurde troch de diryn ynboud . It oanmeitsjen fan leden fan dizze arrayfariaasje kin brûkt wurde om mappen al te wizigjen yn 'e stap, mar de pushd en popd ynbouwingen moatte brûkt wurde om foarkar te foarkommen en te ferwiderjen. Taheakke oan dizze fariabele feroaret it hjoeddeiske triemtafel net. As DIRSTACK ûntslein is, ferliest de spesjale eigenskippen, sels as it dan wer weromset wurdt.

EUID

Ferwachtet nei de effektive brûkerside fan 'e aktuele brûker, yllustrearre yn' e shell startup. Dizze fariant is readonlik.

FUNKNAME

De namme fan elk no-útfierende shellfunksje. Dizze fariant bestiet allinich as in shellfunksje útfiert. Beljochten nei FUNCNAME hawwe gjin effekt en jouwe in flaterstatus werom. As FUNCNAME net fûn is, ferliest de spesjale eigenskippen, sels as it dêrnei weromset wurdt.

GROUPS

In fariabele fariant mei de list fan groepen wêrfan de aktuele brûker in lid is. Beliedingen nei GROUPS hawwe gjin effekt en jouwe in flaterstatus werom. As GROUPS ûntslein is, ferliest de spesjale eigenskippen, sels as it dan wer weromset wurdt.

HISTCMD

It skiednisnûmer, of yndeks yn 'e skiednislist, fan it aktive kommando. As HISTCMD ûntslein is, ferliest de spesjale eigenskippen, sels as it nei ferwurke wurdt.

HOSTNAME

Automatysk ynsteld op de namme fan de aktive host.

HOSTTYPE

Automatysk opsletten nei in string dy't unike it type fan masine beskriuwt wêryn bash is útfiere. De standert is systeem-ôfhinklik.

LINENO

Elke kear as dizze parameter referearre is, sette de shell in desimaal nûmer dat it hjoeddeiske opfolgjend line nûmer oangiet (begjinnend mei 1) binnen in skript of funksje. Wannear't net yn in skript of funksje de wearde feroare is, is net garandearre om sinfetsje te wêzen. As LINENO ûntslein is, ferliest de spesjale eigenskippen, sels as it dan nei resultearret.

MACHTYPE

Automatysk opsletten nei in tekenrige wêryn it systeemtype folslein beskriuwt wêr 't bash is útfiere, yn it standert GNU cpu-bedriuwsysteemformaat . De standert is systeem-ôfhinklik.

OLDPWD

It eardere wurkdialooch as ynsteld troch it cd- kommando.

OPTARG

De wearde fan it lêste opsje argumint is ferwurke troch de kommando kommando kommando (sjoch SHELL BUILTIN COMMANDS hjirûnder).

OPTIND

De yndeks fan it neikommende argumint wurdt ferwurke troch de opkommende kommando kommando (sjoch SHELL BUILTIN COMMANDS hjirûnder).

OSTYPE

Automatysk opsletten nei in string dy't beskriuwt it bestjoeringssysteem dêr't de bash útfiert. De standert is systeem-ôfhinklik.

PIPESTATUS

In array variable (sjoch ûnderwerpen hjirûnder) befettet in list fan exitstatuswizen fan 'e prozessen yn' e meast resinte-útfierende foargrûn-pipeline (dy't allinich in ienbeide befetsje kin).

PPID

De proses-ID fan 'e âlder fan' e shell. Dizze fariant is readonlik.

PWD

It hjoeddeistige werktriem dat ynsteld is troch it cd- kommando.

WILLEKEURICH

Alle kearen wurdt dizze parameter referearre, in willekeurige integer tusken 0 en 32767 wurdt generearre. De sesje fan willekeurige nûmers kin inisjalisearre wurde troch in wearde te jaan oan RANDOM . As RANDOM ûntslein is, ferliest de spesjale eigenskippen, sels as it nei ferwurke wurdt.

ANTWURDZJE

Set yn 'e rigel fan ynteken lêze troch it lêzen ynbouwde kommando as der gjin arguminten oanbean wurde.

SECONDS

Elke kear dat dizze parameter referearre wurdt, is it oantal sekonden sûnt shell opnij werjûn. As in wearde tawiisd is oan SECONDS , dan is de wearde weromjûn op de neikommende referinsjes is it tal sekonden sûnt de opdracht plus de wearde dy't oanjûn is. As SECONDS ûntslein is, ferliest de spesjale eigenskippen, sels as it nei ferfolging weromset wurdt.

SHELLOPTS

In kolon-skieden list fan ynskeakele shell-opsjes. Elk wurd yn 'e list is in jildich argumint foar de -o opsje nei it ynstelde kommando kommando (sjoch SHELL BUILTIN COMMANDS hjirûnder). De opsjes dy't ferskine yn SHELLOPTS binne dy rapporteare as op troch -o . As dizze fariabele yn 'e omjouwing is as bash start, sil elke shell-opsje yn' e list ynskeakele wurde foardat jo elke starttriemmen lêze. Dizze fariant is lês-allinnich.

SHLVL

Troch ien kear wurdt elk in begjin fan 'e bash begon.

UID

Ferwacht nei de brûkerside fan 'e aktuele brûker, yllustrearre yn' e shell startup. Dizze fariant is readonlik.

De folgjende fariabelen wurde brûkt troch de shell. Yn guon gefallen is de bash in standertwearde oanbean oan in fariabele; Dizze gefallen binne hjirûnder oanjûn.

BASH_ENV

As dizze parameter ynsteld is as bash in shell-skript útfiert, wurdt syn wearde as in filename befetsje mei befelingen om de shell te begjinnen, lykas yn ~ / .bashrc . De wearde fan BASH_ENV wurdt ûnderdiel fan parameter-útwreiding, kommando-substitution, en arithmetyske útwreiding foardat se as triemnamme ynterpretearre wurde. PATH wurdt net brûkt om te sykjen foar de resultant triemnamme.

CDPATH

De sykpaad foar it cd kommando. Dit is in kolon-getalearre list fan mappen wêrby't de shell siket foar bestimming fan bestimming opjûn troch it cd- kommando. In echte wearde is ".: ~: / Usr".

PYLDER

Brûkt troch it kommando ynstallearre selekteare om de terminalbreedte te bepalen by it selektearjen fan seleksjelisten. Automatysk op it ûntfangen fan in SIGWINCH set.

COMPREPLY

In rigel fariabele fan 'e bash lêze de mooglike ôfleverings dy't generearre wurde troch in shellfunksje dy't opnommen is troch de programmabel betelle ynstallaasje (sjoch programmaabonnemint ).

FCEDIT

De standert bewurker foar it kommando fan fc ynfier.

FIGNORE

In kolon-ôfsûnderde list fan suffixes om te negearjen as jo de triemnamme fertroud meitsje (sjoch ûnderen LINKEN ). In triemnamme wêrfan't it suffiks befettet is ien fan 'e entries yn FIGNORE is útsletten fan' e list mei oerienkommende filenames. In echte wearde is ".o: ~".

GLOBIGNORE

In kolon-skieden list fan patroanen dy't de set fan filenames definieare wurde negeard troch paadwizens útwreiding. As in triemnamme oanpast wurdt troch in padenname útwreidingsmuster ek ien fan 'e patroanen yn GLOBIGNORE , wurdt it fuortsmiten út de list fan wedstriden.

HISTCONTROL

As op in wearde fan ignorespace set wurdt , linen dy't begjinne mei in romte- karakter binne net yn 'e skiednislist ynfierd. As jo ​​op in wearde fan ignoraasjebewurking set wurde , binne linen dy 't oerienkomme oer de lêste histoarje, binne net ynfierd. In wearde fan ignorebot kombinearret de twa opsjes. As ûntslein wurdt of as in oare wearde as de boppesteande binne, wurde alle linen lêzen troch de parser op 'e skiednislist bewarre, ûnder de wearde fan HISTIGNORE . Dizze funksje wurdt oerskreaun troch HISTIGNORE . De twadde en folgjende rigels fan in kommando-kombinaasje mei meardere rigels wurde net hifke, en wurde tafoege oan de skiednis, sûnder de wearde fan HISTCONTROL .

HISTFILE

De namme fan it bestân wêryn de kommando skiednis wurdt bewarre (sjoch HISTORY hjirûnder). De standertwearde is ~ / .bash_history . As ûnjildich is, wurdt de kommando skiednis net bewarre as in ynteraktive shell útkomt.

HISTFILESIZE

It maksimum oantal linen dy't yn 'e skiednis befetsje binne. As dizze fariabele in wearde jûn wurdt, wurdt de skiednis-bestân ferwurde, as nedich is, net mear as it oantal linen befetsje. De standertwearde is 500. De skiednis-bestân is ek ôfskaft nei dizze grutte neidat se skreaun wurde as in interaktive shell útkomt.

HISTIGNORE

In kolon-skieden list fan patroanen brûkt om te kiezen hokker kommando-linen te bewarjen binne op 'e skiednislists. Alle patroanen binne oan it begjin fan 'e rige ferankere en moatte de folsleine line oantsjutte (gjin ymplisite ` * ' is oanbean). Elke patroan is te testen tsjin 'e line neidat de kontrolearrings kontrolearre wurde troch HISTCONTROL . Neist it normale skulpmuster oerienkommende tekens befettet ` & 'de foarige skiednisline. ` & 'kin ûntkomme mei in backslash; de efterkant is fuorthelle foardat jo in wedstriid besykje. De twadde en folgjende rigels fan in kommando-multy-line ferbining wurde net hifke, en wurde oan 'e skiednis tafoegd, sûnder de wearde fan HISTIGNORE .

HISTSIZE

It oantal kommando 's om te ûnthâlden yn' e kommando skiednis (sjoch HISTORY hjirûnder). De standertwearde is 500.

THÚS

It thússide fan de aktive brûker; it standert argumint foar it kommando kommando cd . De wearde fan dizze fariabele wurdt ek brûkt by it útfieren fan de útwreiding.

HOSTFILE

Befettet de namme fan in bestân yn itselde formaat as / etc / hosts dat lêzen wurde moat as de shell in hostnamme foltôgje moat. De list mei mooglik ferfangende hostnammen kin wizige wurde wylst it shell aktyf is; De folgjende kear dat de hostnamme foltôging wurdt besocht nei't de wearde feroare is, bash adds de ynhâld fan 'e nije triem nei de besteande list. As HOSTFILE ynsteld is, mar hat gjin wearde, bash probearret om / etc / hosts te lêzen om de list fan eventuele hostnammen op te heljen. As HOSTFILE net is, wurdt de hostnamme list wiske.

IFS

De ynterne ferdieling fan de yndieling dy't brûkt wurd foar it wurd splittend nei útwreiding en dielen fan linen yn wurden mei it lêzenbeheard kommando. De standertwearde is `` ''.

IGNOREEOF

Kontrolearret de aksje fan in ynteraktive shell op it ûntfangen fan in EOF- karakter as de ienige ynfier. As jo ​​ynsteld binne, is de wearde it oantal opfolgjende EOF- karakters dy't de earste lettertypen op in ynputline te typen moatte foarkom wurde foarkomt. As de fariant bestiet, mar hat gjin numerike wearde, of hat gjin wearde, is de standertwearde 10. As it net bestiet, is EOF it ein fan de ynfier oan 'e shell.

INPUTRC

De triemnamme foar de lêstline startup bestân, oerienkomt it standert fan ~ / .inputrc (sjoch READLINE hjirûnder).

LANG

Brûkt om de lokaal-kategory foar elke kategory te bepalen dy't net spesifyk selektearre is mei in fariant dy't begjint mei LC_ .

LC_ALL

Dizze fariabele reservearret de wearde fan LANG en in oare LC_- fariabele dy't in kategory fan 'e lokale is.

LC_COLLATE

Dizze fariabele bepaalt de opsjes dy't brûkt wurde by it sorten fan de resultaten fan de padename útwreiding, en bepale it gedrach fan rigebedrukken, lykweardigenssklassen, en splitende sellen yn binnen-útwreiding en patroanen.

LC_CTYPE

Dizze fariabele bepale de ynterpretaasje fan karakters en it gedrach fan karakterklassen yn 'e paadwizing-útwreiding en patroanen.

LC_MESSAGES

Dizze fariabele bepale de lokaasje dy't brûkt wurdt om dûbele toetsen foar te setten foarôfgeand troch in $ .

LC_NUMERIC

Dizze fariabele bepale de lokaal-kategory dy't brûkt wurdt foar getallen fan format.

LINES

Brûkt troch it kommando ynstallearre selektearje om de kolomlange te bepalen foar seleksje fan seleksjelisten. Automatysk op it ûntfangen fan in SIGWINCH set.

POST

As dizze parameter ynsteld is op in triemnamme en de MAILPATH- fariabele is net ynsteld, bash informearret de brûker fan de komst fan post yn de opjûne triem.

MAILCHECK

Beskriuwt hoe faak (yn sekonden) bash checks foar post. De standert is 60 sekonden. Wannear't it tiid is om e-mail te kontrolearjen, docht de shell dat foardat de primêre prompt werjûn wurdt. As dizze fariabele net fêststeld is of yn in wearde set is dat net in nûmer grutter as of lyk is nul is, skodt de shell e-post kontrôle.

MAILPATH

In kolon-skieden list fan triemnammen dy't kontrolearre wurde foar post. It berjocht dat printe wurde as it berjocht yn in bepaalde triem komt, kin spesifisearre wurde troch de triemnamme te foarkommen fan it berjocht mei in `? '. Wannear brûkt wurdt yn de tekst fan it berjocht, $ útwreidet nei de namme fan it aktuele e-post. Foarbyld:

MAILPATH = '/ var / mail / bfox?' Jo hawwe post ": ~ / shell-mail?" $ _ Hat mail! "'

Bash jout in standertwearde foar dizze fariabele, mar de lokaasje fan de brûkerspostbestannen dat it brûkt is systeemôfhinklik (bgl. / Var / mail / $ USER ).

OPTERR

As de wearde 1 ynsteld wurdt, wurdt in flater makke troch fluchtoetsen dy't ûntfongen binne troch it kommando kommando- opsjes (sjoch SHELL BUILTIN COMMANDS hjirûnder). OPTERR wurdt elemint op 1 y initialisearre, de shell wurdt oanjûn as in shellskript útfierd wurdt.

PAAD

It sykpaad foar kommando's. It is in kolon-skieden list fan mappen wêrby't de shell socht nei kommando's (sjoch COMMAND-EXECUTION hjirûnder). De standertpaad is systeem-ôfhinklik, en wurdt ynsteld troch de behearder dy't in bash ynstalleart. In mienskiplike wearde is `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT

As dizze fariabele yn 'e omjouwing is as it begjinnende bash is , dan komt de shell yn foar posysje foar it lêzen fan de starttriemmen , as de opsje fan de opsjes opnij fersifene is. As it ynsteld is as de shell aktyf is, bashes posysje posysje , as de kommando set -o posix útfierd is.

PROMPT_COMMAND

As jo ​​ynskeakele wurde, wurdt de wearde as kommando útfierd foardat elke primêre prompt útjûn wurdt.

PS1

De wearde fan dizze parameter wurdt útwreide (sjoch ûndersteande printsjes ) en brûkt as primêre prompt-tekenrige. De standertwearde is `` \ s- \ v \ $ ''.

PS2

De wearde fan dizze parameter wurdt útwreide as by PS1 en brûkt as sekondêre prompt string. De standert is `` > ''.

PS3

De wearde fan dizze parameter wurdt brûkt as in prompt foar it selekteare kommando (sjoch SHELL GRAMMAR boppe).

PS4

De wearde fan dizze parameter wurdt útwreide as by PS1 en de wearde wurdt printe foar elke kommando- bash toand yn in útfieringssysteem. It earste karakter fan PS4 wurdt meardere kearen repostearre, sa nedich, om meardere nivo's fan indireksje oan te jaan. De standert is `` + ''.

TIMEFORMAT

De wearde fan dizze parameter wurdt brûkt as formaatstring om te jaan hoe't de timing-ynformaasje foar pipelines foarkomt mei it tiid reservearre wurd moat werjûn wurde. It % karakter ynfiert in ûntfankende sesje dy't útwreide wurdt oan in tiidwearde of oare ynformaasje. De ûntfankende seksjes en har betsjuttingen binne sa: de harsens betsjutte opsjonele dielen.

%%

In literaal % .

% [ p ] [l] R

De ôfrûne tiid yn sekonden.

% [ p ] [l] U

It oantal CPU sekonden yn 'e brûkersmodus.

% [ p ] [l] S

It oantal CPU-sekonden yn 'e systeemmodus.

% P

De CPU-persintaazje, komputearre as (% U +% S) /% R.

De opsjoneel p is in getal wêrby't de presinsje is , it oantal fraksjonele sifers nei in desimaal punt. In wearde fan 0 feroaret gjin desimaal puntsje of fraksje om útfier te wurden. Op de measte trije plakken nei it desimaal puntsje kinne oantsjutte wurde; Werte fan p grutter as 3 wurde feroare nei 3. As p net oanjûn is wurdt de wearde 3 brûkt.

De opsjoneel l bepaalt in langere formaat, wêrûnder minuten, fan de foarm MM m SS . FF s. De wearde fan p bepaalt de of as de fraksje is opnommen.

As dizze fariabele net ynsteld is, aktyf as as it de wearde $ \ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS hat . As de wearde nul is, wurde gjin timingsynformaasje werjûn. In trailing-nije-ljepper wurdt taheard as de formaat string werjûn wurdt.

TMOUT

As jo ​​op in wearde grutter dan nul sette, wurdt TMOUT behannele as standerttiid foar it lêzen ynbou. It seleksbehearder sil ôfslute as de ynfier pas nei TMOUT sekonden as de yntroduksje fan in terminal komt. Yn in ynteraktive shell wurdt de wearde ynterpretearre as it tal sekonden om te wachtsjen nei ynfier nei it útjaan fan 'e primêre promoasje. Blokkert stopet nei it wachtsjen fan dat oantal sekonden as de ynfier net komt.

auto_resume

Dizze fariabele kontrolearret hoe't de shell ynterakt is mei de brûker en taakkontrôle. As dizze fariabele ynsteld wurdt, wurde inkeld wurd ienfâldige kommando's sûnder opdrachten behannele as kandidaten foar it opnimmen fan in besteande stoppe taak. Der is gjin dûbeldheid tastien; As der mear as ien wurk begjin is mei de string te typen, wurdt de opsje tagelyk tagong ta selektearre. De namme fan in stop-stop, yn dit ferbân, is de kommando-rigel dy't brûkt wurdt om it te begjinnen. As jo ​​op 'e wearde sette, moat de stipe jûn wurde oan' e namme fan in stoppe taak; as jo op substring set hawwe, moat de stipe joegen oan in substring fan 'e namme fan in stop-taak. De substring wearde jout funksjonaliteiten oan 'e % Jobkenner (sjoch JOBControl hjirûnder). As jo ​​op in oare wearde stelle, moat de oanbefelle tekenrige in prefix wêze fan in stoppe job; dit leveret funksjonaliteiten oan by de % job-identifier.

histcharen

De twa of trije tekeningen dy't histoaryske útwreiding en tokenisaasje kontrolearje (sjoch HISTORY EXPANSION hjirûnder). It earste karakter is it skiednis útwreiding- karakter, it karakter dat de start fan in skiednis útwreidzje, normaal ' ! '. It twadde karakter is it snelle subsydzjemint , dat brûkt wurdt as skerm foar it opnij opnij fan it eardere kommando yn te rinnen, it ferfangen fan ien string foar in oar yn it kommando. De standert is ` ^ '. It opsleine tredde karakter is it karakter dat oanjout dat de rest fan 'e rigel in reaksje is as fûn as it earste karakter fan in wurd, normaal ` # '. De skiednis fan kommentaar fan 'e skiednis feroarsaket de skiednisferfanging foar de oerbleaune wurden op' e rigel. It docht net krekt de shell parser om de rest fan de line te behanneljen as kommentaar.

Arrays

Bash jout ien-diminsjoneel fariabele fariabelen. Elke fariant kin brûkt wurde as in array; de ferklearring ynboud sil eksplisyt in array ferklearje. Der is gjin maksimale limyt op 'e grutte fan in array, noch gjin fereaske dat leden wurde yndeksearre of tagelyk oantsjutten. Arrays wurde yndeksearre mei intekeningen en binne nulbasearre.

In array is automatysk makke as der in fariant oanjûn is om it syntaksnamen [ subscript ] = wearde te brûken . De ynskripsje wurdt behannele as in arithmetike ekspresje dy't evaluearret nei in nûmer grutter as of lyk oan nul. Om eksplisyt in array te ferklearjen, brûk in deklaraasje -a namme (sjoch SHELL BUILTIN COMMANDS hjirûnder). ferklearje-in namme [ subscript ] wurdt ek akseptearre; de ynskriuwt wurdt negearre. Attributen kinne spesifisearre wurde foar in arrayfariabele mei de deklaraasje en readonlybouwingen . Elke attribute jildt foar alle leden fan in array.

Arrays wurde oanwêzich mei ferplichte opdrachten fan de form name = ( wearde 1 ... wearde n ) , wêr't elke wearde fan 'e foarm is [ subscript ] = string . Allinne string is ferplicht. As de opsjonele blêden en ynskrift oanlevere wurde, wurdt dizze yndeks oanwêzich; Oars is de yndeks fan it oanbelangjende elemint de lêste yndieling oanbelangst troch de útspraak plus ien. Indexing begjint te nul. Dizze syntaksis wurdt ek akseptearre troch de ferklearring ynboud. Yndividuele array-eleminten kinne oanjûn wurde om de namme [ subscript ] = wearde- syntaks te brûken.

De ûnbidige ynbouw wurdt brûkt om arrays te ferneatigjen. Unbekende namme [ subscript ] fergruttet it array-elemint by yndeksskrift . Unjildich namme , wêrnei de namme in array is, of net ûnbekende namme [ subscript ], dêr't subscript is * of @ , it folsleine array befet.

De deklaraasje , lokaal en readonlyboargen akseptearje allegear in -e opsje om in array op te jaan. De lêsten ynstallearret in -e opsje om in list mei wurden te lêzen fan 'e standertynfier nei in array. De ynstelling en deklaraasjes fan gebouwen befetsje arraywearden op in manier wêrtroch se fertsjinne wurde as opdrachten.

EXPANSION

Untwikkeling wurdt útfierd op 'e kommandorigel nei't se yn wurden dield is. Der binne sân soarten ekspânsje útfierd: pensel útwreidings , nei útwreiding , parameter en fariabele útwreiding , kommando-subsydzje , arithmetyske útwreiding , wurd splitsing , en padenamme útwreiding .

De opdracht fan útwreidings is: spannende útwreiding, útwreiding, parameter, fariabele en arithmetyske útwreiding en kommando-subsydzje (dien yn in lofts-nei-goeie modus), wurd splitsing, en padenamme útwreiding.

Op systemen dy't it stypje, is der in ekstra útwreiding beskikber: process substitution .

Wapensûntwikkeling

De ekspansje fan 'e wapens is in meganisme wêrby't willekeurige stringen generearje kinne. Dizze meganisme is fergelykber mei padename útwreiding , mar de nammen fan filenames moatte net bestean. Patterns dy't útwreide wurde wurde útwreide mei de foarm fan in opsjonele preamble , folge troch in searje komma-getallen stringen tusken in pear pylken, folge troch in opsjonele postscript . It preamble wurdt foarkomme oan elke string dy't binnen de pylken befettet, en it postkript wurdt dêrnei oanbean oan elke resultaat fan string, útwreide links nei rjochts.

Stoommasken-útwreidingen kinne nest wurde. De resultaten fan elke útwreide string wurde net sortearre; lofts nei rjochts bestel is bewarre. Bygelyks, in { d, c, b } e wurdt yn 'ade ace abe' útwreide.

Spul útwreiding wurdt dien foar foardat elke oare útwreidingen, en elke tekens spesjale foar oare útwreidingen wurde bewarre yn it resultaat. It is strang tekstaal. Bash docht gjin inkelde syntaktyske ynterpretaasje oan by it kontekst fan 'e útwreiding of de tekst tusken de spearpunten.

Dit konstrukt wurdt typysk brûkt as skowe as it mienskiplike prefix fan de stringen dy't generearre wurde langer dan yn it hjirboppe foarbyld:

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

of

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

De ekspensaasje fan 'e wapens stelt in lege ynkompatibiliteit mei histoaryske ferzjes fan sh . sh behannelje gjin iepening of sluten spearen spesjaal as se as in wurd fan in wurd ferskine, en bewarje se yn 'e útfier. Bach ferwideret kluzers fan wurden as gefolch fan pylk-útwreiding. Bygelyks, in wurd dat yntrodusearre is as triem {1,2} ferskynt identysk yn 'e útfier. Itselde wurd is as output file1 file2 nei útwreiding troch bash . As strikte kompatibiliteit mei sh is winskje, begjinne mei de + B- opsje útskeakelje of útskeakelse útwreiding mei de + B- opsje nei de setbehearder (sjoch SHELL BUILTIN COMMANDS hjirûnder).

Tilde útwreiding

As in wurd begjint mei in unkorrekte tekenfiguer (` ~ '), wurde alle karakters foarôfgeand oan' e earste net-bewarre slash (of alle karakteren, as der gjin unbeheinde slash is) wurde beskôge as in tilde-prefix . As none of the characters in the tilde prefix are quoted, the characters in the tilde prefix following the tilde are treated as a possible login name . As dizze oanmeldnamme de nul-teken is, wurdt de tilde ferfongen troch de wearde fan de shell-parameter HOME . As HOME is ûnjildich, wurdt it thúsblêd fan 'e brûker útfierd foar de shell. Oarspronklik wurdt de tilde-prefix ferfongen troch it thús directory dat tawiisd is mei de opjûne nammenamme.

As it tilde-prefix in `~ + 'is, ferfange de wearde fan de shell-fariabele PWD it tilde-prefix. As de tilde-prefix in `~ - 'is, is de wearde fan de shell-fariabele OLDPWD , as it ynsteld is wurde ferfongen. As de karakters folgje fan de tilde yn it tilde-prefix besteane út in nûmer N , wierskynlik foarkomt troch in `+ 'of in` -', wurdt it tilde-prefix ferfongen troch it oerienkommende elemint fan 'e triemtafel, lykas it werjûn wurdt troch de dirs ynboude opnij mei de tilde-prefix as argumint. As de karakters folgje fan 'e klok yn' t tilde-prefix besteane út in getal sûnder in lingende '+' of `- ',' + 'wurdt oannommen.

As de oanmeldnamme ûnjildich is, of de útwreiding fan de Tilde falt net it wurd net feroare.

Elke fariabele assignment wurdt kontrolearre foar net-kontrolearre tilde-prefixes fuortendaliks nei in : of = . Yn dizze gefallen wurdt ek útwreiding dien. Dêrom kin men triemnammen mei tildes brûke yn opdrachten nei PATH , MAILPATH , en CDPATH , en de shell tsjinnet de útwreide wearde.

Parameter-útwreiding

It ` $ 'karakter befettet parameter-útwreiding, kommando-substitution, of arithmetyske útwreiding. De parameternamme of it symboal om te útwreide kin wurde yn pylken ynskeakele, dy binne opsjoneel mar servearje om de fariabele te beskermjen om te wreidzjen fan tekens fuortendaliks as gefolch dat bepaald wurde as in part fan de namme.

As gewoanten brûkt wurde, is de oerienkommende einslach de earste ' } ' net ûntfongen troch in efterblazer of binnen in besochte string, en net binnen in embedde arithmetyske útwreiding, kommando-subsydzje, of parameter-útwreiding.

De wearde fan parameter wurdt ferfongen. De paden wurde ferplicht as parameter in posysjeparameter is mei mear as ien sifer, of as de parameter folge wurdt troch in karakter dat net as in diel fan syn namme ynterpretearre wurde sil.

Yn elk fan de neikommende gefallen is it wurd ûnderwerp fan útwreiding, parameter-útwreiding, kommando-substitution en arithmetike útwreiding. As der gjin substring-útwreiding útfiere, bash tests foar in parameter dy't net of net is; it útlitten fan 'e kolon-resultaat is allinich in test foar in parameter dy't net is.

Standert werden brûke . As de parameter ûntslein of nul is, wurdt de útwreiding fan wurd ferfongen. Oars wurdt de parameter wearde ferfongen.

Standert- wearden oanbean . As de parameter net uset of nul is, wurdt de útwreiding fan wurd as parameter oanbean . De wearde fan parameter wurdt dan ferfongen. Posityf parameter en spesjale parameters kinne net op dizze manier oanjûn wurde.

Flater toets sjen as Null of Unset . As de parameter nul is of net ûntslein is, wurdt de útwreiding fan wurd (of in berjocht nei dat effekt as wurd net komt) wurdt skreaun nei de standert flater en de shell, as it net ynteraktyf is, útkomt. Oars wurdt de parameter wearde ferfongen.

Brûk alternatyf wearde . As parameter nul of ûntsettend is, is neat ferfongen, oars wurdt de útwreiding fan wurd ferfongen.

Ferheegje nei de nammen fan fariabelen wêrfan de nammen begjinne mei prefix , skieden troch it earste karakter fan 'e spesjale fariant fan IFS .

De lingte yn tekens fan 'e parameter wearde wurdt ferfongen. As parameter is * of @ , de wearde ferfongen is it oantal posysjeparameters. As parameter is in arraynamme dy't tekene wurdt troch * of @ , de wearde ferfongen is it oantal eleminten yn it array.

It wurd is útwreide om in patroan te kreëarjen krekt lykas yn padenname útwreiding. As it patroan mei it begjin fan 'e parameter wearde komt, dan it resultaat fan' e útwreiding is de útwreide wearde fan parameter mei it koartste oerienkommende patroan (it `` # '' case) of it langste oerienkommende patroan (de `` ## ' 'saak) wiske. As parameter is @ of * , wurdt de ôfbylding fuortsmiten opereard oan elke posysje-parameter oanwêzich, en de útwreiding is de resultaatlike list. As parameter is in array variable mei tekenrige opnommen mei @ of * , wurdt de ôfbylding fuortsmiten opereard oan elke lid fan 'e array yn' e draaien, en de útwreiding is de resultaatlike list.

It wurd is útwreide om in patroan te kreëarjen krekt lykas yn padenname útwreiding. As it patroan in oerienkommende diel fan 'e útwreide wearde fan parameter komt , dan it resultaat fan' e útwreiding is de útwreide wearde fan parameter mei it koartste oerienkommende patroanen (it `` `` 'case) of it langste oerienkommende patroan (de `` % % case 'wiske. As parameter is @ of * , wurdt de ôfbylding fuortsmiten opereard oan elke posysje-parameter oanwêzich, en de útwreiding is de resultaatlike list. As parameter is in array variable mei tekenrige opnommen mei @ of * , wurdt de ôfbylding fuortsmiten opereard oan elke lid fan 'e array yn' e draaien, en de útwreiding is de resultaatlike list.

It patroan is útwreide om in patroan te kreëarjen krekt lykas yn padenname útwreiding. Parameter wurdt útwreide en de langste wedstriid fan patroan tsjin syn wearde wurdt ferfongen troch tekenrige . Yn 'e earste foarm wurdt allinich de earste wedstriid ferfongen. De twadde foarm feroarsaket alle wedstriden fan patroanen te ferfangen troch string . As patroan begjint mei # , moat it oan it begjin fan 'e útwreide wearde fan parameter oanslute. As patroan begjint mei % , moat it oan it ein fan 'e útwreide wearde fan parameter oanslute. As de tekenrige is nul, wurde wedstriden fan lofts wiske en it / neifolgjende patroan kin wegere wurde. As parameter is @ of * , wurdt de opsetting-operaasje tapast op elke posisjoneel parameter, en de útwreiding is de resultaatlike list. As parameter is in array variable mei tekenrige opnommen mei @ of * , wurdt de opsetting-operaasje tapast op elke lid fan 'e array yn' e r yl, en de útwreiding is de resultaatlike list.

Command Substitution

Kommando-substansje lit de útfier fan in kommando de kommando-namme ferfange. Der binne twa foarmen:

$ ( kommando )

of

` kommando`

De bash docht de útwreiding troch it kommando út te fieren en de kommando-subsydzje te ferfangen troch de standertútfier fan it kommando, mei alle trailing nije linen wiske. Yntegrearre nije linen wurde net wiske, mar se kinne wurde fuortsmiten by it wurd splitsen. De kommando-subsydzje $ (kotfile ) kin ferfongen wurde troch it lykweardich, mar flugger $ (< file ).

As de âlde styl eftergrûnfoarm formulier brûkt wurdt, behâldt backslash syn literêre betsjutting útsein as it gefolch is troch $ , ` , of \ . De earste backquote dy't net troch in backslash foarkomt, stopet de kommando-substitution. As jo ​​it formulier $ ( kommando ) brûke, meitsje alle tekens tusken de lieders it kommando op; gjinien wurde spesjaal behannele.

Kommando-substitúsjes kinne ynsteld wurde. Om it nêst te brûken as it brûken fan de efterkant formulier kin, fluch de ynderlike eftergrûnen mei efterblêden.

As de subsydzje binnen dûbele quotes ferskynt, wurd spaltings en paadwiten útwreiding net útfierd wurde op 'e resultaten.

Arithmetyske útwreiding

Aritmetika-útwreiding lit de evaluaasje fan in arithmetike ekspresje en de subsydzje fan it resultaat. It formaat foar arithmetike útwreiding is:

$ (( ekspresje ))

De ekspresje wurdt behannele as wie it binnen dûbele quotes, mar in dûbeld foarkar yn 'e klanken is net spesjaal behannele. Alle tokens yn 'e ekspresje binne ûndergrûn fan parameter útwreiding, string-útwreiding, kommando-substinsje, en sertifikaatôfhanneling. Aritmetikauswurden kinne nest wurde.

De evaluaasje wurdt neffens de regels neamd ûnder ARITHMETIC EVALUATION . As ekspresje ûnjildich is, printsje in berjocht wêr't mislearre is en gjin substitúsje komt.

Process Substitution

Processuswikseling wurdt stipe op systemen dy't stipe nammen ( FIFOs ) of de / dev / fd- metoade foar it iepenjen fan triemmen. It nimt de foarm fan <( list ) of > ( list ) . De prozesslist wurdt útfierd mei syn ynput of output dy't ferbûn is mei in FIFO of guon bestannen yn / dev / fd . De namme fan dizze triem wurdt as argument foar it aktive kommando oerjûn as resultaat fan 'e útwreiding. As it formulier > ( list ) brûkt wurdt, skriuwt yn 't triem de ynfier foar list . As it <( list ) formulier brûkt wurdt, wurdt de triem oerjûn as in argumint moat lêzen wurde om de útfier fan list te krijen.

Wannear beskikber is, wurdt de subsydzjeproseduere simultaneesk mei parameter en fariabele útwreiding, kommando-substitution en arithmetyske útwreiding útfierd.

Word Splitting

De shell scans de resultaten fan parameter-útwreiding, kommando-subsydzje, en arithmetyske útwreiding dy't net binnen boppesteande quotes foar word splitting foarkomt.

De shell behannelet elke karakter fan IFS as delimiter en spalt de resultaten fan 'e oare útwreidingen yn wurden op dizze personaazjes. As de IFS net is, of it wearde is krekt , is it standert, dan is elke folchoarder fan IFS- tekens foar it begripen fan wurden. As IFS in oare wearde hat as de standert, dan sille seken fan 'e whitespace tekensromte romte en ljepper wurde bepaald oan it begjin en ein fan it wurd, salang it karakter fan' e whitespace is yn 'e wearde fan IFS (in IFS- karakter fan karlist ). Elk karakter yn IFS dat net IFS- webside is, mei elk oanswettende IFS- willepunten tekenje, in fjild ôfslute. In folchoarder fan IFS- willepunten is ek behannele as in delimiter. As de wearde fan IFS nul is, wurdt gjin wurd spalting.

Explicit null arguments ( "" of '' ) wurde bewarre. Unbeheinde implikate nul arguminten, resultaat út it útwreidzjen fan parameters dy't gjin wearden hawwe, wurde fuortsmiten. As in parameter mei gjin wearde útwreide is yn dûbele quotes, in nul argumint resultaat en bewarre bleat.

Tink derom dat as der gjin útwreiding komt, wurdt gjin splitsing dien.

PathName-útwreiding

Nei it wurd splitsen, útsein de -f- opsje is ynsteld, bash scans elk wurd foar de tekens * ,? , en [ . As ien fan dizze tekens ferskynt, dan wurdt it wurd as in patroon beskôge, en ferfongen troch in alfabetysk sortearre list fan triemnammen dy't oerienkomme mei it patroan. As der gjin bepaalde triemnammen fûn wurde, en de shell-opsje nullglob is útskeakele, wurdt it wurd ûnvertean litten. As de opsje nullglob ynsteld is en gjin wedstriden wurde fûn, wurdt it wurd wiske. As de shell-opsje nocaseglob ynskeakele is, wurdt de wedstriid sûnder oandacht foar de saak fan alfabetyske karakters útfierd. As in patroan brûkt wurdt foar padename-útwreiding, is it karakter '`.' ' By it begjin fan in namme of fuortendaliks in sylmasjine moat eksplisyt oanjûn wurde, útsein as de opsje fan' e shell opsje set is. Wannear't jo in paadwiziging passe, moat de slash-karakter altyd oanwêzich wêze. Yn oare gefallen wurdt it karakter '`.' ' Net spesjaal behannele. Sjoch de beskriuwing fan shopt hjirûnder ûnder SHELL BUILTIN COMMANDS foar in beskriuwing fan de nocaseglob , nullglob , en dotglob shell opsjes.

De GLOBIGNORE- shell-fariabele kin brûkt wurde om de set fan triemnammen te beheinen mei in patroan . As GLOBIGNORE ynsteld is, wurdt elke oerienkommende triemnamme oanjûn mei ien fan 'e patroanen yn GLOBIGNORE út' e list fan wedstriden. De triemnammen ``. '' En `` .. '' wurde altyd negearre, ek as GLOBIGNORE ynsteld is. Lykwols it ynstellen fan GLOBIGNORE hat it effekt fan it oanmeitsjen fan 'e dotglob shell-opsje, dus alle oare triemnammen begjinne mei in ``.' ' Oerienkomme . Om it âlde gedrach te foarkommen fan it sykjen fan triemnammen te begjinnen mei in '`.' ' , Meitsje` `. *' ' Ien fan' e patroanen yn GLOBIGNORE . De opsje dotglob is útskeakele as GLOBIGNORE net is.

Pattern Matching

Elts karakter dat yn in patroan ferskynt, oars as de spesjale tekenmjittingen dy't hjirûnder beskreaun binne, oansette. It NUL-karakter kin miskien net yn in patroan komme. De spesjale tekennammen moatte opnommen wurde as se letterlik oanpast wurde.

De spesjale tekenfigueren hawwe de folgjende betsjuttings:

*

Spesjalearret eltse string, ynklusyf de nulle string.

?

Spultsjes ien inkeld karakter.

[...]

Spultsje ien fan 'e bepalende tekens. In paar karakter, skieden troch in bibel, betsjut in berikse ekspresje ; elke karakter dy't soarget tusken dizze twa tekens, ynklusyf, mei it brûken fan de aktive locale 's opslaan en tekenset, is oanjûn. As it earste karakter is nei de [ is in ! of in ^ dan alle karakter dy't net oankomt is oerien. De sortearring fan karakters yn rige eksemplaren wurdt bepaald troch de hjoeddeiske locale en de wearde fan de LC_COLLATE shell-fariabele, as opset. A - kin oanpast wurde troch it ynklusyf it as it earste of lêste letter yn it set. A ] kin oanpast wurde troch ynklusyf it as it earste karakter yn 'e set.

Binnen [ en ] kinne karakterklassen wurde oantsjutte mei de syntaksis [: klasse :] , wêrnei't klasse ien fan 'e folgjende lessen is definiearre yn' e POSIX.2 standert:

alnum alfa ascii blank cntrl digit graf leeche print punktromte boppe wurd wurd xdigit
In karakterklasse befettet elke karakter dy't ta de klasse heart. De wurd karakterklasse befettet brieven, sifers, en it karakter _.

Binnen [ en ] kin in equivalence-klasse wurde oantsjutte mei de syntaks [= c =] , dy't alle personaazjes mei deselde kollaboraasjegewicht (lykas definieare troch de hjoeddeistige locale) as it karakter c .

Binnen [ en ] is de syntaksis [. symbol .] komt oerien mei it symboalsyndeks foar symboal .

As de opslagger fan ' e globale shell ynskeakele is mei it gebrûk fan' e shopt-ynbouwing , wurde ferskate útwreide patroanen dy't oansluten fan operators erkend binne. Yn 'e folgjende beskriuwing is in pattern-list in list mei ien of mear patroanen dy't skieden wurde troch in | . Komposite patroanen kinne foarmje mei ien of mear fan 'e folgjende sub-patroanen:

? ( pattern-list )?

Spultsje nul of ien foarkommen fan de opjûne patroanen

* ( pattern-list )

Spullen nul of mear aspekten fan de opjûne patroanen

+ ( pattern-list )

Wedstriden ien of mear aspekten fan de opjûne patroanen

@ ( pattern-list )

Spultsje krekt ien fan de opjûne patroanen

! ( pattern-list )

Besparret wat oars as ien fan de opjûne patroanen

Quote Removal

Nei de foarige útwreidingen wurde alle unkomeare foarkommende gefallen fan 'e tekens \ , ' , 'en ' die net útgien binne fan ien fan 'e boppesteande útwreidingen wurde fuortsmiten.

REDIRECTION

Foard in kommando útfierd wurde kin, kin syn ynfier en útfier ferwidere wurde troch in spesjale notaasje dy't troch it shell ynterpretearre wurdt. Redireksje kin ek brûkt wurde om skermen te iepenjen en te sluten foar it hjoeddeistige skermbehearûnum. De folgjende omlaatoperators kinne foar elkoar in ienfâldige kommando komme of ferskine binnen in kommando folgje. Redireksjes wurde ferwurke yn 'e oarder dy't se ferskine, fan links nei rjochts.

Yn 'e neikommende beskriuwings wurdt as it triem-descriptor-nûmer wegere, en it earste karakter fan' e omdraaieoperator is < de referinsjes ferwizings nei de standertynfier (triemdeskriptor 0). As it earste karakter fan 'e omdraaieoperator is > is , wurdt de omlieding ferwiisd nei de standertútfier (triem descriptor 1).

It wurd nei de redirection-operateur yn 'e neikommende beskriuwingen, útsein as oars oanjûn, wurdt ûnderdiel fan útsluten, útwreiding, parameter útwreiding, kommando-subsydzje, arithmetic-útwreiding, sesifikaasje ferwidering, padenname útwreiding, en wurdferbeling ûndersteld. As it om mear as ien wurd útwreidet, rapportearje in flater.

Tink derom dat de folchoarder fan opdrachten wichtich is. Bygelyks it kommando

ls > dirlist 2 > & 1

Rjochtt de standert output en standert flater nei de triem dirlist , wylst it kommando is

ls 2 > & 1 > dirlist

Rjochtret allinich de standertútfier nei triem dirlist , om't de standert flater as standertútfier duplicearre waard foardat de standertútfier ferwidere waard nei dirlist .

Bash stipet ferskate filenames spesjaal as se brûkt wurde yn oerleveringen, lykas yn 'e folgjende tabel beskreaun:

/ dev / fd / fd

As fd in jildich ynteger is, wurdt triem descriptor fd duplikearre.

/ dev / stdin

Triemdiskript 0 wurdt duplicearre.

/ dev / stdout

Triemdeskriptor 1 wurdt duplikearre.

/ dev / stderr

Triemdeskriptor 2 wurdt duplikearre.

/ dev / tcp / host / port

As host is in jildich hostnamme of Internetadres, en de poarte is in integer poarte-nûmer of tsjinstnamme, bash besocht om in TCP-ferbining te iepenjen oan de oerienkommende socket.

/ dev / udp / host / port

As host is in jildich hostnamme of Internetadres, en de poarte is in integer poarte-nûmer of tsjinstnamme, bash besocht om in UDP-ferbining te iepenjen mei de oerienkommende socket.

In fout dat net iepene of in triem oanmeitsje, feroarsake de omlaat mislearre.

Ynfierútfiere

Ferwidering fan ynfier feroarsake de triem dy't syn namme útfiert fan 'e útwreiding fan wurd om te iepenjen foar it lêzen op triem descriptor n , of de standertynfier (triem descriptor 0) as n net spesifisearre is.

It algemiene formaat foar trochferwizing ynput is:

[ n ] < wurd

Utfierferwizing trochferwurkje

Ferleardering fan de útfier feroarsake de triem dy't syn namme útfiert fan 'e útwreiding fan wurd om te iepenjen foar skriuwen oer triem descriptor n , of de standert output (triem descriptor 1) as n net spesifisearre is. As de bestân net bestiet, wurdt it makke; As it der bestiet, wurdt it ferdronken oant nul grutte.

It algemiene formaat foar it ferwiderjen fan output is:

[ n ] > wurd

As de omdraaieoperator is > , en de noklobber- opsje yn 'e set set is ynskeakele, sil de omlaat falle as de triem dy't syn namme resultaat is út de útwreiding fan wurd en is in gewoane bestân. As de omdraaieoperator is > | , of de omlaatbehearder is > en de noklobber- opsje nei it ynstallearre ynfierbehear is net ynskeakele, de omlaat wurdt besocht sels as de bestânsnamme bestiet.

Oanfoljende útfierd útfier

Ferleardering fan de útfier op 'e saak feroaret de triem dy't syn namme útkomt út' e útwreiding fan wurd om te iepenjen foardat jo op triem descriptor n , of de standert output (triem descriptor 1) as n net oantsjutte is. As de bestân net bestiet, wurdt it makke.

It algemiene formaat foar it oanbieden fan output is:

[ n ] >> wurd

Ferwiderje de standertútfier en standert flater

Bash kin sawol de standertútfier (triem descriptor 1) en de standert flaterútfier (triem descriptor 2) wurde nei de triem ferwidere nei de triem dy namme is de útwreiding fan wurd mei dit konstrukt.

Der binne twa formaten foar it ferwiderjen fan standert output en standert fout:

&> wurd

en

> & wurd

Fan 'e twa foarmen is de earste foarkommen. Dit is semantysk lykweardich

> wurd 2 > & 1

Hjir dokuminten

Dizze soarte fan omlieding betsjuttet de shell om ynput te lêzen fan 'e aktuele boarne oant in rigel wêryn allinich wurd (mei gjin trailing blanken) sjoen wurdt. Alle linen dy't oant dat punt lêzen wurde dan brûkt as standertynfier foar in kommando.

It formaat fan hjir-dokuminten is:

<< [ - ] wurd hjir-dokument delimiter

Gjin parameter-útwreiding, kommando-substitution, arithmetyske útwreiding, of padenname útwreiding wurdt foltôge op wurd . As elke tekens yn wurd wurde beoardielje, is de delimiter it gefolch fan wurdferwidering op wurd , en de linen yn it hjir dokumint binne net útwreide. As wurd net wurdearre wurdt, wurde alle rigels fan it hjir dokumint ûnderwurpen oan parameter-útwreiding, kommando-substitution en arithmetyske útwreiding. Yn it lêste gefal wurdt de karakterfolging \ negearre, en \ moat brûkt wurde om de tekens \ , $ , en ' .

As de omlaatoperator << - is , dan wurde alle liedende tabakkarren fan 'e ynfierlinen ôfstutsen en de line mei delimiter . Dit liedt hjir-dokuminten binnen de shell-skripts op natuerlike wize yndrukke.

Hjir stringen

In fariant fan hjirûnder dokuminten, it formaat is:

<<< wurd

It wurd is útwreide en oanbean oan it kommando op syn standertynfier.

Duplizearje triembehearder

De omlaatoperator

[ n ] <& wurd

wurdt brûkt om duplicate input-triem-descriptors te duplicearjen. As it wurd op ien of meardere sifers útwreidet, wurdt de triem-descriptor oantsjutte mei n wurdt makke om in kopy fan dy bestânskriptor te wêzen. As de sifers yn wurd net in triem-descriptor iepenje foar ynput, komt in omlaatflater mis. As wurd it wurd jout - , is de triem descriptor n sletten. As n net oanjûn is, wurdt de standertynfier (triemdeskriptor 0) brûkt.

De operator

[ n ] > wurd

wurdt lykwols brûkt om duplikaatútfierdeskriptorkers. As n net oanjûn is wurdt de standertútfier (triem descriptor 1) brûkt. As de sifers yn wurd net in triem-descriptor iepenje foarútfier, komt in omlaatflater mis. As spesjale gefal, as n wegere wurdt, en wurd net útwreide nei ien of meardere sifers, wurde de standert output en standert flater as it earder beskreaun omlaat.

Ferwiderje triembehearder

De omlaatoperator

[ n ] <& digit -

ferpleatst de triemdeskriptorstellingen nei de descriptor n , of de standertynfier (triemdeskriptor 0) as n net spesifisearre is. Stifting is sletten nei it duplizearjen nei n .

Lykwols, de omdraaieoperator

[ n ] > & digit -

ferpleatst de triemdeskriptorstellingen nei de descriptor n , of de standertútfier (triem descriptor 1) as n net spesifisearre is.

Iepenje triembehearder foar lêzen en skriuwen

De omlaatoperator

[ n ] <> wurd

feroaret de triem mei wa't namme is de útwreiding fan wurd om te iepenjen foar sawol lêzen en skriuwen op triem descriptor n , of op triemdeskriptor 0 as n net spesifisearre is. As de bestân net bestiet, wurdt it makke.

ALIASES

Aliasen jouwe in tekenrige foar in wurd as it brûkt wurdt as it earste wurd fan in ienfâldige kommando. De shell behannelet in list fan aliases dy't kin setten en ûntsette mei de alias- en unalias ynbouwde kommando's (sjoch SHELL BUILTIN COMMANDS hjirûnder). It earste wurd fan elke kommando, as net besocht, wurdt kontrolearre om te sjen oft it in alias hat. As dat sa is, wurdt it wurd ferfongen troch de tekst fan 'e alias. De aliasnamme en de ferfangende tekst kinne in jildige shell-ynfier befetsje, ynklusyf de hjirboppe neamde metacharacters , mei de útsûndering dat de aliasnamme net befettet = . It earste wurd fan 'e ferfanger-tekst wurdt hifke foar aliasen, mar in wurd dat identysk is mei in alias dy't útwreide wurdt net in twadde kear útwreide. Dit betsjuttet dat men alias ls nei ls -f , bygelyks, en bash besiket net te besprekken om de ferfangende tekst opnij út te wreidzjen. As it lêste karakter fan 'e aliaswearde in lege is , dan wurdt it kommende wurd folch de folchlist nei de alias útwreide.

Aliasen wurde makke en opnommen mei it kommando alias , en fuorthelle mei it kommando unalias .

Der is gjin meganisme om arguminten te brûken yn 'e ferfangende tekst. As arguminten nedich binne, moat in shellfunksje brûkt wurde (sjoch FUNCTIONS hjirûnder).

Aliasen wurde net útwreide as de shell net ynteraktyf is, útsein de útwreide_aliases- shell-opsje is ynstallearre mei shopt (sjoch de beskriuwing fan shopt ûnder SHELL BUILTIN COMMANDS hjirûnder).

De regels foar de definysje en gebrûk fan aliases binne wat ferwidering. Blok altyd lêst op syn minst in folsleine ynlieding foar foardat ien fan 'e kommando's op dizze line útfiert. Aliasen wurde útwreide as in kommando lêzen wurdt, net as it útfiert wurdt. Dêrom ferskynt in aliasdefinition op deselde line as in oare kommando net effekt wurdt oant de folgjende line ynfier lêzen wurdt. De kommando's dy't de alias-definysje op 'e rigel folgje, binne net beynfloede troch de nije alias. Dit gedrach is ek in kwestje as funksjes útfierd wurde. Aliasen wurde útwreide as in funksjedefinaasje lêzen wurdt, net as de funksje útfierd is, om't in funksjedefinysje in selsbehearder is. As gefolch dêrfan binne aliase's definiearre yn in funksje net beskikber oant nei't dy funksje útfiert wurdt. Om feilich te wêzen, stelt aliasde definysjes op in aparte line, en brûke gjin alias yn compound commands.

Foar hast alle doelen wurde aliasen troch skelpfunksjes fertsjinne.

FUNCTIONS

In shellfunksje , beskreaun as hjirboppe beskreaun ûnder SHELL GRAMMAR , bewarret in rige fan kommando's foar letter útfiering. As de namme fan in shellfunksje brûkt wurdt as in ienfâldige kommandoName, sil de list mei kommando's dy funksjenamme ferwurke wurde. Funksjes wurde útfierd yn 't ramt fan' e aktuele shell; gjin nije proses is makke om har te ynterpretearjen (tsjinoer dit mei de útfiering fan in shellskript). As in funksje útfierd wurdt, wurde de arguminten foar de funksje de posysjeparaminten yn 'e útfiering. De spesjale parameter # wurdt aktualisearre om de feroaring te reflektearjen. Posityf parameter 0 is ûnferoare. De fariabele FUNCNAME is ynsteld op de namme fan de funksje wylst de funksje útfiert. Alle oare aspekten fan 'e shell-útfieringsomjouwing binne identyk tusken in funksje en har opropper mei de útsûndering dat de DEBUG- trap (sjoch de beskriuwing fan de trap ynbouwde ûnder SHELL BUILTIN COMMANDS hjirûnder) net erfdield is, of de funksje hat it trace- attribút krigen sjoch de beskriuwing fan de hjirboppe neamde ferklearring ).

Variablen lokale nei de funksje kinne ferklearre wurde mei it lokale ynfierbehear. Gewoanlik binne fariabelen en har wearden dield tusken de funksje en har oprop.

As it kommando-ynterne funksjeútfierd wurdt yn in funksje, foltôgde de funksje en ferfange troch it funksjoneel opnij mei it kommende kommando. As in funksje foltôge wurdt, wurde de wearden fan 'e posysjeparameter en de spesjale parameter # wersteld nei de wearden dy't se foardat de útfiering fan' e funksje hat.

Funksje nammen en definysjes kinne opnommen wurde mei de -f- opsje om de kommando-kommando's te deklarearjen of te typen . De -F- opsje om te deklarearjen of typeset sil allinich de funksjenammen opjaan. Funksjes kinne eksportearre wurde sadat subshells automatysk bepaald hawwe mei de -f- opsje nei de eksport ynbouwing.

Funksjes kinne rekursyf wêze. Gjin limyt wurdt opnommen op it oantal rekursive opropen.

ARITHMETIC EVALUATION

De shell lit aritmetike útdrukkingen te beoardielje, ûnder beskate omstannichheden (sjoch de litte bewarre kommunikaasje en arithmetika-útwreiding ). Evaluaasje wurdt dien yn fêste-breedte-yntekeners mei gjin kontrôle foar oerflak, al is de divyzje troch 0 is fongen en as flagge markearre. De operators en har foarried en assosjatyf binne itselde as yn 'e C-taal. De folgjende list fan operators is groepearre yn nivo's fan gelikense-foarsitter-operators. De nivo 's wurde opnaam yn' e oarder fan ôfwiking fan prioriteit.

id ++ id -

variable post-ynkomming en post-beslút

++ id - id

variable foarynkommens en foarôfdrukking

- +

unary minus en plus

! ~

logysk en bitsjine negaasje

**

eksponinsje

* /%

multiplikaasje, divyzje, residinsje

+ -

Addition, subtraksje

<< >>

lofts en rjochts bitsjuttige fergunnings

<=> = <>

fergeliking

==! =

gelikensens en ûngelikens

&

bitewearje en

^

bitewei eksklusyf OR

|

biteware of

&&

logysk EN

||

logyske OR

expr ? expr : ekspr

conditional evaluation

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

opdracht

expr1 , expr2

komma

Shell-fariabelen binne tastien as operanten; Parameter útwreiding wurdt dien dien foar't de ekspresje evaluearre wurdt. Binnen in ekspresje kinne foarmen fan skelpen ek troch namme neamd wurde sûnder de parameter-útwreiding syntaksis te brûken. De wearde fan in fariabele wurdt evaluearre as in arithmetike ekspresje as it referearre is. In shell-fariabele needsaak hawwe net inkel allinich attribút om te brûken yn in ekspresje.

Konstanten mei in liedende 0 wurde as octaalnûmers ynterpretearre. In liedende 0x of 0x betsjut hexadezimal. Oarspronklike getallen nimme de foarm [ base # ] n, dêr't basis is in desimaal nûmer tusken 2 en 64 foar de arithmetike basis, en n is in nûmer yn dy basis. As basis # is wegere, wurdt de base 10 brûkt. De sifers grutter as 9 wurde fertsjintwurdige troch de lytse letters, de haadletters, @, en _, yn dy folchoarder. As basis net minder of of 36 is, kinne lytse letters en haadletters yntertekenber brûkt wurde om getallen tusken 10 en 35 te fertsjinjen.

Betancers wurde evaluearre yn folchoarder fan prioriteit. Sub-útdrukken yn klamaten wurde earst evaluearre en kinne de foarriedige regels hjirboppe oerskriuwe.

FERDISLIKE EXPRESSIONS

Conditieare útdrukkings wurde brûkt troch it [[ befettingsbefêstiging en de test en [ ynbouwde kommando's om bestânfiles te testen en string- en arithmetike fergeliken út te fieren. Ekspresjes binne foarme út de folgjende unary of binêre primêr. As jo ​​in pear argumint foar ien fan 'e primêren is fan' e foarm / dev / fd / n , dan wurdt triem descriptor n kontrolearre. As de triem argumint oan ien fan 'e primêr is ien fan' e dev / stdin / dev / stdout , of / dev / stderr , triem-descriptor 0, 1, of 2 respektivelik wurdt kontrolearre.

-a file

True as bestân bestiet.

-b bestân

True as triem bestiet en in spesjale triem is.

-c bestân

True as bestân bestiet en is in karakter fan spesjale triem.

-d bestân

True as triem bestiet en is in map.

-e triem

True as bestân bestiet.

-f bestân

True as triem bestiet en is in gewoane bestân.

-g bestân

True as triem bestiet en is set-group-id.

-h triem

True as bestân bestiet en is in symboalyske keppeling.

-k bestân

True as bestân bestiet en syn "kleppe" bit is ynsteld.

-p bestân

True as bestân bestiet en is in ferneamd pip (FIFO).

-r triem

True as triem bestiet en is lêsber.

-s bestân

True as bestân bestiet en hat in grutte grutter as nul.

-t fd

True as triem descriptor fd is iepen en ferwiist nei in terminal.

-u triem

True as bestân bestiet en syn set-user-id bit is ynsteld.

-w triem

True as bestân bestiet en is skriuwber.

-x bestannen

True as bestân bestiet en is útfierber.

-O bestân

True as bestân bestiet en is eigendom fan 'e effektive brûkers id.

-G triem

True as bestân bestiet en is eigendom fan 'e effektive groep id.

-L triem

True as bestân bestiet en is in symboalyske keppeling.

-S triem

True as bestân bestiet en is in socket.

-N triem

True as bestân bestiet en is feroare sûnt it lêste lêzen is.

file1 - nt file2

True as file1 is nijere (neffens wizigingsdatum) as file2 , of as bestân1 bestiet en file2 net.

file1 - ot file2

True as file1 is âlder as file2 , of as triem2 bestiet en file1 bestiet net.

file1 -ef file2

Wiere as file1 and file2 ferwize nei deselde apparaat en inod-getallen.

-o optname

True as shell opsjeoptName is ynskeakele. Sjoch de list fan opsjes ûnder de beskriuwing fan de -o- opsje nei de ynstallaasje hjirûnder.

-z string

True as de lingte fan string nul is.

-n string

string

True as de lingte fan string net-nul is.

string1 == string2

True as de snaren binne lykweardich. = kin brûkt wurde yn plak fan == foar string POSIX konform.

string1 ! = string2

True as de snaren net lyk binne.

string1 < string2

True as string1 sortsje foar string2 lexicografysk yn it hjoeddeiske locale.

string1 > string2

Wier as string1 nei string2 sorteart lexikografysk yn 'e hjoeddeiske locale.

arg1 OP arg2

OP is ien fan -eq , -ne , -lt , -le , -gt , of -ge . Dizze arithmetyske binêre operators bringt wier as arg1 is lyk oan, net-gemiddelde, minder as, minder as of lykweardich, grutter as of grut of as arg2 . Arg1 en arg2 kinne positive of negative intekeningen wêze.

SIMPLE COMMAND-EXPANSION

As in ienfâldige kommando útfierd wurdt, útfiert de shell de folgjende útwreidingen, opdrachten en opdrachten, fan lofts nei rjochts.

1.

De wurden dy't de parser markearre hat as fariabele opdrachten (dy't foarôfgeand oan de kommandnamme binne) en opdrachten binne bewarre foar lettere ferwurking.

2.

De wurden dy't gjin fariabele opdrachten of opdrachten binne útwreide. As ienige wurden nei útwreiding bliuwe, wurdt it earste wurd neamd om de namme fan it kommando te wêzen en de oerbleaunwurden binne de arguminten.

3.

Redireksjes wurde foltôge as hjirboppe beskreaun ûnder REDIRECTION .

4.

De tekst nei de = yn elke fariabele oanbelangjende ûnderwerp wurdt ûnderdiel útwreide, parameter útwreiding, kommando-substitution, arithmetike útwreiding, en sertifikaat wiskje foardat de fariant oanwêzich is.

As gjin kommando-namme resultaat, hawwe de fariabele opdrachten de aktuele shell-omjouwing. Oars wurde de fariabelen tafoegje oan it miljeu fan 'e útfierde kommando en hawwe gjin ynfloed op de hjoeddeistige shell-omjouwing. As ien fan 'e assigningen besiket in wearde te jaan oan in readonlike fariabele, dan komt in flater, en it kommando is útskeakele mei in net-nul-status.

As gjin kommando-namme resultaat, wurde oerferwizings útfierd, mar beynfloedzje net de hjoeddeistige shell-omjouwing. In omdraaiefout feroarsake it kommando om út te gean mei in net-nul-status.

As der in kommando-namme is nei útwreiding, sil de útfining as hjirûnder beskreaun wurdt. Oars is it kommando út. As ien fan 'e útwreidingen in kommando-substitution hat, is de útgongstatus fan it kommando de útgongstatus fan' e lêste kommando-substitution dy't útfierd is. As der gjin kommando-substitúsjes wiene, giet it kommando mei in status fan nul.

COMMAND-EXECUTION

Nei in kommando is splitst yn wurden, as it resultaat is yn in ienfâldige kommando en in opsjonele list fan arguminten, wurde de folgjende aksjes opnommen.

As de kommando-namme gjin slashes befettet, besykje de shell it te finen. As der in shellfunksje hat mei dizze namme, dizze funksje wurdt opnommen as hjirboppe beskreaun yn FUNCTIONS . As de namme net in funksje is, siket de shell dêrfoar yn 'e list fan shell ynbouwingen. As in wedstriid fûn is, wurdt dizze ynstallaasje opnommen.

As de namme noch gjin shellfunksje is of in ynboude is, en befettet gjin slashes, bashest alle eleminten fan 'e PATH nei in map mei in útfierbere triem mei dy namme. Bash brûkt in hântafel om de folsleine padennammen fan útfierbere triemen te heurearjen (sjoch Hast by SHELL BUILTIN COMMANDS hjirûnder). In folsleine sykopdracht fan de mappen yn PATH wurdt allinich funksjonei as it kommando net fûn wurdt yn 'e hashtafel. As it sykjen is ûnjildich, druk de shell in flaterne berjocht en jout in útgongstatus fan 127 werom.

As de syktocht súksesfol is, of as de kommando-namme ien of mear slashkes befettet, útfiert de shell de neamde programma yn in aparte útfieringsomjouwing. Argumint 0 is ynsteld op de namme jûn, en de oerbleaun arguminten nei it kommando binne ynsteld nei de arguminten as gegevens.

As dizze eksekúsje mislearre omdat de triem net yn útfierber formaat is, en de triem is net in map, dan wurdt as in skelp skript , in triem mei shellkommando's. In subshell is útsprutsen om it út te fieren. Dit subsydzjerelet himsels op 'e nij, sadat de effekt as soe in nije shell opnommen wurde om it skript te behanneljen, mei de útsûndering dat de lokaasjes fan kommando's troch de âlder wurde bewarre (sjoch haha ûnder SHELL BUILTIN COMMANDS ) wurde bewarre troch it bern.

As it programma in triem begjint mei #! , de rest fan 'e earste line jout in interpreter foar it programma. De shell útfiert de oantsjutte interpreter op bestjoersystemen dy't dizze útfierbere formaat sels net beheare. De arguminten foar de tolk bestiet út in inkele fakultatyf argumint nei de ynterpreter namme op 'e earste line fan it programma, folge troch de namme fan it programma, folge troch de kommando arguminten, as der is.

COMMAND-EXECUTION ENVIRONMENT

De shell hat in útfieringsomjouwing , dy't bestiet út 'e neikommende:

*

Iepenje triemmen geane troch de shell troch opnij, lykas wizige troch reewilligingen dy 't oan' e útfier ynfierd binne

*

it hjoeddeiske werkbehear as ynsteld troch cd , pushd , of popd , of feroare troch de shell by ynnoeging

*

it masker meitsjen fan triemmodus as set troch omask of herinneringen fan de âlder fan 'e shell

*

hjoeddeiske traps set troch trap

*

shellparameters dy't troch fariabele opdracht setten binne of mei in set of herinneringen út 'e buorkerken fan' e shell yn 'e omjouwing

*

shellfunksjes fûn yn 'e útfiering definiearre of feroare fan' e âlder fan 'e shell yn' e omjouwing

*

Opsjes ynskeakele binne by it opnakken (sawol standaard as mei arguminten fan kommando-line) of troch set

*

opsjes ynskeakele troch shopt

*

shell aliases definiearre mei alias

*

ferskate process IDs, ynklusyf de eftergrûnwurden, de wearde fan $$ , en de wearde fan $ PPID

As in ienfâldige kommando oars as in ynstallaasje of shellfunksje útfiert wurde, wurdt it opnommen yn in aparte útfieringsomjouwing dat bestiet út de neikommende. Sûnder oars oanjûn, wurde de wearden fan it skul geane.

*

de iepensteande bestannen fan 'e shell, plus alle modifikaasjes en oanfollingen omskreaun troch opdrachten nei it kommando

*

it hjoeddeiske werktrochresultaat

*

it masker foar it meitsjen fan triemmodus

*

Shellvariablen binne markearre foar eksport, tegearre mei fariabelen dy't eksportearre binne foar it kommando, passe yn 'e omjouwing

*

Traps dy't troch it shell fermindere wurde weromsetten op de wearden dy't de âldens fan 'e shell fertsjinne, en traps dy't troch de shell net bewarre wurde wurde negearre

In kommando opnij yn dizze aparte miljeu kin net beynfloedzje op it útfieringsomjouwing fan 'e shell.

Kommando-subsydzje en asynchrone kommando sille opfrege wurde yn in subshell-omjouwing dy't in dûbele fan 'e shell-omjouwing is, útsein dat traps dy't troch de shell fongen binne weromset wurde nei de wearden dy't de shell oernommen hat fan syn âlder by oproppen. Befettingsbeheardingen dy't berekkene wurde as in rigel binne ek útfierd yn in subshell-omjouwing. Feroaringen dy't makke binne yn it subshell-omjouwing kinne net beynfloedzje op it útfieringsomjouwing fan 'e shell.

As in kommando folge wurdt troch in & taakopsje is net aktyf, de standert standertynfier foar it kommando is de lege bestân / dev / null . Oarspronklik hat it berekkene kommando de triem-descriptors fan de oproppe shell ferfarren as wizige troch reewilligingen.

SJOCH EK

Bash Reference Manual , Brian Fox en Chet Ramey

De Gnu Readline-biblioteek , Brian Fox en Chet Ramey

De Gnu Skiednisbibleteek , Brian Fox en Chet Ramey

Portable Operating System Interface (POSIX) Diel 2: Shell en Utilities , IEEE

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

emacs (1), vi (1)

readline (3)