Bash - lòd Linux - UNIX lòd

NON

bach - GNU Bourne-ankò SHELL

SYNOPSIS

bash [opsyon] [dosye]

DESKRIPSYON

Bach se yon entèprèt langaj ki konfimab ki egzekite ke li soti nan opinyon estanda a oswa nan yon dosye. Bach tou enkòpore karakteristik itil soti nan kokiy yo Korn ak C ( ksh ak csh ).

Bach la gen entansyon fè yon aplikasyon konfòmeman nan IEEE POSIX Shell ak Zouti spesifikasyon (IEEE Working Group 1003.2).

OPSYON

Anplis opsyon koki sèl-karaktè ki dokimante nan deskripsyon an nan lòd batiin a, bash entèprete opsyon sa yo lè li envoke:

-c fisèl

Si opsyon -c la prezan, lè sa a kòmandman yo li nan fisèl . Si gen agiman apre fisèl la , yo asiyen nan paramèt yo positional, kòmanse avèk $ 0 .

-i

Si opsyon -i a prezan, koki an se entèaktif .

-l

Fè zak bach tankou si li te envoke kòm yon koki login (gade ENPÒKASYON anba a).

-r

Si opsyon -r la prezan, koki an vin limite (gade REZIME SHELL anba a).

-s

Si opsyon -la se prezan, oswa si pa gen okenn agiman rete apre yo fin pwosesis opsyon, Lè sa a, kòmandman yo li nan opinyon estanda a. Opsyon sa a pèmèt paramèt posisyonèl yo dwe mete lè envoke yon koki entèaktif.

-D

Yon lis tout strings doub ki site anvan $ an enprime sou ouput estanda a. Sa yo se strings yo ki sijè a tradiksyon lang lè lokale aktyèl la se pa C oswa POSIX . Sa implique opsyon -n ; pa gen okenn kòmandman yo pral egzekite.

[...] O [ shopt_option ]

shopt_option se youn nan opsyon yo koki aksepte pa bati a shopt (al gade SHELL BUILTIN COMMANDS anba a). Si shopt_option prezan, -O etabli valè opsyon sa a; + O non li. Si shopt_option pa apwovizyone, non ak valè opsyon koki aksepte pa shopt yo enprime sou pwodiksyon estanda a. Si opsyon a envokasyon se + O , se pwodiksyon an parèt nan yon fòma ki ka reyitilize kòm opinyon.

-

A - siyal nan fen opsyon ak désactivée pwosesis plis opsyon. Nenpòt agiman apre - yo trete kòm fichye ak agiman. Yon agiman nan - se ekivalan a - .

Bach tou entèprete yon kantite opsyon milti-karaktè. Opsyon sa yo dwe parèt sou liy lan lòd anvan opsyon yo sèl-karaktè yo dwe rekonèt.

- Dump-po-strings

Ekivalan a -D , men pwodiksyon an se nan GNU gettext po a (pòtab objè) fòma dosye.

- Dump-strings

Ekivalan a-D.

- ede

Montre yon mesaj l 'sou pwodiksyon estanda ak sòti avèk siksè.

- dosye-dosye dosye

- dosye rkfile

Ekzekite kòmandman ki soti nan dosye olye pou yo dosye a inisyal pèsonèl ~ / .bashrc si koki an se entèaktif (gade ENPÒKASYON anba a).

--ouvri sesyon an

Ekivalan a -l .

-

Pa sèvi ak bibliyotèk lekti GNU pou l li liy lòd lè koki an entèaktif.

--nopwofil

Pa li swa dosye a demaraj sistèm / lajè / pwofil oswa nenpòt nan dosye yo inisyal pèsonèl ~ / .bash_profile , ~ / .bash_login , oswa ~ / .profile . Pa default, bash li dosye sa yo lè li envoke kòm yon koki login (gade ENPÒKASYON anba a).

--norc

Pa li ak egzekite dosye a inisyal pèsonèl ~ / .bashrc si koki an se entèaktif. Opsyon sa a se sou pa default si se koki a envoke kòm sh .

--Pozisyon

Chanje konpòtman an nan bach kote operasyon an default diferan de la POSIX 1003.2 estanda matche ak estanda a ( posix mòd ).

- restriksyon

Koki a vin limite (gade REZIME SHELL anba a).

- rpm-mande

Pwodui lis la nan dosye ki nesesè pou script la koki nan kouri. Sa a implique '-n' e se sijè a menm limit yo kòm tan konpile tcheke erè tcheke; Baktik, [] tès, ak evaly yo pa parsed pou kèk depandans ka rate. --verbose ekivalan a -v .

--version

Montre vèsyon enfòmasyon pou sa a egzanp nan bach sou pwodiksyon an estanda ak sòti avèk siksè.

ARGUMENTS

Si agiman rete apre yo fin pwosesis opsyon, epi ni opsyon -k ni opsyon -s la te apwovizyone, premye agiman an sipoze non an nan yon dosye ki gen kòmandman koki. Si bach ap envoke nan sa a alamòd, $ 0 se mete nan non an nan dosye a, ak paramèt yo positional yo mete agiman ki rete yo. Bach li ak ekzekite kòmandman ki soti nan dosye sa a, Lè sa a, sòti. Sòti bach la estati se estati a sòti nan lòd ki sot pase a egzekite nan script la. Si pa gen kòmandman yo egzekite, estati a sòti se 0. Yon tantativ premye te fè yo louvri dosye a nan anyè aktyèl la, epi, si yo pa jwenn okenn dosye, Lè sa a, koki a fouy repèrtwar yo nan PATH pou script la.

ENPOKASYON

Yon koki login se youn ki gen premye karaktè nan zewo agiman se yon - , oswa yon sèl te kòmanse avèk opsyon nan --login .

Yon koki entèaktif se yon sèl te kòmanse san yo pa agiman ki pa opsyon ak san opsyon nan -c ki gen opinyon estanda ak pwodiksyon yo tou de ki konekte nan tèminal (jan yo detèmine pa isatty (3)), oswa yon sèl te kòmanse ak opsyon nan -i . PS1 mete ak $ - gen ladan mwen si bach se entèaktif, sa ki pèmèt yon script koki oswa yon dosye demaraj li teste eta sa a.

Paragraf sa yo dekri kouman bach ègzekutra dosye demaraj li yo. Si nenpòt nan dosye yo egziste men li pa ka li, bach rapò yon erè. Tildes yo elaji nan non dosye yo jan sa dekri pi ba a anba Tilde Ekspansyon nan seksyon EXPANSION .

bach ap envoke kòm yon koki login entèaktif, oswa kòm yon koki ki pa entèaktif ak opsyon nan -login , li premye li ak ègzekutra kòmandman soti nan dosye a / elatriye / pwofil , si dosye sa a egziste. Apre lekti ke dosye a, li sanble pou ~ / .bash_profile , ~ / .bash_login , ak ~ / .profile , nan ki lòd, ak li ak ègzekutra kòmandman soti nan yon sèl nan premye ki egziste ak se lizib. Opsyon nopwofil la ka itilize lè koki an kòmanse anpeche konpòtman sa a.

Lè yon kokiy login sòti, bash li ak ègzekite kòmandman soti nan dosye a ~ / .bash_logout , si li egziste.

Lè yon koki entèaktif ki pa yon koki login te kòmanse, bash li ak ègzekutra kòmandman soti nan ~ / .bashrc , si dosye sa a egziste. Sa a ka inibit lè l sèvi avèk opsyon nan - nork . Opsyon nan dosye rkfile pral fòse frape li ak egzekite kòmandman soti nan dosye olye pou yo ~ / .bashrc .

bach la kòmanse ki pa interactively, nan kouri yon script koki, pou egzanp, li sanble pou BASH_ENV a varyab nan anviwònman an, ogmante valè li yo si li parèt la, epi li sèvi ak valè a elaji kòm non an nan yon dosye li ak egzekite . Bach konpòte li kòm si yo te lòd sa a egzekite:

si [-n "$ BASH_ENV"]; lè sa a. "$ BASH_ENV"; fi

men valè varyab PATH la pa itilize pou fè rechèch pou non dosye a.

Si bach ap envoke ak sh la non, li ap eseye imite konpòtman an demaraj nan vèsyon istorik nan sh kòm byen ke posib, pandan y ap konfòme yo ak estanda a POSIX tou. Lè yo envoke kòm yon koki login entèaktif, oswa yon koki ki pa entèaktif ak opsyon nan -login , li premye eseye li ak egzekite kòmandman soti nan / etc / pwofil ak ~ / .profile , nan lòd sa a. Opsyon nopwofil la ka itilize pou anpeche konpòtman sa a. Lè envoke kòm yon koki entèaktif ak sh a , bash sanble pou ENV a varyab, ogmante valè li yo si li defini, epi li sèvi ak valè a elaji kòm non an nan yon dosye li ak egzekite. Depi yon koki envoke kòm sh pa eseye li ak egzekite kòmandman nan nenpòt lòt dosye demaraj, opsyon nan - rcfile pa gen okenn efè. Yon koki ki pa entèaktif envoke ak sh a non pa eseye li nenpòt lòt dosye demaraj. Lè envoke kòm sh , bash antre nan mòd posix apre dosye yo demaraj yo li.

bach la te kòmanse nan mòd posix , menm jan ak opsyon nan liy lòd --posix , li swiv estanda a POSIX pou dosye demaraj. Nan sa a mòd, kokiy entèaktif elaji ENV varyab la ak kòmandman yo li ak egzekite nan dosye a ki gen non se valè a elaji. Pa gen lòt dosye demaraj yo li.

Bach eseye detèmine lè li te kouri pa domaje a koki aleka, anjeneral, rshd . Si bach detèmine ke li te kouri pa rshd , li li ak ègzekutra kòmandman soti nan ~ / .bashrc , si dosye sa a egziste ak se lizib. Li pa pral fè sa si envoke kòm sh . Opsyon nan -norc yo ka itilize anpeche konpòtman sa a, epi opsyon nan - rcfile ka itilize fòse yon lòt dosye yo dwe li, men rshd pa jeneralman envoke koki a ak opsyon sa yo oswa pèmèt yo dwe espesifye.

Si koki an kòmanse ak itilizatè a efikas (gwoup) id pa egal a itilizatè a reyèl (gwoup) id, ak opsyon nan -p pa apwovizyone, pa gen okenn dosye demaraj yo li, fonksyon koki pa eritye nan anviwònman an, SHELLOPTS yo varyab, si li parèt nan anviwònman an, se inyore, epi id idantite a efikas se mete nan itilizatè a reyèl id. Si se -p opsyon an apwovizyone nan envokasyon, konpòtman an demaraj se menm bagay la, men ID itilizatè a efikas pa reset.

DEFINISYON

Definisyon sa yo yo itilize nan tout rès dokiman sa a.

vid

Yon espas oswa yon tab.

mo

Yon sekans nan karaktè konsidere kòm yon inite sèl pa koki an. Epitou li te ye kòm yon siy .

non

Yon mo ki gen ladan sèlman nan karaktè alfabè ak siy, ak kòmanse ak yon karaktè alfabè oswa yon souliye. Epitou refere yo kòm yon idantifyan .

metacharacter

Yon karaktè ki, lè yo pa site, separe mo yo. Youn nan bagay sa yo:

| &; () <> espas tab

kontwòl operatè

Yon siy ki fè yon fonksyon kontwòl. Li se youn nan senbòl sa yo:

|| & &&; ;; () |

RESÈVYE PA

Mo ki rezève yo se mo ki gen yon siyifikasyon espesyal koki an. Mo sa yo rekonèt kòm rezève lè yo pa site ak swa premye mo yon lòd senp (gade SHELL GRAMMAR anba a) oswa twazyèm pawòl yon ka oswa pou lòd:

! ka fè elif lòt bagay esac fi pou fonksyon si nan chwazi Lè sa a, jouk lè {} tan [[]]

SHELL GRAMMAR

Kòmand senp

Yon lòd ki senp se yon sekans nan devwa varyab opsyonèl ki te swiv pa mo vid- redaksyon ak rdirèksyon, ak sispann pa yon operatè kontwòl . Premye mo a espesifye lòd la yo dwe egzekite, epi yo pase kòm agiman zewo. Pawòl ki rete yo ap pase kòm agiman nan lòd la envoke.

Valè a retounen nan yon lòd senp se estati sòti li yo, oswa 128+ n si se lòd la sispann pa siyal n .

Pipelines

Yon tiyo se yon sekans nan youn oswa plizyè kòmandman ki separe pa pèsonaj la . Fòma a pou yon tiyo se:

[ tan [ -p ]] [! ] kòmandman [ | Command2 ...]

Se pwodiksyon an estanda nan lòd konekte atravè yon tiyo opinyon an estanda nan command2 . Koneksyon sa a fèt anvan nenpòt ki redireksyon espesifye nan lòd la (gade REDIREKSYON anba a).

Si mo a rezève ! prevwa yon tiyo, estati a sòti nan tiyo sa a se PA a ki lojik nan estati a sòti nan lòd ki sot pase a. Sinon, estati a nan tiyo a se estati a sòti nan lòd ki sot pase a. Koki a tann pou tout kòmandman yo nan tiyo a mete fen anvan retounen yon valè.

Si tan an rezève mo anpeche yon tiyo, ki pase a kòm byen ke itilizatè ak tan sistèm konsome pa ekzekisyon li yo rapòte lè tiyo a mete fen. Opsyon -p la chanje fòma pwodiksyon an ki espesifye pa POSIX. Yo ka fikse varyab TIMEFORMAT nan yon fòma fòma ki presize ki jan yo ta dwe afiche enfòmasyon an. gade deskripsyon TIMEFORMAT anba vale Shell anba a.

Chak lòd nan yon tiyo egzekite kòm yon pwosesis separe (sètadi, nan yon subshell).

Lis

Yon lis se yon sekans nan youn oswa plizyè tuyaux ki separe pa youn nan operatè yo ; , & , && , oswa || , ak opsyonèlman sispann nan youn nan ; , & , oswa .

Nan lis sa yo operatè, && ak || gen priyorite egal, ki te swiv pa ; ak &, ki gen egalite priyorite.

Yon sekans nan youn oswa plis Newlines ka parèt nan yon lis olye pou yo yon semicolon détermin kòmandman.

Si yon lòd yo sispann nan operatè a kontwòl & , koki a ègzekutra lòd la nan background nan nan yon subshell. Koki a pa rete tann lòd la fini, ak estati retou a se 0. Kòmand ki separe pa yon ; yo egzekite sekans; koki an tann pou chak lòd pou mete fen nan vire. Estati retou a se estati a sòti nan lòd ki sot pase a egzekite.

Operatè kontwòl yo && ak || endike AK lis ak OSWA bay lis, respektivman. Yon lis AK gen fòm lan

command1 && command2

command2 se egzekite si, e sèlman si, command1 retounen yon estati sòti nan zewo.

Yon lis OSWA gen fòm lan

command1 | command2

command2 se egzekite si ak sèlman si command1 retounen yon estati sòti ki pa zewo. Estati retou nan AND ak OSWA lis la se estati a sòti nan lòd ki sot pase a egzekite nan lis la.

Konpoze Commands

Yon lòd konpoze se youn nan bagay sa yo:

( lis )

lis la egzekite nan yon subshell. Pozisyon Variable ak commandin ki afekte anviwònman koki a pa rete an efè apre yo fin ranpli lòd la. Estati a retounen se estati a sòti nan lis .

{ lis ; }}

lis senpleman egzekite nan anviwònman an koki kounye a. lis yo dwe sispann ak yon nouvo liy oswa semicolon. Sa a se ke yo rekonèt kòm yon lòd gwoup . Estati a retounen se estati a sòti nan lis . Remake byen ke kontrèman ak metacharacters yo ( ak ) , { ak } yo rezève mo epi yo dwe rive kote yo ka yon mo ki rezève pou yo rekonèt. Depi yo pa lakòz yon mo kraze, yo dwe separe de lis pa blan.

( ekspresyon ))

Ekspresyon an evalye selon règleman yo dekri anba a anba Evalyasyon ARITHMETIC . Si valè ekspresyon an ki pa zewo, estati retou a se 0; otreman estati retou a se 1. Sa a se egzakteman ekivalan kite " ekspresyon ".

[ ekspresyon ]]

Retounen yon estati 0 oswa 1 depann sou evalyasyon ekspresyon ekspresyon kondisyonèl la. Ekspresyon yo konpoze de primè ki dekri anba a anba EXPRESSION KONDISYON . Pawòl divize ak ekspansyon chemen yo pa fèt sou mo ki genyen ant [[ ak ]] yo ; Tilde ekspansyon, paramèt ak ekspansyon varyab, aritmetik ekspansyon, sibstitisyon lòd, sibstitisyon pwosesis, ak retire retire yo fèt.

Lè operatè yo == ak ! = Yo itilize, se fisèl la sou bò dwat la nan operatè a konsidere kòm yon modèl ak matche dapre règ yo ki dekri anba a anba modèl Matching . Valè a retounen se 0 si fisèl la matche oswa pa matche ak modèl la, respektivman, ak 1 otreman. Nenpòt pati nan modèl la ka fè remake nan fòs li yo dwe matche kòm yon fisèl.

Ekspresyon yo ka konbine lè l sèvi avèk operatè sa yo, ki nan lis nan diminye lòd nan priyorite:

( ekspresyon )

Retounen valè ekspresyon . Sa a ka itilize yo pase sou desizyon an nòmal nan operatè yo.

! ekspresyon

Vrè si ekspresyon se fo.

expression1 && expression2

Vrè si tou de expression1 ak expression2 yo vre.

expression1 | expression2 Vrè si swa expression1 oswa expression2 se vre.

&& & | & operatè yo pa evalye expression2 si valè ekspresyon1 a ase pou detèmine valè retounen nan tout ekspresyon kondisyonèl la.

pou non [ nan pawòl ]; lis ;

Lis mo ki endike nan yo elaji, génération yon lis atik yo. Se non varyab la fikse nan chak eleman nan lis sa a nan vire, epi li se lis egzekite chak fwa. Si se nan mo a disparèt, pou lòd la ègzekutab lis yon fwa pou chak paramèt positional ki mete (gade PARAMETERS anba a). Estati retou a se estati a sòti nan lòd ki sot pase a ki ègzekutra. Si ekspansyon atik yo apre rezilta yo nan yon lis vid, pa gen okenn kòmandman yo egzekite, ak estati retou a se 0.

pou (( expr1 ; expr2 ; expr3 )); lis ;

Premyèman, ekspr1 ekspresyon aritmetik la evalye dapre règleman ki dekri anba a anba Evalyasyon ARITHMETIC . Se ekspresyon aritmetik expr2 lè sa a evalye repete jouk li evalye a zewo. Chak fwa expr2 evalye a yon valè ki pa zewo, lis la egzekite ak egzip ekspr3 aritmetik la evalye. Si nenpòt ekspresyon disparèt, li konpòte li tankou si li evalye a 1. valè retounen an se estati a sòti nan dènye lòd la nan lis ki egzekite, oswa fo si nenpòt nan ekspresyon yo envalid.

chwazi non [ nan mo ]; lis ;

Lis mo ki endike nan yo elaji, génération yon lis atik yo. Ansanm de mo elaji enprime sou erè estanda a, chak anvan pa yon nimewo. Si yo anile mo a, paramèt positional yo enprime (gade PARAMETERS anba a). Lè sa a, PS3 èd memwa a parèt ak yon liy li nan opinyon estanda a. Si liy lan konsiste de yon nimewo ki koresponn ak youn nan mo yo parèt, Lè sa a, se valè a nan non mete pawòl sa a. Si liy lan vid, mo yo ak èd memwa yo parèt ankò. Si EOF li, kòmandman an konplete. Nenpòt lòt valè li lakòz non yo dwe mete nan nil. Liy nan li sove nan REPLY nan varyab. Lis la egzekite apre chak seleksyon jiskaske yo mande yon lòd pou kraze . Sòti nan sòti nan chwazi se estati a sòti nan lòd ki sot pase a egzekite nan lis , oswa zewo si pa gen okenn kòmandman yo te egzekite.

ka mo nan [[( modèl [ modèl ]

Yon lòd ka premye ogmante mo , epi eseye matche ak li kont chak modèl nan vire, lè l sèvi avèk menm règ yo matche kòm pou ekspansyon chemen (al gade Pathname Ekspansyon anba a). Lè yo jwenn yon match, lis la korespondan egzekite. Apre match la an premye, pa gen okenn alimèt ki vin apre yo te eseye. Estati a sòti se zewo si pa gen okenn alimèt modèl. Sinon, li se estati a sòti nan lòd ki sot pase a egzekite nan lis la .

si lis ; Lè sa a, lis; [ lis elif ; Lè sa a, lis ; ] ... [ Lòt lis ; ] fi

Se si lis la egzekite. Si estati sòti li se zewo, lis la Lè sa a, se egzekite. Sinon, chak lis elif egzekite nan vire, epi si estati sòti li se zewo, korespondan nan Lè sa a , lis egzekite ak lòd la konplete. Sinon, se lis la lòt moun egzekite, si prezan. Estati a sòti se estati a sòti nan lòd ki sot pase a egzekite, oswa zewo si pa gen okenn kondisyon teste vre.

pandan y ap lis ; lis ;

jiskaske lis ; lis ;

Kòmandan an pandan y ap kontinyèlman ègzekutra lis la osi lontan ke dènye lòd la nan lis retounen yon estati sòti nan zewo. Jiska lòd la se ki idantik ak lòd la pandan y ap , eksepte ke tès la negate; se lis la egzekite osi lontan ke dènye lòd la nan lis retounen yon estati sòti ki pa zewo. Estati a sòti nan tan an ak jiskaske kòmandman se estati a sòti nan dènye a lòd lòd egzekite, oswa zewo si okenn te egzekite.

[ fonksyon ] non () { lis ; }}

Sa a defini yon non fonksyone non . fonksyon an se lis kòmandman ant {ak}. Lis sa a egzekite chak fwa se non ki espesifye kòm non yon lòd senp. Estati a sòti nan yon fonksyon se estati a sòti nan lòd ki sot pase a egzekite nan kò a. (Gade FONKSYON anba a.)

KÒMANTÈ

Nan yon koki ki pa entèaktif, oswa yon koki entèaktif ki pèmèt opsyon interactive_comments pou bati shopt la (gade SHELL BUILTIN COMMANDS anba a), yon mo kòmanse avèk # lakòz mo sa a ak tout karaktè ki rete sou liy sa a yo dwe inyore. Yon koki entèaktif san opsyon entèaktif la pèmèt pa pèmèt kòmantè. Opsyon entèaktif yo se sou pa default nan kokiy entèaktif.

KESYON

Quoting se itilize yo retire siyifikasyon an espesyal nan karaktè sèten oswa mo nan koki an. Ou ka itilize li pou enfim tretman espesyal pou karaktè espesyal, pou anpeche mo ki rezève yo rekonèt kòm sa yo, epi pou anpeche ekspansyon paramèt la.

Chak nan metacharacters yo ki nan lis pi wo a anba DEFINITION gen siyifikasyon espesyal koki a epi yo dwe fè remake si li se reprezante tèt li.

Lè fasilite yo ekspansyon istwa lòd yo te itilize, istwa a ekspansyon istwa , anjeneral ! , yo dwe fè remake pou anpeche istwa ekspansyon.

Gen twa mekanis quoting: karaktè a chape , quotes sèl, ak doub quotes.

Yon backslash ki pa koze ( \ ) se karaktè a chape . Li prezève valè a literal nan karaktè nan pwochen ki swiv, ak eksepsyon de . Si yon \\ nouvo liy> pè parèt, ak backslash la pa tèt li te fè remake, \ "liy lan> trete kòm yon kontinyasyon liy (ki se, li se retire nan kouran an opinyon ak efektivman inyore).

Fèmen karaktè nan quotes sèl prezève valè a literal nan chak karaktè nan quotes yo. Yon sèl quote pa ka rive ant quotes sèl, menm lè anvan pa yon backslash.

Fèmen karaktè nan quotes doub prezève valè a literal nan tout karaktè nan quotes yo, ak eksepsyon de $ , ` , ak \ . Karaktè yo $ ak ` kenbe siyifikasyon espesyal yo nan quotes doub. Backslash la konsève siyifikasyon espesyal li yo sèlman lè yo swiv pa youn nan karaktè sa yo: $ , ` , " , \ , oswa .. Yon quote doub ka site nan quotes doub pa anvan li ak yon backslash.

Paramèt espesyal yo * ak @ gen siyifikasyon espesyal lè nan doub quotes (gade PARAMETÈ anba a).

Mo yo nan fòm $ ' string ' yo trete espesyalman. Mo a ogmante nan fisèl , ak backslash-chape karaktè ranplase jan espesifye pa estanda a ANSI C. Sekans chofè backslash, si yo prezan, yo dekodaj jan sa a:

\ a

alèt (klòch)

\ b

backspace

\ e

yon karaktè chape

\ f

fòm manje

\ n

nouvo liy

\ r

chay retounen

\ t

tab orizontal

\ v

vètikal tab

\\

backslash

\ "

sèl quote

\ nnn

karaktè uit-bit la ki gen valè n oktal valè nnn (youn a twa chif)

\ x HH

karaktè uit-bit la ki gen valè se HH a valè ekzadesimal (youn oswa de chif ègzagonal)

\ c x

yon karaktè kontwòl x

Rezilta a elaji se yon sèl-te site, tankou si siyal dola a pa t 'prezan.

Yon fisèl doub-quoted anvan yon siy dola ( $ ) ap lakòz fisèl la dwe tradui dapre lokalizasyon aktyèl la. Si lokale aktyèl la se C oswa POSIX , siyal dola a inyore. Si se fisèl la tradui ak ranplase, ranplasman an se doub-fè remake.

PARAMÈ

Yon paramèt se yon antite ki estoke valè. Li kapab yon non , yon nimewo, oswa youn nan karaktè espesyal yo ki nan lis anba a anba paramèt espesyal . Pou rezon koki a, yon varyab se yon paramèt ki deziye pa yon non . Yon varyab gen yon valè ak zewo oswa plis atribi . Atribi yo asiyen lè l sèvi avèk deklarasyon bati a deklare (al gade deklare ki anba a nan SHELL BUILTIN COMMANDS).

Yon paramèt mete si li te asiyen yon valè. Fann nan nil se yon valè valab. Yon fwa yo mete yon varyab, li ka dezenstalan sèlman lè l sèvi avèk lòd inisyal la batiin (gade SHELL BUILTIN COMMANDS anba a).

Yon varyab ka asiyen nan yon deklarasyon sou fòm lan

non = [ valè ]

Si valè a pa bay, se varyab la asiyen fisèl la nil. Tout valè sibi ekspansyon, paramèt ak varyab ekspansyon, sibstitisyon lòd, aritmetik ekspansyon ak quote retire (gade EXPANSION anba a). Si varyab la gen atribi nonb antye relatif li yo, Lè sa a, valè a sijè a ekspansyon aritmetik menm si $ ((...)) ekspansyon pa itilize (al gade ekspansyon aritmetik anba a). Pawòl Pawòl pa fèt, ak eksepsyon de "$ @" jan yo eksplike anba la a anba paramèt espesyal . Pathname ekspansyon pa fèt. Deklarasyon plasman yo ka parèt tou kòm agiman nan deklare , tipet , ekspòtasyon , lekti , ak lokal batiin commands.

Positional Parameters

Yon paramèt positional se yon paramèt ki deziye pa youn oswa plis chif, lòt pase chif sèl. Paramèt posiblite yo asiyen nan agiman koki a lè li envoke, epi yo ka reassigned lè l sèvi avèk lòd batiin a. Paramèt positional pa ka asiyen ak deklarasyon plasman. Paramèt posiblite yo tanporèman ranplase lè y ap egzekite yon fonksyon koki (gade FUNCTIONS anba a).

Lè yon paramèt positional ki gen plis pase yon chif sèl elaji, li dwe fèmen nan aparèy òtopedik (gade EXPANSION anba a).

Espesyal paramèt

Koki a trete paramèt plizyè espesyalman. Paramèt sa yo ka sèlman referans; plasman yo pa pèmèt.

*

Ogmante paramèt yo positional, kòmanse nan yon sèl. Lè ekspansyon an rive nan quotes doub, li ogmante yon mo sèl ak valè chak paramèt ki separe pa karaktè nan premye nan varyab espesyal IFS la . Sa se, " $ * " se ekivalan a " $ 1 c $ 2 c ... ", kote c se premye karaktè valè a nan varyab IFS la . Si IFS se invet, paramèt yo separe pa espas. Si IFS se nil, paramèt yo ansanm san separeur entèvni.

@

Ogmante paramèt yo positional, kòmanse nan yon sèl. Lè ekspansyon an rive nan quotes doub, chak paramèt ogmante nan yon mo separe. Sa vle di, " $ @ " se ekivalan a " $ 1 " " $ 2 " ... Lè pa gen okenn paramèt positional, " $ @ " ak $ @ elaji nan anyen (sa vle di, yo retire).

#

Ogmante a ki kantite paramèt positional nan desimal.

?

Ogmante estati a nan pipeline ki pi resamman egzekite.

-

Ogmante nan drapo yo opsyon kounye a jan yo espesifye sou envokasyon, pa mete nan lòd batiin, oswa moun ki mete pa koki an tèt li (tankou opsyon nan -i ).

$

Ogmante nan idantite pwosesis la nan koki an. Nan yon () subshell, li ogmante nan idantite pwosesis la nan koki aktyèl la, pa subshell la.

!

Ogmante nan pwosesis la ID nan pi resamman egzekite background nan (asynchrone) lòd.

0

Ogmante nan non an nan koki oswa koki script. Sa a se mete nan inisyalman koki. Si bash ap envoke ak yon dosye nan kòmandman, $ 0 se mete nan non sa a dosye. Si bach la te kòmanse ak opsyon -k la , Lè sa a, $ 0 se mete nan agiman an premye apre fisèl la yo dwe egzekite, si yon sèl prezan. Sinon, li se mete nan non an dosye itilize envoke frape , jan yo bay nan agiman zewo.

_

Nan demaraj koki, mete nan non an fichye absoli nan koki a oswa koki script yo egzekite jan yo te pase nan lis la agiman. Imedyatman, ogmante nan agiman an dènye nan lòd anvan an, apre yo fin ekspansyon. Epitou mete tout non dosye nan chak lòd egzekite epi mete yo nan anviwònman an ekspòte nan lòd sa a. Lè w tcheke lapòs, paramèt sa a kenbe non an nan dosye a lapòs kounye a ke yo tcheke.

Shell Variables

Sa yo varyab yo mete pa koki a:

BASH

Ogmante nan non an plen dosye itilize envoke egzanp sa a nan bach .

BASH_VERSINFO

Yon varyab metòd lionly ki gen manm kenbe enfòmasyon vèsyon pou sa a egzanp nan bach . Valè yo asiyen nan manb yo se jan sa a:

BASH_VERSINFO [ 0]

Nimewo a vèsyon pi gwo ( liberasyon an ).

BASH_VERSINFO [ 1]

Nimewo a vèsyon minè ( vèsyon an ).

BASH_VERSINFO [ 2]

Nivo patch la.

BASH_VERSINFO [ 3]

Vèsyon an bati.

BASH_VERSINFO [ 4]

Estati a lage (egzanp, beta1 ).

BASH_VERSINFO [ 5]

Valè a nan MACHTYPE .

BASH_VERSION

Ogmante nan yon fisèl ki dekri vèsyon an nan egzanp sa a nan bach .

COMP_CWORD

COMP_LINE

Liy lòd kounye a. Sa a varyab disponib sèlman nan fonksyon koki ak kòmandman ekstèn ki envoke pa enstalasyon yo fini pwogramasyon (gade Konplete Programmable anba a).

COMP_POINT

COMP_WORDS

Yon varyab etalaj (al gade array anba a) ki gen ladan mo endividyèl yo nan liy lòd kounye a. Sa a varyab ki disponib sèlman nan fonksyon koki ki envoke pa enstalasyon yo fini pwogramasyon (gade Konplete Programmable anba a).

DIRSTACK

Yon varyab etalaj (al gade array anba a) ki gen ladan aktyèl sa yo nan chemine a anyè. Répertoires parèt nan chemine a nan lòd yo ap parèt nan dirs bati a. Siyen nan manm nan varyab etalaj sa a ka itilize pou modifye repèrtwar ki deja nan chemine a, men yo dwe itilize pouse ak popd buildins pou ajoute epi retire repèrtwar. Plasman nan varyab sa a pa pral chanje anyè aktyèl la. Si DIRSTACK se invet , li pèdi pwopriyete espesyal li yo, menm si li se imedyatman reset.

EUID

Ogmante nan ID itilizatè a efikas nan itilizatè aktyèl la, inisyalize nan demaraj koki. Sa a varyab se readonly.

FUNCNAME

Non an nan nenpòt ki aktyèlman ekzekite koki fonksyon. Sa a varyab egziste sèlman lè yon fonksyon koki ap egzekite. Devwa nan FUNCNAME pa gen okenn efè ak retounen yon estati erè. Si FUNCNAME se invet , li pèdi pwopriyete espesyal li yo, menm si li se imedyatman reset.

GRIP

Yon varyab etalaj ki genyen lis gwoup ki itilizatè aktyèl la se yon manm. Devwa nan gwoup pa gen okenn efè epi retounen yon estati erè. Si gwoup la se invet, li pèdi pwopriyete espesyal li yo, menm si li se imedyatman réinitialiser.

HISTCMD

Nimewo nan istwa, oswa endèks nan lis istwa a, nan lòd aktyèl la. Si HISTCMD se invet , li pèdi pwopriyete espesyal li yo, menm si li se imedyatman reset.

HOSTNAME

Otomatikman mete non an nan lame aktyèl la.

HOSTTYPE

Otomatikman mete nan yon kòd ki inikman dekri ki kalite machin sou ki bach ap egzekite. Default la se sistèm depann.

LINENO

Chak fwa paramèt sa a referans, koki a ranplase yon nimewo desimal ki reprezante nimewo liy sekans aktyèl la (kòmanse ak 1) nan yon script oswa fonksyon. Lè pa nan yon script oswa fonksyon, valè a ranplase pa garanti yo dwe sans. Si LINENO se invet , li pèdi pwopriyete espesyal li yo, menm si li se imedyatman reset.

MACHTYP

Otomatikman mete nan yon fisèl ki konplètman dekri kalite a sistèm ki te sou bach ap egzekite, nan estanda fòma GNU cpu-konpayi-sistèm la . Default la se sistèm depann.

OLDPWD

Anyè anvan k ap travay la kòm mete nan lòd la cd .

OPTARG

Valè a nan agiman an opsyon ki sot pase trete pa obtenir a commandin batiin (gade SHELL BUILTIN COMMANDS anba a).

OPTIND

Endèks la nan agiman nan pwochen yo dwe trete pa lòd yo bati bati (gade SHELL BUILTIN COMMANDS anba a).

OSTYPE

Otomatikman mete nan yon kòd ki dekri sistèm nan fonksyone sou ki bach ap egzekite. Default la se sistèm depann.

PWOSEDI

Yon varyab etalaj (al gade array anba a) ki gen yon lis estati estati sòti nan pwosesis yo nan pipeline ki pi-dènyèman-egzekite tiyo (ki ka gen sèlman yon sèl lòd).

PPID

ID pwosesis la nan paran koki a. Sa a varyab se readonly.

PWD

Aktyèl k ap travay anyè a kòm lòd pa lòd la cd .

RANDOM

Chak fwa paramèt sa a referans, yon nonb antye relatif ant 0 ak 32767 se pwodwi. Se sekans nimewo o aza yo ka inisyalize lè yo bay yon valè pou RANDOM . Si RANDOM se invet, li pèdi pwopriyete espesyal li yo, menm si li se imedyatman reset.

REPONS

Mete liy lan nan opinyon li pa li commandin commandin lè pa gen okenn agiman yo apwovizyone.

DEZYÈM

Chak fwa paramèt sa a referans, nimewo a nan segonn depi envazyon koki yo te retounen. Si se yon valè ki asiyen nan dezyèm, valè a retounen sou referans ki vin apre se kantite segonn depi plasman an plis valè a asiyen. Si SECONDS se invet, li pèdi pwopriyete espesyal li yo, menm si li se imedyatman reset.

SHELLOPTS

Yon lis kolon-separe nan opsyon ki pèmèt yo koki. Chak mo nan lis la se yon agiman ki valab pou opsyon nan -o nan lòd batiin a (gade SHELL BUILTIN COMMANDS anba a). Opsyon yo ki parèt nan SHELLOPTS yo se moun ki rapòte kòm sou pa mete -o . Si varyab sa a se nan anviwònman an lè bach kòmanse moute, yo pral chak opsyon koki nan lis la ap pèmèt anvan li lekti nenpòt dosye demaraj. Sa a varyab se li-sèlman.

SHLVL

Incremented pa youn chak fwa se yon egzanp nan bach te kòmanse.

UID

Ogmante nan ID itilizatè a nan itilizatè aktyèl la, inisyalize nan demaraj koki. Sa a varyab se readonly.

Sa yo varyab yo itilize pa koki an. Nan kèk ka, bach bay yon valè defo nan yon varyab; ka sa yo yo te note anba a.

BASH_ENV

Si sa a paramèt mete lè bach ap egzekite yon script koki, se valè li yo entèprete kòm yon fichier ki gen kòmandman inisyalize koki a, tankou nan ~ / .bashrc . Valè BASH_ENV ap sibi ekspansyon paramèt, sibstitisyon lòd, ak ekspansyon aritmetik anvan li entèprete kòm yon non dosye. PATH pa itilize pou fè rechèch pou non dosye a resultant.

CDPATH

Chemen rechèch la pou lòd cd la . Sa a se yon lis kolon-separe nan repèrtwar nan ki koki a sanble pou repèrtwar destinasyon ki espesifye nan lòd la cd . Yon valè echantiyon se ".: ~: / Usr".

KOLÒN

Itilize pa lòd la chwazi bati a detèmine lajè tèminal la lè lis seleksyon enprime. Otomatikman mete sou resevwa yon SIGWINCH.

Konpreyansif

Yon varyab etalaj ki soti nan ki frape li fini yo posib ki te pwodwi pa yon fonksyon koki ki envoke pa etablisman an fini pwogramasyon (gade Konplete Programmable anba a).

FCEDIT

Editè a default pou lòd la commandin fc .

FIGNORE

Yon lis kolon ki separe nan sifiks yo inyore lè yo fin fè filename fini (gade LI Referans anba a). Yon fichier ki gen sifiks alimèt youn nan antre yo nan FIGNORE se eskli nan lis la nan matche fichye. Yon valè echantiyon se ".o: ~".

GLOBIGNORE

Yon lis kolon-separe nan modèl defini seri a nan fichye yo dwe inyore pa ekspansyon chemen. Si yon filename matche ak yon modèl ekspansyon chemen tou matche youn nan modèl yo nan GLOBIGNORE , li retire nan lis la nan alimèt.

HISTCONTROL

Si mete nan yon valè ignorespace , liy ki kòmanse ak yon karaktè espas pa antre nan lis istwa a. Si mete nan yon valè de ignoredups , liy ki matche dènye istwa a yo pa antre. Yon valè ignoreboth konbine de opsyon yo. Si ou pa mete, oswa si ou mete nan nenpòt ki lòt valè pase sa ki anwo yo, tout liy li nan parser la sove sou lis la istwa, sijè a valè a nan HISTIGNORE . Fonksyon varyab sa a ranplase pa HISTIGNORE . Liy yo dezyèm ak ki vin apre nan yon lòd milti-liy konpoze yo pa teste, epi yo ajoute nan istwa a kèlkeswa valè HISTCONTROL .

HISTFILE

Non an nan dosye a nan ki istwa lòd sove (gade HISTORY anba a). Valè defo a se ~ / .bash_history . Si non, istwa a lòd pa sove lè yon koki entèaktif sòti.

HISTFILESIZE

Nòmal kantite liy ki genyen nan dosye a istwa. Lè varyab sa a asiyen yon valè, dosye a se truncated, si sa nesesè, pou li pa gen plis ke kantite liy. Valè defo a se 500. File a se tou truncated sa a gwosè apre yo fin ekri li lè yon koki entèaktif sòti.

HISTIGNORE

Yon lis kolon ki separe nan modèl yo itilize pou deside ki liy lòd yo ta dwe sove sou lis la istwa. Chak modèl ancrage nan kòmansman an nan liy lan epi yo dwe matche ak liy konplè a (pa gen okenn enplisit ` * 'apante). Chak modèl teste kont liy lan apre chèk yo espesifye nan HISTCONTROL yo aplike. Anplis de sa nan karaktè nòmal karaktè matche modèl yo, ` & 'matche ak liy anvan istwa a. ' & ' yo ka chape anba lè l sèvi avèk yon backslash; se backslash la retire anvan eseye yon match. Liy yo dezyèm ak ki vin apre nan yon koneksyon milti-liy konpoze yo pa teste, epi yo ajoute nan istwa a kèlkeswa valè a nan HISTIGNORE .

HISTSIZE

Nimewo a nan kòmandman yo sonje nan istwa a lòd (gade HISTORY anba a). Valè a default se 500.

HOME

Anyè anyè aktyèl itilizatè a; agiman an default pou lòd la cd bati. Valè varyab sa a itilize tou lè yap fè ekspansyon tilde.

HOSTFILE

Gen non yon dosye nan fòma menm jan ak / etc / gen tout pouvwa a ki ta dwe li lè koki an bezwen ranpli yon hostname. Yo ka chanje lis la nan fini hostname posib pandan koki an ap kouri; se tan kap vini an hostname fini ap eseye apre valè a chanje, bach ajoute sa ki nan dosye a nouvo nan lis la ki deja egziste. Si HOSTFILE yo mete, men pa gen okenn valè, tantativ bach li / etc / gen tout pouvwa a yo jwenn lis la nan fini hostname posib. Lè HOSTFILE se invet , lis la hostname se otorize.

IFS

Separateur nan jaden entèn ki itilize pou divize pawòl apre ekspansyon ak fann liy nan mo ak lòd la li bati. Valè a default se `` ''.

IGNOREEOF

Kontwole aksyon an nan yon koki entèaktif sou resevwa yon karaktè EOF kòm opinyon an sèl. Si mete, valè a se nimewo a nan karaktè EOF youn apre lòt ki dwe tape kòm karaktè yo an premye sou yon liy opinyon anvan bach sòti. Si varyab la egziste men li pa gen yon valè nimerik, oswa pa gen okenn valè, valè defo se 10. Si li pa egziste, EOF vle di fen nan opinyon nan koki an.

INPUTRC

Fichye a pou dosye demaraj lekti a, chaje default la nan ~ / .inputrc (gade LI Referans anba a).

LANG

Itilize pou detèmine kategori lokal pou nenpòt kategori ki pa espesifikman chwazi ak yon varyab ki kòmanse avèk LC_ .

LC_ALL

Sa a varyab depase valè a nan LANG ak nenpòt lòt LC_ varyab ki espesifye yon kategori lokal yo.

LC_COLLATE

Sa a varyab detèmine lòd nan kolosal itilize lè klasman rezilta yo nan ekspansyon pathname, epi detèmine konpòtman an nan ekspresyon ranje, klas ekivalans, ak sekans kolektif nan ekspansyon pathname ak matche modèl.

LC_CTYPE

Sa a varyab detèmine entèpretasyon nan karaktè ak konpòtman an nan klas karaktè nan ekspansyon chemen ak matche modèl.

LC_MESSAGES

Varyab sa a detèmine locale ki itilize pou tradui strings doub ki site pa yon $ .

LC_NUMERIC

Sa a varyab detèmine kategori a lokalize yo itilize pou fòma nimewo.

LINES

Itilize pa lòd la chwazi bati a detèmine longè a kolòn pou lis seleksyon enprime. Otomatikman mete sou resevwa yon SIGWINCH.

MAIL

Si paramèt sa a mete nan yon non dosye ak varyab MAILPATH la pa mete, bach enfòme itilizatè a nan rive nan lapòs nan dosye a espesifye.

MAILCHECK

Presize konbyen fwa (nan segonn) chèk bach pou lapòs. Default la se 60 segonn. Lè li se tan pou tcheke pou lapòs, koki a fè sa anvan ou montre èd memwa prensipal la. Si varyab sa a se invet, oswa mete nan yon valè ki pa yon nimewo ki pi gran pase oswa egal a zewo, koki a désacté lapòs tcheke.

MAILPATH

Yon lis kolon-separe nan non dosye yo dwe tcheke pou lapòs. Mesaj la yo dwe enprime lè lapòs rive nan yon dosye patikilye ka espesifye pa separe non an dosye nan mesaj la ak yon `? '. Lè yo itilize nan tèks la nan mesaj la, $ _ ogmante nan non an nan dosye aktyèl la. Egzanp:

MAILPATH = '/ var / mail / bfox? "Ou gen lapòs": ~ / shell-mail? "$ _ Gen lapòs!"'

Bach pwovizyon yon valè default pou varyab sa a, men ki kote dosye yo lapòs itilizatè ke li itilize se sistèm depandan (egzanp, / var / mail / $ USER ).

OPTERR

Si mete nan valè a 1, ekspozisyon bach montre erè ki te pwodwi pa commandin bati bati a (gade SHELL BUILTIN COMMANDS anba a). OPTERR se inisyalize a 1 chak fwa koki an envoke oswa yon script koki egzekite.

CHEMEN

Chemen rechèch la pou kòmandman yo. Li se yon lis kolon ki separe nan repèrtwar nan ki koki a sanble pou kòmandman (gade COMMAND EXECUTION anba a). Chemen defo a se sistèm depandan, epi li mete pa administratè a ki enstale bach . Yon valè komen se `` / usr / gnu / bin: / usr / lokal / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT

Si varyab sa a se nan anviwònman an lè bach kòmanse, koki an antre nan mòd posix anvan ou li lime dosye yo demaraj, tankou si opsyon nan opoze opoze te apwovizyone. Si li mete pandan ke koki an ap kouri, frape pèmèt posix mòd , tankou si lòd la mete -o posix yo te egzekite.

PROMPT_COMMAND

Si mete, se valè a egzekite kòm yon lòd anvan yo founi dokiman yo chak èd memwa prensipal.

PS1

Valè paramèt sa a ap elaji (gade PROMPTING anba a) epi itilize kòm fisèl prensipal la. Valè defo se `` \ s- \ v \ $ ''.

PS2

Valè a nan paramèt sa a se elaji menm jan ak PS1 ak itilize kòm fisèl la èd memwa segondè. Default la se `` > ''.

PS3

Valè a nan paramèt sa a yo itilize kòm èd memwa a pou lòd la chwazi (al gade SHELL GRAMMAR pi wo a).

PS4

Valè a nan paramèt sa a se elaji menm jan ak PS1 ak valè a enprime anvan chak ekspozisyon bash lòd pandan yon tras ekzekisyon. Karaktè an premye nan PS4 repwodwi fwa miltip, jan sa nesesè, yo endike nivo miltip nan indirection. Default la se `` + ''.

TIMEFORMAT

Valè a nan paramèt sa a yo itilize kòm yon fisèl fòma ki espesifye ki jan enfòmasyon an distribisyon pou tuyaux prefiks ak tan an rezève mo yo ta dwe parèt. Karaktè a entwodui yon sekans chape ki elaji nan yon valè tan oswa lòt enfòmasyon. Sekans yo chape ak siyifikasyon yo jan sa a; aparèy òtopedik yo endike pòsyon si ou vle.

%%

Yon % literal.

[ p ] [l] R

Tan an pase nan segonn.

[ p ] [l] U

Nimewo a nan segonn CPU depanse nan mòd itilizatè.

[ p ] [l] S

Nimewo a nan segonn CPU te pase nan mòd sistèm.

P

Pousantaj nan CPU, kalkile kòm (% U +%) /% R.

P a opsyonèl se yon chif ki espesifye presizyon an , ki kantite chif fraksyon apre yon pwen desimal. Yon valè de 0 lakòz pa gen okenn pwen desimal oswa fraksyon yo dwe pwodiksyon. Nan pifò twa kote apre pwen desimal la ka espesifye; valè p nan pi gran pase 3 yo chanje a 3. Si p pa espesifye, yo itilize valè 3 la.

Opsyonèl l la presize yon fòma pi long, ki gen ladan minit, nan fòm MM m SS la . FF s. Valè p detèmine si wi ou non fraksyon lan enkli.

Si varyab sa a pa mete, bash aji tankou si li te gen valè $ \\ \ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS ' . Si valè a se nil, pa gen okenn enfòmasyon distribisyon parèt. Yon nouvo liy fin ajoute lè yo fòme fisèl la.

TMOUT

Si mete nan yon valè ki pi konsekan pase zewo, TMOUT trete kòm tan an default pou li bati a. Kòmandman an chwazi mete fen si opinyon pa rive apre TMOUT segonn lè opinyon ap vini soti nan yon tèminal. Nan yon koki entèaktif, valè a entèprete kòm kantite segonn yo rete tann pou opinyon apre founi dokiman yo prensipal la. Bach mete fen apre ap tann pou ki kantite segonn si opinyon pa rive.

auto_resume

Sa a varyab kontwole kijan koki an reyaji avèk itilizatè a ak kontwòl travay. Si yo mete varyab sa a, se sèl kòmandman senp ki senp san redireksyon yo trete kòm kandida pou reouvè yon travay ki deja egziste. Pa gen okenn anbigwite pèmèt; si gen plis pase yon sèl travay kòmanse ak fisèl la tape, travay la ki pi resamman jwenn aksè a chwazi. Non an nan yon travay sispann, nan kontèks sa a, se liy lan lòd yo itilize yo kòmanse li. Si mete nan valè egzak la , fisèl la apwovizyone dwe matche non an nan yon travay sispann egzakteman; si mete soustr , fisèl la apwovizyone bezwen matche ak yon soustr nan non an nan yon travay sispann. Valè a substring bay fonctionnalités analoji a % nan? idantifyan travay (gade JOB KONTROL anba a). Si mete nan nenpòt ki lòt valè, fisèl la apwovizyone dwe yon prefiks nan non yon travay sispann a; sa a bay fonctionnalités analoji ak idantifyan an travay.

Istwa

De oswa twa karaktè ki kontwole istwa ekspansyon ak siyizasyon (al gade HISTORY EXPANSION anba a). Karaktè an premye se istwa a ekspansyon istwa , karaktè a ki siyal kòmanse nan yon ekspansyon istwa, nòmalman ` ! '. Karaktè an dezyèm se pèsonaj la sibstitisyon rapid , ki itilize kòm steno pou re-kouri lòd la anvan yo te antre, ranplase yon sèl fisèl pou yon lòt nan lòd la. Default la se ` ^ '. Opsyonèl twazyèm karaktè a se karaktè ki endike ke rès liy lan se yon kòmantè lè yo jwenn kòm karaktè an premye nan yon mo, nòmalman # # '. Istwa kòmantè istwa a lakòz istwa sibstitisyon yo dwe sote pou mo ki rete yo sou liy lan. Li pa nesesèman lakòz parser koki a trete rès la nan liy lan kòm yon kòmantè.

Arrays

Bach bay varyab dimansyon etalaj. Nenpòt varyab ka itilize kòm yon etalaj; deklare bati a pral klèman deklare yon etalaj. Pa gen okenn limit maksimòm sou gwosè a nan yon etalaj, ni nenpòt egzijans ke manm yo ap Catalogue oswa asiyen kontigu. Anrejistreman yo ap Catalogue lè l sèvi avèk nonm antye epi yo gen zewo ki baze sou.

Yon etalaj kreye otomatikman si genyen nenpòt varyab ki asiyen nan itilize non an sentaks [ abònman ] = valè . Se abònman la trete kòm yon ekspresyon aritmetik ki dwe evalye nan yon nimewo ki pi gran pase oswa egal a zewo. Pou eksplike yon etalaj klè, sèvi ak deklare -a non (gade SHELL BUILTIN COMMANDS anba a). deklare -a non [ abònman ] tou aksepte; se abònman la inyore. Atribi yo ka espesifye pou yon varyab etalaj lè l sèvi avèk deklare ak konfigirasyon readonly . Chak atribi aplike a tout manm nan yon etalaj.

Arrays yo asiyen pou itilize devwa konpoze sou non fòm = ( valè 1 ... valè n ) , kote chak valè se nan fòm [ abonnements ] = fil . Se sèlman fisèl ki nesesè. Si parantèz si ou vle ak seksyon yo apwovizyone, endèks la asiyen nan; otreman endèks la nan eleman ki asiyen an se endèks ki sot pase a asiyen nan deklarasyon an plis yon sèl. Indexing kòmanse nan zewo. Sa a se sentaks tou aksepte pa deklare a bati. Eleman etalaj endividyèl yo ka asiyen pou itilize non [ abònman ] = valè sentaks ki prezante anwo a.

Yo konstwi a konfigirasyon itilize detwi etalaj. Non non [ abònman ] detwi eleman etalaj la nan endèks abonnés . Non non , kote non se yon etalaj, oswa Non non [ abònman ], kote abonnés se * oswa @ , retire etalaj la tout antye.

Deklarasyon an, lokal yo , ak li konfigirasyon li yo chak aksepte yon -yon opsyon pou presize yon etalaj. Li bati a aksepte yon -a opsyon pou asiyen yon lis mo li nan opinyon estanda a nan yon etalaj. Mete an epi deklare buildins valè etalaj yo montre nan yon fason ki pèmèt yo re-itilize kòm devwa.

Ekspansyon

Ekspansyon yo fèt sou liy lan lòd apre li fin divize an mo. Gen sèt kalite ekspansyon fè: ekspansyon brace , ekstansyon tilde , paramèt ak ekspansyon varyab , sibstitisyon lòd , ekspansyon aritmetik , divize pawòl , ak ekspansyon chemen .

Lòd la nan ekspansyon se: ekspansyon brace, tilde ekspansyon, paramèt, varyab ak aritmetik ekspansyon ak sibstitisyon lòd (fè nan yon mòd bò gòch-a-dwa), divize pawòl, ak ekspansyon chemen.

Sou sistèm ki ka sipòte li, gen yon ekspansyon adisyonèl ki disponib: sibstitisyon pwosesis la .

Espas ekspansyon

Espas ekspansyon se yon mekanis kote strings abitrè ka pwodwi. Sa a mekanis se menm jan ak ekspansyon chemen , men fichye yo pwodwi pa bezwen egziste. Modèl yo dwe aparèy siplemantè elaji pran fòm yon preamble si ou vle, ki te swiv pa yon seri de string komès-separe ant yon pè nan aparèy òtopedik, ki te swiv pa yon postscript si ou vle. Preamble la prefiks nan chak fisèl ki genyen nan aparèy òtopedik yo, ak paskcript a Lè sa a, te ajoute nan chak fisèl ki kapab lakòz, elaji gòch a dwat.

Ekspansyon bra yo ka enbrike. Rezilta chak fisèl elaji yo pa klase; kite bò dwat lòd konsève. Pou egzanp, yon { d, c, b } e ogmante nan 'ade ace abe'.

Espas ekspansyon an fèt anvan nenpòt lòt ekspansyon, ak nenpòt karaktè espesyal nan lòt gran yo konsève nan rezilta a. Li se entèdi tèks. Bach pa aplike nenpòt entèpretasyon sentetik nan kontèks la nan ekspansyon an oswa tèks ki genyen ant aparèy òtopedik yo.

Sa a konstwi se tipikman itilize kòm steno lè prefiks komen nan strings yo dwe pwodwi se pi long pase nan egzanp ki anwo a:

mkdir / usr / lokal / src / bash / {fin vye granmoun, nouvo, distal, pinèz}

oswa

kònen rasin /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

Ekspansyon Brace entwodui yon enkonpatibl ti tay ak vèsyon istorik nan sh . sh pa trete ouvèti oswa fèmen aparèy òtopedik espesyalman lè yo parèt kòm yon pati nan yon mo, ak prezève yo nan pwodiksyon an. Bach retire aparèy òtopedik soti nan mo kòm yon konsekans ekspansyon brace. Pou egzanp, yon mo antre nan SH kòm dosye {1,2} parèt idantik nan pwodiksyon an. Pawòl la menm se pwodiksyon kòm file1 file2 apre ekspansyon pa bach . Si se strik konpatibilite ak SH vle, kòmanse frape ak opsyon nan + B oswa enflasyon ekspansyon brace ak opsyon nan + B lòd la mete (al gade SHELL BUILTIN COMMANDS anba a).

Tilde Ekspansyon

Si yon mo kòmanse ak yon karaktè tilde ki pa dakò (` ~ '), tout karaktè ki vin anvan premye koupe a (oswa tout karaktè, si pa gen okenn koupe san) yo konsidere kòm yon tilde-prefiks . Si yo pa fè okenn nan karaktè yo nan tilde prefiks la, karaktè yo nan tilde prefiks ki swiv tilde a yo trete kòm yon non koneksyon posib. Si non an login sa a se fisèl la nil, se tilde a ranplase ak valè a nan koki paramèt kay la . Si HOME se invet, se anyè anyè itilizatè ki egzekite koki a ranplase olye. Sinon, tilde-prefiks la ranplase ak anyè a lakay ki asosye ak non an konekte non.

Si tilde-prefiks la se yon '~ +', valè PWD varyab varyab la ranplase tilde-prefiks la. Si tilde-prefiks la se yon `~ - ', valè OLDPWD varyab la, si li mete, ranplase. Si karaktè yo apre tilde a nan tilde prefix la konpoze de yon nimewo N , opsyonèlman prefiks pa yon `+ 'oswa yon` -', se tilde prefiks la ranplase ak eleman ki koresponn lan nan chemine a anyè, jan li ta ka parèt pa bati nan dir ki envoke ak tilde prefiks la kòm yon agiman. Si karaktè yo ki swiv tilde a nan tilde prefix la konpoze de yon nimewo san yo pa yon dirijan `+ 'oswa` -', `+ 'se sipoze.

Si non an login se envalid, oswa ekspansyon an tilde echwe, pawòl la se chanje.

Chak plasman varyab tcheke pou non-prefixes tilde imedyatman apre yon : oswa = . Nan ka sa yo, ekstansyon tilde tou fèt. Kontinwe, yon sèl ka itilize non dosye ki gen tildes nan devwa yo nan PATH , MAILPATH , ak CDPATH , ak koki a asiyen valè a elaji.

Paramèt ekspansyon

Karaktè `` a entwodui ekspansyon paramèt, sibstitisyon lòd, oswa ekspansyon aritmetik. Non oswa senbòl ki ka elaji yo ka fèmen nan aparèy òtopedik yo, ki se opsyonèl men yo sèvi pou pwoteje varyab la pou yo elaji de karaktè imedyatman apre li ka entèprete kòm yon pati nan non an.

Lè yo itilize aparèy òtopedik yo, atèl la fini matche se premye ` } 'pa chape pa yon backslash oswa nan yon kòd ki te site, epi yo pa nan yon ekspansyon aritmetik entegre, sibstitisyon lòd, oswa ekspansyon paramèt.

Se valè a nan paramèt ranplase. Aparèy yo egzije lè paramèt se yon paramèt positional ak plis pase yon sèl chif, oswa lè paramèt ki te swiv pa yon karaktè ki pa dwe entèprete kòm yon pati nan non li yo.

Nan chak nan ka ki anba yo, mo a sijè a ekspansyon tilde, ekspansyon paramèt, sibstitisyon lòd, ak ekspansyon aritmetik. Lè pa fè ekspansyon substring, tès bach pou yon paramèt ki se invet oswa nil; oblije rezilta kolon yo nan yon tès sèlman pou yon paramèt ki se unt.

Itilize Valè Default . Si paramèt se invet oswa nil, se ekspansyon nan mo ranplase. Sinon, se valè a nan paramèt ranplase.

Bay Valè Default . Si paramèt se invet oswa nil, se ekspansyon nan mo ki asiyen nan paramèt . Se valè a nan paramèt Lè sa a, ranplase. Paramèt positional ak paramèt espesyal pa ka asiyen nan fason sa a.

Montre erè si nil oswa Unset . Si paramèt se nil oswa enkonvenyans, ekspansyon mo a (oswa yon mesaj nan efè sa a si mo pa prezan) ekri nan erè estanda a ak koki a, si li pa entèaktif, sòti. Sinon, se valè a nan paramèt ranplase.

Itilize Altènatif Valè . Si paramèt la se nil oswa deba, pa gen anyen ki ranplase, otreman se ekspansyon nan mo ranplase.

Ogmante non yo nan varyab ki gen non kòmanse ak prefiks , separe pa karaktè nan premye nan varyab espesyal IFS la .

Se longè a nan karaktè nan valè a nan paramèt ranplase. Si paramèt la * oswa @ , valè a ranplase se kantite paramèt positional. Si paramèt se yon non etalaj abonnés pa * oswa @ , valè a ranplase se kantite eleman nan etalaj la.

Pawòl la ap elaji pou pwodui yon modèl menm jan ak ekspansyon. Si modèl la matche ak konmansman an nan valè a nan paramèt , Lè sa a, rezilta a nan ekspansyon an se valè a elaji nan paramèt ak modèl ki pi kout matche (ka a `` ') oswa pi long modèl la matche (' ` # # ' 'ka) efase. Si paramèt se @ oswa * , se operasyon an retire modèl aplike nan chak paramèt positional nan vire, ak ekspansyon an se lis la rezilta. Si paramèt se yon varyab etalaj abonnés ak @ oswa * , se operasyon an retire modèl aplike nan chak manm nan etalaj la nan vire, ak ekspansyon an se lis la rezilta.

Pawòl la ap elaji pou pwodui yon modèl menm jan ak ekspansyon. Si modèl la matche yon pòsyon fin nan valè a elaji nan paramèt , Lè sa a, rezilta a nan ekspansyon an se valè a elaji nan paramèt ak modèl la ki pi kout matche (ka a `'') oswa pi long modèl la matche (' ka ') efase. Si paramèt se @ oswa * , se operasyon an retire modèl aplike nan chak paramèt positional nan vire, ak ekspansyon an se lis la rezilta. Si paramèt se yon varyab etalaj abonnés ak @ oswa * , se operasyon an retire modèl aplike nan chak manm nan etalaj la nan vire, ak ekspansyon an se lis la rezilta.

Se modèl la elaji yo pwodwi yon modèl menm jan ak nan ekspansyon pathname. Paramèt la elaji ak pi long nan matche ak modèl kont valè li yo ranplase ak fisèl . Nan fòm nan premye, se sèlman matche ak nan premye ranplase. Fòm nan dezyèm lakòz tout alimèt nan modèl yo dwe ranplase ak fisèl . Si modèl kòmanse ak # , li dwe matche ak nan kòmansman valè a elaji nan paramèt . Si modèl kòmanse ak % , li dwe matche ak nan fen valè a elaji nan paramèt . Si fisèl se nil, alimèt nan modèl yo efase epi yo ka modèl la / yo dwe omisyon. Si paramèt se @ oswa * , se operasyon an sibstitisyon aplike nan chak paramèt positional nan vire, ak ekspansyon an se lis la rezilta. Si paramèt se yon varyab etalaj abonnés ak @ oswa * , se operasyon an sibstitisyon aplike nan chak manm nan etalaj la nan vire, ak ekspansyon an se lis la resultant.

Kòmandman Substitution

Kòmandan sibstitisyon pèmèt pwodiksyon an nan yon lòd pou ranplase non a bay lòd. Gen de fòm:

$ ( lòd )

oswa

` kòmandman`

Bach fè ekspansyon an pa egzekite lòd ak ranplase sibstitisyon an kòmand ak pwodiksyon an estanda nan lòd la, ak nenpòt nouvo liy fin efase. Newlines Embedded yo pa efase, men yo ka retire pandan divize mo. Ka sibstitisyon an lòd (kopi chat ) dwe ranplase pa ekivalan a, men pi vit $ (< dosye ).

Lè yo fòme backquote fin vye granmoun-style nan sibstitisyon itilize, backslash konsève siyifikasyon literal li yo eksepte lè yo swiv pa $ , ` , oswa \ . Pousantaj nan premye pa anvan pa yon backslash mete fen nan sibstitisyon an lòd. Lè w ap itilize fòm $ ( lòd ) a, tout karaktè ant parantèz yo fè moute lòd la; Pa gen okenn yo trete espesyalman.

Ranbousman lòd yo ka enbrike. Pou fè nich lè w ap itilize fòm nan backquoted, chape backquotes enteryè a ak backslashes.

Si sibstitisyon an parèt nan quotes doub, divize pawòl ak ekspansyon chemen yo pa fèt sou rezilta yo.

Aritmetik Ekspansyon

Aritmetik ekspansyon pèmèt evalyasyon an nan yon ekspresyon aritmetik ak sibstitisyon an nan rezilta a. Fòma pou ekspansyon aritmetik se:

$ (( ekspresyon ))

Ekspresyon an trete tankou si li te nan quotes doub, men yon quote doub andedan parantèz yo pa trete espesyalman. Tout enkoni nan ekspresyon an sibi ekspansyon paramèt, ekspansyon fisèl, sibstitisyon lòd, ak retire retire. Aritmetik ranplasman ka enbrike.

Evalyasyon an fèt dapre règleman yo ki nan lis anba ARITHMETIC EVALUATION . Si ekspresyon an envalid, prash prints yon mesaj ki endike echèk epi pa gen okenn sibstitisyon rive.

Pwosesis sibstitisyon

Pwosè sibstitisyon sipòte sou sistèm ki sipòte rele tiyo ( FIFOs ) oswa metòd / dev / fd nan nonmen dosye ouvè. Li pran fòm lan nan <( lis ) oswa > ( lis ) . Lis la pwosesis la kouri ak opinyon li yo oswa pwodiksyon ki konekte nan yon FIFO oswa kèk dosye nan / dev / fd . Se non an nan dosye sa a te pase kòm yon agiman bay lòd aktyèl la kòm rezilta nan ekspansyon an. Si yo itilize fòm nan ( lis ) , ekri nan dosye a ap bay opinyon pou lis . Si yo itilize fòm <( lis ) , dosye a te pase kòm yon agiman dwe li pou jwenn pwodiksyon lis la .

Lè disponib, se sibstitisyon pwosesis fè menm tan ak paramèt ak varyab ekspansyon, sibstitisyon lòd, ak ekspansyon aritmetik.

Pawòl Pawòl

Koki an analize rezilta yo nan ekspansyon paramèt, sibstitisyon lòd, ak ekspansyon aritmetik ki pa t 'rive nan quotes doub pou divize mo .

Koki a trete chak karaktè IFS kòm yon delimiter, epi divize rezilta lòt ekspansyon yo nan mo sou karaktè sa yo. Si IFS se invet, oswa valè li se egzakteman , default la, Lè sa a, nenpòt sekans nan karaktè IFS sèvi pou limite mo yo. Si IFS gen yon valè lòt pase default la, Lè sa a, sekans nan karaktè yo espas karaktè ak tab yo inyore nan kòmansman ak nan fen mo a, osi lontan ke pèsonaj la blan se nan valè a nan IFS (yon karaktè blan IFS ). Nenpòt karaktè nan IFS ki pa IFS whitespace, ansanm ak nenpòt ki adjasan karaktè whitespace IFS , délimits yon jaden. Yon sekans karaktè vyolans IFS yo tou trete kòm yon delimiter. Si valè IFS yo se nil, pa gen okenn divize mo rive.

Eksplisit agiman null ( "" oswa '' ) yo double. Diskite agiman enplisit null, ki soti nan ekspansyon paramèt ki pa gen okenn valè, yo retire. Si yon paramèt ki pa gen okenn valè elaji nan quotes doub, yon rezilta agiman null ak se double klas la.

Remake byen ke si pa gen okenn ekspansyon rive, pa gen divize.

Pathname Ekspansyon

Apre divize mo, sòf si yo te opsyon -f la fikse, bal analize chak mo pou karaktè yo * ,? , ak [ . Si youn nan sa yo karaktè parèt, Lè sa a, mo a konsidere kòm yon modèl , ak ranplase ak yon lis alfabè klase nan non dosye matche modèl la. Si yo pa jwenn non fichye matche yo, epi nullglob opsyon koki a enfim, pawòl la rete san okenn chanjman. Si se opsyon nullglob la mete, epi yo pa jwenn alimèt yo, yo retire pawòl la. Si nocaseglob la opsyon koki a pèmèt, matche ak nan fèt san konsiderasyon ka a nan karaktè alfabè. Lè yo itilize yon modèl pou ekspansyon pathname, karaktè ``. '' Nan kòmansman an nan yon non oswa imedyatman apre yon koupe dwe matche klèman, sòf si opsyon nan koki dotglob mete. Lè matche yon chemen, karaktè a koupe dwe toujou matche klèman. Nan lòt ka, karaktè ``. '' Pa trete espesyalman. Al gade nan deskripsyon chòk anba a anba SHELL BUILTIN COMMANDS pou yon deskripsyon nocaseglob , nullglob , ak opsyon koki dotglob .

Selil kokiy GLOBIGNORE yo ka itilize pou mete restriksyon sou mete non dosye ki matche yon modèl . Si GLOBIGNORE mete, chak non dosye matche ki tou matche youn nan modèl yo nan GLOBIGNORE se retire nan lis la nan alimèt. Fichye non yo '.' ' Ak ' `.. '' yo toujou inyore, menm lè GLOBIGNORE yo mete. Sepandan, anviwònman GLOBIGNORE gen efè a pèmèt opsyon nan koki dotglob , kidonk tout non dosye lòt kòmanse ak yon ``. '' Ap matche ak. Pou jwenn konpòtman an fin vye granmoun nan inyore non dosye kòmanse ak yon ``. '' , Fè ``. '' ' Youn nan modèl yo nan GLOBIGNORE . Opsyon dotglob la enfim lè GLOBIGNORE se enkonplè .

Modèl matche

Nenpòt karaktè ki parèt nan yon modèl, lòt pase karaktè yo modèl espesyal ki dekri anba a, alimèt tèt li. Karaktè NUL a pa ka rive nan yon modèl. Karaktè espesyal yo dwe fè remake si yo dwe matche literalman.

Karaktè espesyal yo gen siyifikasyon sa yo:

*

Matches nenpòt fisèl, ki gen ladan fisèl la nil.

?

À nenpòt karaktè sèl.

[...]

À nenpòt ki youn nan karaktè ki fèmen yo. Yon pè nan karaktè separe pa yon tiyo vle di yon ekspresyon ranje ; nenpòt karaktè ki kalite ant de karaktè sa yo, enklizif, lè l sèvi avèk seksyon kolektif lokalize a ak seri karaktè, matche. Si premye karaktè sa yo [ se yon ! oswa yon ^ Lè sa a, nenpòt karaktè ki pa fèmen se matche. Se lòd lokal la nan karaktè nan ekspresyon ranje detèmine pa lokale aktyèl la ak valè a nan varyab koki LC_COLLATE , si mete. A - ka matche pa ki gen ladan li kòm pèsonaj la premye oswa dènye nan seri a. A ] yo ka matche pa ki gen ladan li kòm karaktè nan premye nan seri a.

Nan [ ak ] , klas karaktè yo ka espesifye lè l sèvi avèk sentaks [: klas :] , kote klas la se youn nan klas sa yo defini nan estanda POSIX.2:

alnum alfa ascii vid cntrl chif graf pi ba espas ekri an lèt detache espas anwo xdigit
Yon klas karaktè alimèt nenpòt karaktè ki fè pati klas sa a. Kalite karaktè mo a alimante lèt, chif, ak karaktè _ la.

Nan [ ak ] , yon klas ekivalans ka espesifye lè l sèvi avèk sentaks lan [= c =] , ki matche tout karaktè ak pwa a kolaj menm (jan yo defini nan lokale aktyèl la) kòm pèsonaj la c .

Nan [ ak ] , sentaks lan [. senbòl .] alimèt senbòl senbòl kolaj.

Si se opsyon koki a kokenn pèmèt lè l sèvi avèk bati a shopt , plizyè modèl pwolonje modèl operatè yo rekonèt. Nan deskripsyon sa a, yon modèl-lis se yon lis youn oswa plis modèl ki separe pa yon | . Modèl konpozit yo ka fòme lè l sèvi avèk youn oswa plis nan sub-modèl sa yo:

( modèl lis )

Matches zewo oswa yon sèl ensidan nan modèl yo bay yo

* ( modèl lis )

Matches zewo oswa plis evènman nan modèl yo bay yo

+ ( modèl-lis )

Matches youn oswa plis evènman nan modèl yo bay yo

@ ( modèl lis )

Matches egzakteman youn nan modèl yo bay yo

! ( modèl lis )

Matches anyen eksepte youn nan modèl yo bay yo

Quote Retire

Apre gran ekspedisyon yo, tout evènman ki pa gen konkou nan karaktè yo, " , " ak " ki pa t 'rezilta soti nan youn nan gran yo pi wo a yo retire.

REDAKSYON

Anvan yo fè yon lòd pou yo egzekite, yo ka redwi opinyon li ak pwodiksyon li lè l sèvi avèk yon notasyon espesyal ki entèprete pa koki an. Redireksyon ka sèvi tou pou ouvri epi fèmen dosye pou anviwònman ekzekisyon koki aktyèl la. Operatè redireksyon sa yo ka vin anvan oswa parèt nenpòt kote nan yon lòd ki senp oswa ka swiv yon lòd . Redireksyon yo trete nan lòd yo parèt, ki soti nan bò gòch a dwat.

Nan deskripsyon sa yo, si nimewo descriptor dosye a disparèt, ak karaktè nan premye nan operatè a redireksyon se < , redireksyon an refere a opinyon estanda a (dosye descriptor 0). Si karaktè an premye nan operatè a redireksyon se > , Reoryantasyon an refere a pwodiksyon an estanda (dosye descriptor 1).

Pawòl ki annapre a operatè redireksyon an nan deskripsyon sa yo, sof si te note, se sibi ekspansyon brace, tilde ekspansyon, ekspansyon paramèt, sibstitisyon lòd, ekspansyon aritmetik, retire quote, ekspansyon chemen, ak divize pawòl. Si li ogmante plis pase yon mo, bach rapòte yon erè.

Remake byen ke lòd redireksyon enpòtan. Pa egzanp, kòmandman an

ls > dirlist 2 > & 1

dirije tou de pwodiksyon estanda ak erè estanda nan dosye a dirlist , pandan y ap lòd la

ls 2 > & 1 > dirlist

dirije sèlman pwodiksyon an estanda nan dosye dirlist , paske te erè nan estanda double kòm pwodiksyon estanda anvan yo te pwodiksyon an estanda reyorante resous nan dirlist .

Bach okipe plizyè fichye espesyalman lè yo itilize nan redireksyon yo, jan sa dekri nan tablo ki annapre yo:

/ dev / fd / fd

Si fd se yon nonb antye ki valab, dosye dkriptè fd la se kopi.

/ dev / stdin

File diktè 0 se double.

/ dev / stdout

Se deskriptè File 1 duplicated.

/ dev / stderr

Se deskriptè 2 ki double.

/ dev / tcp / lame /

Si lame a se yon hostname valab oswa adrès entènèt, ak se yon nimewo pò nonb antye oswa non sèvis, tantativ bach louvri yon koneksyon tchp nan priz ki koresponn lan.

/ dev / UDP / lame /

Si lame a se yon hostname valab oswa adrès entènèt, ak se yon nimewo pò nonb antye oswa non sèvis, tantativ bach louvri yon koneksyon UDP nan priz ki koresponn lan.

Yon echèk yo louvri oswa kreye yon dosye ki lakòz redireksyon a echwe.

Redireksyon Antre

Redireksyon nan opinyon lakòz dosye a ki gen non rezilta soti nan ekspansyon nan mo yo dwe louvri pou lekti sou descriptor dosye n , oswa opinyon estanda a (dosye descriptor 0) si n pa espesifye.

Fòma jeneral la pou redireksyon opinyon se:

[ n ] < mo

Redireksyon Sòti

Redireksyon nan pwodiksyon lakòz dosye a ki gen non rezilta soti nan ekspansyon nan mo yo dwe louvri pou ekri sou descriptor dosye n , oswa pwodiksyon an estanda (dosye descriptor 1) si n pa espesifye. Si dosye a pa egziste li kreye; si li egziste li se twonke zewo gwosè.

Fòma an jeneral pou pwodiksyon Redireksyon se:

[ n ] > mo

Si operatè a redireksyon se > , epi opsyon nan noklobber batiin a mete te pèmèt, Reoryantasyon an ap fail si dosye a ki gen non rezilta soti nan ekspansyon nan mo ki egziste epi se yon dosye regilye. Si operatè redireksyon an se > | , oswa operatè a redireksyon se > ak opsyon nan noklobè yo mete lòd la buildin pa pèmèt, se Reoryantasyon an eseye, menm si dosye a yo te rele pa mo egziste.

Apante Sòti Redireksyon

Redireksyon nan pwodiksyon nan mòd sa a lakòz dosye a ki gen non rezilta ki soti nan ekspansyon nan mo yo dwe louvri pou ajoute sou dosye descriptor n , oswa pwodiksyon an estanda (dosye descriptor 1) si n pa espesifye. Si dosye a pa egziste li kreye.

Fòma an jeneral pou apiye pwodiksyon se:

[ n ] >> mo

Redireksyon Creole Sòti ak Creole Erè

Bach pèmèt tou de pwodiksyon estanda (dosye descriptor 1) ak pwodiksyon an erè estanda (dosye descriptor 2) yo dwe reyorante resous nan dosye a ki gen non se ekspansyon nan mo ak sa a konstwi.

Gen de fòma pou redireksyon pwodiksyon estanda ak erè estanda:

&> mo

ak

> & mo

Nan de fòm yo, premye a se pi pito. Sa a se semantik ekivalan a

> mo 2 > & 1

Isit la Dokiman

Sa a ki kalite redireksyon enstriksyon koki a li opinyon soti nan sous aktyèl la jiskaske yon liy ki gen sèlman mo (ki pa gen okenn espas vid) se wè. Tout liy yo li jiska pwen sa yo Lè sa a, itilize kòm opinyon estanda a pou yon lòd.

Fòma a nan dokiman isit la se:

<< [ - ] pawòl isit-dokiman délimiter

Pa gen ekspansyon paramèt, sibstitisyon lòd, ekspansyon aritmetik, oswa ekspansyon pathname ki fèt sou mo . Si nenpòt karaktè nan mo yo te site, delimiter a se rezilta nan quote retire sou mo , ak liy ki nan dokiman an isit-yo pa elaji. Si mo a se non, tout liy nan dokiman an isit-yo sibi paramèt ekspansyon, sibstitisyon lòd, ak ekspansyon aritmetik. Nan ka a lèt, se sekans lan karaktè \ inyore, ak \ yo dwe itilize yo site karaktè yo \ , $ , ak ` .

Si operatè redireksyon an se << - , Lè sa a, tout karaktè tab dirijan yo dezabiye nan liy opinyon ak liy ki gen delimiter . Sa a pèmèt dokiman sa yo nan Scripts koki yo dwe regrete nan yon mòd natirèl.

Isit la strings

Yon Variant isit la dokiman, fòma a se:

<<< mo

Se pawòl la elaji ak apwovizyone bay lòd la sou opinyon estanda li yo.

Dosye deskriptè File

Operatè a redireksyon

[ n ] <& mo

yo itilize yo kopi deskriptè dosye opinyon. Si mo a ogmante nan youn oswa plis chif, descriptor a dosye ki endike pa n yo te fè yo dwe yon kopi descriptoror dosye sa a. Si chif yo nan mo pa presize yon descriptè dosye ouvè pou opinyon, yon erè redireksyon rive. Si mo evalye - , descriptor n ranpli. Si n pa espesifye, yo itilize dijè estanda (dosye descriptor 0).

Operatè a

[ n ] > & mo

se itilize menm jan ak kopi descriptè dosye kopi. Si n pa espesifye, yo itilize pwodiksyon estanda (dosye descriptor 1). Si chif yo nan mo pa presize yon descriptè dosye ouvè pou pwodiksyon, yon erè redireksyon rive. Kòm yon ka espesyal, si n se omisyon, ak mo pa elaji nan youn oswa plis chif, pwodiksyon an estanda ak erè estanda yo reyorante resous kòm dekri deja.

Moving File Descriptors

Operatè a redireksyon

[ n ] <& chif -

deplase chif la descriptor ranpli pou dosye descriptor n , oswa opinyon estanda a (dosye descriptor 0) si n pa espesifye. chif se fèmen apre yo te fin kopye n .

Menm jan an tou, operatè a redireksyon

[ n ] > & chif -

deplase descriptor chif la ranpli dosye descriptor n , oswa pwodiksyon an estanda (dosye descriptor 1) si n pa espesifye.

Louvri Descriptè File pou Lekti ak Ekri

Operatè a redireksyon

[ n ] <> mo

lakòz dosye a ki gen non se ekspansyon nan mo yo dwe louvri pou tou de lekti ak ekri sou descriptor dosye n , oswa sou descriptor dosye 0 si n pa espesifye. Si dosye a pa egziste, li kreye.

ALIAS

Alyas pèmèt yon fisèl yo dwe ranplase pou yon mo lè li itilize kòm premye mo a nan yon lòd ki senp. Koki a kenbe yon lis aliases ki ka mete ak enkonèksyon ak alyas yo ak inalias commandin commands (gade SHELL BUILTIN COMMANDS anba a). Premye mo nan chak lòd, si yo pa dakò, yo tcheke pou wè si li gen yon alyas. Si se konsa, mo sa a ranplase pa tèks la nan alyas la. Non alyas la ak tèks ranplasman an ka gen ladan nenpòt ki opinyon koki valab, ki gen ladan metacharacters yo ki nan lis anwo a, ak eksepsyon ki non an alyas pa ka gen ladan = . Premye mo tèks ranplasman an teste pou aliases, men yon mo ki idantik ak yon alyas ki te elaji pa elaji yon dezyèm fwa. Sa vle di ke yon moun ka alyas ls pou ls -F , pou egzanp, ak bash pa eseye recursively elaji tèks la ranplasman. Si karaktè ki sot pase a nan valè a alyas se yon vid , Lè sa a, pwochen lòd la lòd sa yo alyas yo tou tcheke pou alyas ekspansyon.

Alyas yo kreye epi ki nan lis ak lòd alyas la , epi yo retire ak lòd la unalias .

Pa gen okenn mekanis pou itilize agiman nan tèks ranplasman an. Si yo bezwen agiman, yo ta dwe itilize yon fonksyon koki (gade FUNCTIONS anba a).

Analiz yo pa elaji lè koki a pa entèaktif, sòf si opsyon koki expand_aliases yo mete lè l sèvi avèk shopt (al gade deskripsyon chopt anba SHELL BUILTIN COMMANDS anba a).

Règ yo konsènan definisyon ak itilizasyon aliases yo yon ti jan konfizyon. Bach toujou li omwen yon liy konplè nan opinyon anvan ou egzekite nenpòt nan kòmandman yo sou liy sa a. Aliases yo elaji lè yon lòd li, pa lè li egzekite. Se poutèt sa, yon definisyon alyas parèt sou menm liy lan kòm yon lòt lòd pa pran efè jiskaske liy nan pwochen nan opinyon li. Kòmandman yo alyas sou liy sa a pa afekte pa nouvo alyas yo. Konpòtman sa a tou se yon pwoblèm lè fonksyon yo egzekite. Alyas yo ap elaji lè yon definisyon fonksyon li, pa lè se fonksyon an egzekite, paske yon definisyon fonksyon se tèt li yon lòd konpoze. Kòm yon konsekans, aliases defini nan yon fonksyon yo pa disponib jouk apre yo fin ke se fonksyon egzekite. Pou yo an sekirite, toujou mete definisyon alyas sou yon liy separe, epi pa sèvi ak alyas nan kòmandman konpoze.

Pou prèske chak bi, aliases yo superseded pa fonksyon koki.

FUNCTIONS

Yon fonksyon koki, defini jan sa dekri anwo a anba SHELL GRAMMAR , magazen yon seri de kòmandman pou ekzekisyon pita. Lè yo rele non an nan yon fonksyon koki kòm yon non lòd senp, se lis la nan kòmandman ki asosye avèk non fonksyon sa a egzekite. Fonksyon yo egzekite nan yon kontèks koki aktyèl la; pa gen okenn pwosesis nouvo kreye entèprete yo (kontrè sa a ak ekzekisyon an nan yon script koki). Lè yon fonksyon egzekite, agiman yo nan fonksyon an vin paramèt yo positional pandan ekzekisyon li yo. Paramèt espesyal # ap mete ajou pou reflete chanjman an. Positif paramèt 0 se chanje. FUNCNAME varyab la mete nan non an nan fonksyon an pandan y ap fonksyon an ap egzekite. Tout lòt aspè nan anviwònman ekzekisyon koki yo idantik ant yon fonksyon ak moun kap rele li yo ak eksepsyon ke pyèj DEBUG a (gade deskripsyon pyèj ki fèt anba CHELL BUILTIN COMMANDS anba a) pa eritye sòf si fonksyon an te bay atribi trase a ( gade deskripsyon deklarasyon ki fèt anba a).

Varyab lokal nan fonksyon an kapab deklare ak lòd lokal la batiin. Nòmalman, varyab yo ak valè yo ap pataje ant fonksyon an ak moun kap rele li yo.

Si yo retounen nan lòd batiin nan yon fonksyon, fonksyon an konplete ak ekzekisyon rezime ak pwochen an lòd apre apèl la fonksyon. Lè yon fonksyon konplete, valè paramèt positional yo ak paramèt espesyal # yo retabli nan valè yo te genyen anvan ekzekisyon fonksyon an.

Fonksyon non ak definisyon ka yo ki nan lis ak -f opsyon nan deklarasyon an oswa lòd batiin. Opsyon -F pou deklare oswa tipèt pral lis non fonksyon yo sèlman. Fonksyon yo ka ekspòte pou subshells otomatikman gen yo defini ak -f opsyon nan bati a ekspòtasyon .

Fonksyon yo ka repetitif. Pa gen limit ki enpoze sou kantite apèl repetitif yo.

ARÈVÈTIK EVALYASYON

Koki a pèmèt ekspresyon aritmetik yo dwe evalye, nan sèten sikonstans (al gade kite letan commandin ak aritmetik ekspansyon ). Evalyasyon an fèt nan inite fiks-lajè ki pa gen okenn chèk pou debòde, menm si divizyon pa 0 se bloke ak afiche kòm yon erè. Operatè yo ak priyorite yo ak asosyativite yo se menm jan ak nan lang C a. Lis sa a nan operatè yo gwoupe nan nivo operatè egal-priyorite. Nivo yo yo ki nan lis nan lòd diminye priyorite.

id ++ id -

varyab apre-ogmantasyon ak post-rediksyon

++ id - id

varyab pre-ogmantasyon ak pre-rediksyon

- +

unary mwens ak plis

! ~

lojik ak bitu negasyon

**

eksponentasyon

* /%

miltiplikasyon, divizyon, rès

+ -

adisyon, soustraksyon

<< >>

gòch ak dwa orè bitèz

<=> = <>

konparezon

==! =

egalite ak inegalite

&

bitwise AK

^

bitu eksklizif OSWA

|

bitik OSWA

&&

lojik AK

||

lojik OSWA

ekspr ? ekspr : ekspr

evalyasyon kondisyonèl

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

plasman

expr1 , expr2

vigil

Chanj varyab yo pèmèt kòm operand; Se ekspansyon paramèt ki fèt anvan ekspresyon an evalye. Nan yon ekspresyon, varyab koki yo kapab tou referans pa non san yo pa itilize sentaks la ekspansyon paramèt. Valè yon varyab evalye kòm yon ekspresyon aritmetik lè li se referans. Yon varyab koki pa bezwen gen atribi nonb antye relatif yo vire sou yo dwe itilize nan yon ekspresyon.

Konstant ak yon dirijan 0 yo entèprete kòm nimewo octal. Yon dirijan 0x oswa 0X vle di hexadecimal. Sinon, nimewo yo pran fòm [ base # ] n, kote baz se yon chif desimal ant 2 ak 64 ki reprezante baz aritmetik, e n se yon nimewo nan baz sa a. Si baz # se omisyon, Lè sa a, baz 10 yo itilize. Chif yo ki pi gran pase 9 yo reprezante pa lèt miniskil yo, lèt majuskul, @, ak _, nan lòd sa a. Si baz la mwens pase oswa egal a 36, ​​lèt majiskil ak majuskul yo ka itilize interchangably pou reprezante nimewo ant 10 ak 35.

Operatè yo evalye nan lòd priyorite. Sub-ekspresyon nan parantèz yo evalye premye epi yo ka pase sou presizyon règleman ki anwo yo.

KONPRANN KONDISYON

Ekspresyon kondisyonèl yo itilize pa [[ konpoze lòd ak tès la ak [ commandin bati pou teste atribi dosye ak fè konparezon string ak aritmetik. Ekspresyon yo fòme nan men direktè yo ki pa marye oswa binè. Si nenpòt ki diskisyon dosye nan youn nan primè yo se nan fòm / dev / fd / n , Lè sa a, deskriptè n se tcheke. Si agiman an dosye nan youn nan primè yo se youn nan / dev / stdin , / dev / stdout , oswa / dev / stderr , descriptor dosye 0, 1, oswa 2, respektivman, tcheke.

-a dosye

Vrè si dosye egziste.

-b dosye

Vrè si dosye egziste e se yon blòk dosye espesyal.

-c dosye

Vrè si dosye egziste epi li se yon dosye espesyal karaktè.

-d dosye

Vrè si dosye egziste e se yon anyè.

-e dosye

Vrè si dosye egziste.

-f dosye

Vrè si dosye egziste e se yon dosye regilye.

-g dosye

Vrè si dosye egziste epi li mete gwoup id-la.

-h dosye

Vrè si dosye egziste e se yon lyen senbolik.

-k dosye

Vrè si dosye ki egziste ak li yo "ti kolan" se mete.

-p dosye

Vrè si dosye egziste e se yon tiyo rele (FIFO).

-r dosye

Vrè si dosye egziste e li ka li.

-s dosye

Vrè si dosye egziste e li gen yon gwosè ki pi konsekan pase zewo.

-t fd

Vrè si dosye descriptor fd la louvri epi refere a yon tèminal.

-U dosye

Vrè si dosye egziste ak ti jan seri-itilizatè-id li yo mete.

-w dosye

Vrè si dosye egziste e se ekriti.

-x dosye

Vrè si dosye egziste ak ègzèkutabl.

-O dosye

Vrè si dosye egziste epi li posede pa id itilizatè a efikas.

-G dosye

Vrè si dosye egziste epi li posede pa ID gwoup la efikas.

-L dosye

Vrè si dosye egziste e se yon lyen senbolik.

-S dosye

Vrè si dosye egziste e se yon priz.

-N dosye

Vrè si dosye egziste e li te modifye depi li te dènye li.

file1 - nt file2

Vrè si file1 se plus (selon dat modifikasyon) pase file2 , oswa si file1 egziste ak file2 pa.

file1 - ot file2

Vrè si file1 se pi gran pase file2 , oswa si file2 egziste ak file1 pa.

file1 -ef file2

Vrè si file1 ak file2 refere a aparèy la menm ak nimewo inod.

-o opsyon

Vrè si opsyon opsyon koki pèmèt. Gade lis la nan opsyon anba deskripsyon an nan -o opsyon nan bati a pi ba a.

-z fisèl

Vrè si longè fisèl la se zewo.

-n fisèl

fisèl

Vrè si longè a se fisèl ki pa zewo.

string1 == string2

Vrè si strings yo egal. = ka itilize nan plas == pou konfòmite strik POSIX.

string1 ! = string2

Vrè si strings yo pa egal.

string1 < string2

Vrè si kalite string1 anvan string2 lexikografik nan locale aktyèl la.

string1 > string2

Vrè si kalite string1 yo apre string2 lexikografik nan lokale aktyèl la.

arg1 OP arg2

OP se youn nan -eq , -n , -lt , -le , -gt , oswa -ge . Operatè binè aritmetik sa yo retounen vre si arg1 egal, pa egal a, mwens pase, mwens pase oswa egal a, pi gran pase, oswa pi gran pase oswa egal a arg2 , respektivman. Arg1 ak arg2 kapab pozitif pozitif oswa negatif.

SÈLMAN KONPANSYON KONPLÈ

Lè yo egzekite yon lòd ki senp, koki a fè ekspansyon yo, devwa yo, ak rdirèksyon yo, ki soti nan bò gòch a dwat.

1. Mo sa yo ke parser la te make kòm devwa varyab (sa ki anvan non an lòd) ak rdirèksyon yo sove pou pwosesis pita.

2.Li sa yo ki pa devwa varyab oswa redireksyon yo elaji. Si nenpòt mo rete apre ekspansyon, premye mo a pran non kòmand la ak mo ki rete yo se agiman yo.

3.Redireksyon yo fèt jan sa dekri pi wo a anba REDIREKSYON .

4.Tèks la apre = nan chak plasman varyab sibi ekspansyon, ekspansyon paramèt, sibstitisyon lòd, aritmetik ekspansyon, ak retire retire anvan yo te asiyen nan varyab la.

Si pa gen okenn rezilta non lòd, devwa yo varyab afekte anviwònman an koki kounye a. Sinon, varyab yo yo te ajoute nan anviwònman an nan lòd la egzekite epi yo pa afekte anviwònman an koki kounye a. Si nenpòt nan devwa yo eseye bay yon valè nan yon varyab readonly, yon erè rive, ak lòd la sòti ak yon estati ki pa zewo.

Si pa gen okenn rezilta non lòd, redireksyon yo fèt, men se pa afekte anviwònman an koki kounye a. Yon erè redireksyon lakòz lòd la sòti ak yon estati ki pa Peye-zewo.

Si gen yon non lòd ki rete apre ekspansyon, ekzekisyon an kòm jan sa dekri anba a. Sinon, lòd la sòti. Si youn nan ekspansyon yo genyen yon sibstitisyon kòmand, estati a sòti nan lòd la se estati a sòti nan sibstitisyon an kòmand pase fè. Si pa te gen okenn ranplasman lòd, lòd la sòti ak yon estati zewo.

COMMAND EXECUTION

Apre yon lòd te divize an mo, si li rezilta nan yon lòd senp ak yon lis opsyonèl nan agiman, aksyon sa yo yo te pran.

Si non an bay lòd pa gen okenn bar, koki an eseye jwenn li. Si genyen yon fonksyon koki pa non sa a, fonksyon sa a envoke jan sa dekri pi wo a nan FUNCTIONS . Si non an pa matche ak yon fonksyon, chal la fouye pou li nan lis la nan batiin koki. Si yo jwenn yon match, bati sa a envoke.

Si non an pa ni yon fonksyon koki ni yon bati, epi li pa gen okenn bar, fouye bach chak eleman nan PATH la pou yon anyè ki gen yon dosye ègzèkutabl pa non sa a. Bach sèvi ak yon tab estati yo sonje tout pathnames yo nan dosye ègzèkutabl (gade echèk anba SHELL BUILTIN COMMANDS anba a). Yon rechèch konplè nan repèrtwar yo nan PATH se fè sèlman si lòd la pa jwenn nan tab la hash. Si rechèch la se san siksè, koki an simaye yon mesaj erè epi retounen yon estati sòti nan 127.

Si rechèch la se siksè, oswa si non an bay lòd gen youn oswa plis bar, koki an egzekite pwogram nan yo te rele nan yon ekzekisyon ekzekisyon separe. Agiman 0 se mete nan non yo bay la, ak agiman ki rete yo bay lòd la yo mete agiman yo bay yo, si genyen.

Si ekzekisyon sa a echwe paske dosye a pa nan fòma ègzèkutabl, ak dosye a se pa yon anyè, li sipoze yo dwe yon script koki , yon dosye ki gen kòmandman koki. Yon subshell se anjandre egzekite li. Sa a subshell reinitializes tèt li, se konsa ke efè a se kòm si yo te yon nouvo koki ki te envoke yo okipe script la, eksepte ke kote yo nan kòmandman chonje pa paran an (gade echèk anba a anba SHELL BUILTIN COMMANDS ) yo kenbe timoun nan.

Si pwogram lan se yon kòmanse kòmanse ak #! , rès liy premye a espesifye yon entèprèt pou pwogram nan. Koki a egzekite entèprèt la espesifye sou sistèm opere ki pa manyen fòma ègzèkutabl sa a tèt yo. Agiman yo bay entèprèt la konpoze de yon sèl agiman opsyonèl sa yo non an entèprèt sou premye liy nan pwogram lan, ki te swiv pa non an nan pwogram nan, ki te swiv pa agiman yo lòd, si genyen.

KÒD ENVIRONMAN POU KONDISYON

Koki a gen yon anviwònman ekzekisyon , ki gen ladan sa ki annapre yo:

* louvri dosye eritye pa koki a nan envokasyon, jan modifye pa redireksyon apwovizyone nan bati a ekzekitif

* aktyèl k ap travay nan anyè kòm mete pa CD , pouse , oswa popd , oswa eritye pa koki a nan envokasyon

* mask la kreyasyon dosye mòd tankou mete nan umask oswa eritye soti nan paran an koki a

* pyèj aktyèl ki etabli pa pèlen

* Paramèt koki ki fikse pa plasman varyab oswa ak mete oswa eritye nan paran an koki a nan anviwònman an

* Fonksyon koki defini pandan ekzekisyon oswa eritye de paran koki a nan anviwònman an

* Opsyon pèmèt nan envokasyon (swa pa default oswa ak lòd-liy agiman) oswa pa mete

* opsyon ki pèmèt pa shopt

* aliases koki defini ak alyas

* ID divès kalite pwosesis, ki gen ladan sa yo ki nan travay background, valè a nan $ $ , ak valè a nan $ PPID

Lè yon lòd senp lòt pase yon fonksyon batiin oswa koki se yo dwe egzekite, li se envoke nan yon ekzekisyon ekzekisyon separe ki gen ladan sa ki annapre yo. Sof si te note, valè yo eritye de koki an.

* dosye louvri koki a, plis nenpòt chanjman ak ajoute espesifye pa redireksyon bay lòd la

* aktyèl k ap travay anyè a

* mask la kreyasyon dosye mòd

* varyab koki make pou ekspòtasyon, ansanm ak varyab ekspòte pou lòd la, te pase nan anviwònman an

* pyèj kenbe pa koki an yo Reyajiste nan valè yo eritye a soti nan paran yo koki a, ak pyèj inyore pa koki a yo inyore

Yon lòd ki envoke nan anviwònman sa a separe pa ka afekte anviwònman ekzekisyon koki a.

Kòmandan sibstitisyon ak kòmandman asynchone yo envoke nan yon anviwònman subshell ki se yon kopi nan anviwònman an koki, eksepte ke pyèj kenbe pa koki a yo Reyajiste nan valè yo ke koki an eritye nan men paran li nan envokasyon. Kòmandman Builtin ke yo envoke kòm yon pati nan yon tiyo yo tou egzekite nan yon anviwònman subshell. Chanjman ki fèt nan anviwònman an subshell pa ka afekte anviwònman ekzekisyon koki a.

Si yon lòd ki te swiv pa yon & kontwòl ak travay se pa aktif, default estanda opinyon an pou lòd la se dosye a vid / dev / nil . Sinon, kòmandman an envoke eritye deskriptè yo nan koki a rele kòm modifye pa redireksyon.