Bash - Linux Command - Unix komandu

NAME

bash - GNU Bourne-Again SHell

SINOPSIS

bash [opcijas] [fails]

APRAKSTS

Bash ir sh- saderīgs komandu valodas tulks, kas izpilda komandas, kas nolasītas no standarta ievades vai no faila. Bash arī ietver noderīgas funkcijas no Korn un C korpusiem ( ksh un csh ).

Bash ir paredzēts IEEE POSIX korpusa un rīku specifikācijas (IEEE darba grupas 1003.2) atbilstošai ieviešanai.

OPTIONS

Papildus viena rakstzīmju čaulas opcijām, kas dokumentētas aprakstītā iekšējā komandā, bash interpretē šādas iespējas, kad tā tiek izsaukta:

-c virkne

Ja ir opcija -c , tad komandas tiek lasītas no virknes . Ja pēc virknes ir argumenti, tie tiek piešķirti pozīcijas parametriem, sākot ar $ 0 .

-i

Ja ir opcija -i , apvalks ir interaktīva .

-l

Padarīt bash rīkoties tā, it kā tā tiktu izmantota kā pieteikšanās čaula (skatīt turpmāk " INVOCATION" ).

-r

Ja ir opcija -r , apvalks kļūst ierobežots (skatīt zemāk RESTRICTED SHELL ).

-s

Ja ir opcija -s vai ja pēc opcijas apstrādes netiek palikti argumenti, tad komandas tiek nolasītas no standarta ievades. Šī opcija ļauj iestatīt pozīcijas parametrus, piesakoties interaktīvam apvalkam.

-D

Visu dubultklikšķu virkņu saraksts, kuru priekšā ir $, tiek drukāts uz standarta opcijas. Tās ir virknes, uz kurām attiecas valodu tulkošana, ja pašreizējā lokalizācija nav C un POSIX . Tas nozīmē -n opciju; netiks izpildītas nekādas komandas.

[- +] O [ shopt_option ]

Shopt_option ir viena no apvalka opcijām, ko pieņēmis veikals , kas ir iebūvēts (skatiet SHELL BUILTIN COMMANDS zemāk). Ja ir veikta shopt_option , -O nosaka šīs opcijas vērtību; + O atinstalē to. Ja shopt_option netiek piegādāts, parastā produkcija tiek izdrukāta veikala pieņemto apvalka opciju nosaukumiem un vērtībām. Ja izsaukuma iespēja ir + O , izvade tiek parādīta formātā, kuru var atkārtoti izmantot kā ievadi.

-

A - norāda opciju beigas un atspējo papildu iespēju apstrādi. Jebkuri argumenti pēc - tiek uzskatīti par failu nosaukumiem un argumentiem. Arguments - ir līdzvērtīgs - .

Bash arī interpretē vairākas vairāku rakstzīmju opcijas. Šīm opcijām ir jābūt redzamām komandrindā, lai atpazītu vienas zīmes opcijas.

- dump-po-strings

Līdzvērtīgs -D , bet izlaide ir GNU gettext po (portatīvo objektu) faila formātā.

- dump-strings

Līdzvērtīgs -D .

--palīdzība

Parādiet lietojuma ziņojumu standarta izvadā un veiksmīgi izejiet.

-init-faila fails

--rcfile fails

Izpildiet komandas no faila, nevis standarta personīgā inicializācijas faila ~ / .bashrc, ja apvalks ir interaktīvs (skatiet turpmāk VAJADZĪBU ).

--Pieslēgties

Līdzvērtīgs -l .

--noediting

Nelietojiet GNU readline bibliotēku, lai izlasītu komandrindas, kad čaula ir interaktīva.

- neprofile

Neizskatiet sistēmas mērogu startēšanas failu / etc / profile vai kādu no personīgajiem inicializācijas failiem ~ / .bash_profile , ~ / .bash_login vai ~ / .profile . Pēc noklusējuma bash nolasa šos failus, kad tiek izmantots kā pieteikšanās čaula (skatiet turpmāk minēto.).

--norc

Neizlasiet un neizpildiet personīgo inicializācijas failu ~ / .bashrc, ja čaula ir interaktīva. Šī opcija ir ieslēgta pēc noklusējuma, ja apvalks tiek izsaukts kā sh .

--posiks

Mainiet bash uzvedību, kur noklusējuma darbība atšķiras no POSIX 1003.2 standarta, lai tas atbilstu standartam ( POSIX režīms ).

- ierobežots

Apvalks kļūst ierobežots (skatiet sadaļu RESTRICTED SHELL zemāk).

--rpm-nepieciešams

Veidojiet failu sarakstu, kas nepieciešams, lai skripts darbotos. Tas nozīmē "-n", un uz tiem attiecas tādi paši ierobežojumi kā laika kļūdu pārbaudes pārbaude; Necaunām, [] testiem un evals netiek analizēti, tāpēc var tikt izmantotas dažas atkarības. --verbose Ekvivalents -v .

- pārveide

Parādiet šī standarta izvades gadījuma versiju informāciju un veiksmīgi izejiet.

ARGUMENTI

Ja argumenti paliek pēc opcijas apstrādes un nav sniegta ne -c, ne -s opcija, tiek pieņemts, ka pirmais arguments ir faila, kurā ir čaulas komandas, nosaukums. Ja bash tiek izmantots šādā veidā, $ 0 ir iestatīts uz faila nosaukumu, un pozīcijas parametri ir iestatīti uz atlikušajiem argumentiem. Bash nolasa un izpilda komandas no šī faila, pēc tam iziet. Bash izejas statuss ir pēdējās komandas, kas izpildītas skriptā, izejas statuss. Ja netiek izpildītas nekādas komandas, izejas statuss ir 0. Vispirms tiek mēģināts atvērt failu pašreizējā direktorijā un, ja neviens fails nav atrasts, apvalks meklē skripta direktorijus PATH .

INOVĀCIJA

Pieteikšanās apvalks ir tāds, kura pirmais rakstzīmes arguments ir nulle ir - vai arī tas sākās ar --login opciju.

Interaktīvs apvalks ir viens, kas sākts bez argumentiem bez opcijas un bez -c opcijas, kuras standarta ieejas un izejas ir abas savienotas ar termināļiem (kā noteikts ar isatty (3)), vai arī tas sākts ar -i opciju. PS1 ir iestatīts, un $ - ietver i, ja bash ir interaktīva, ļaujot šifra skriptu vai starta failu pārbaudīt šo stāvokli.

Turpmākajos punktos ir aprakstīts, kā bash izpilda starta failus. Ja kāds no failiem pastāv, bet to nevar izlasīt, bash ziņo par kļūdu. Tildes tiek paplašinātas failu nosaukumos, kā aprakstīts zemāk sadaļā Tilde Expansion sadaļā EXPANSION .

Kad bash tiek izsaukts kā interaktīvs pieteikšanās čaula vai kā neinteraktīvs čaula ar opciju -login , tā vispirms nolasa un izpilda komandas no faila / etc / profile , ja šis fails pastāv. Pēc šī faila lasīšanas tā meklē šādus secībā ~ / .bash_profile , ~ / .bash_login un ~ / .profile un nolasa un izpilda komandas no pirmās, kas pastāv un ir nolasāma. Opciju -noprofile var izmantot, ja tiek sākta apvalka darbība, lai kavētu šo darbību.

Kad izejās pieteikšanās lodziņš , bash nolasa un izpilda komandas no faila ~ / .bash_logout , ja tā ir.

Kad sākusies interaktīvā čaula, kas nav pieteikšanās čaula, bash nolasa un izpilda komandas no ~ / .bashrc , ja šis fails pastāv. To var kavēt, izmantojot opciju -norc . Faila --rcfile fails prasa bash lasīt un izpildīt komandas no faila, nevis ~ / .bashrc .

Ja bash tiek palaists neinteraktīvi, piemēram, lai palaistu čaulas skriptu, tā meklē vidē mainīgo BASH_ENV , paplašina tā vērtību, ja tā tiek parādīta, un izmanto paplašināto vērtību kā faila nosaukumu, kuru lasīt un izpildīt . Bash uzvedas tā, it kā izpildītu šādu komandu:

ja [-n "$ BASH_ENV"]; tad "$ BASH_ENV"; fi

bet PATH mainīgā vērtība netiek izmantota, lai meklētu faila nosaukumu.

Ja bash tiek atsaukts ar nosaukumu sh , tas cieši mēģina atdarināt sākotnējo sh versiju palaišanas stilu, vienlaikus ievērojot POSIX standartu. Ja tiek izmantots kā interaktīvs pieteikšanās apvalks vai neinteraktīvs apvalks ar opciju -login , vispirms tiek mēģināts nolasīt un izpildīt komandas no / etc / profile un ~ / .profile šajā kārtībā. Opciju -noprofile var izmantot, lai kavētu šo uzvedību. Ja tiek izmantots kā interaktīvs apvalks ar nosaukumu sh , bash meklē mainīgo ENV , paplašina tā vērtību, ja tas ir definēts, un izmanto paplašināto vērtību kā faila nosaukumu, kuru lasīt un izpildīt. Tā kā čaula, kuru izmanto kā sh , nemēģina lasīt un izpildīt komandas no citiem starta failiem, --rcfile opcija nav efektīva. Neinteraktīvs apvalks, kas tiek lietots ar nosaukumu sh , nemēģina nolasīt citus starta failus. Kad izsaukts kā sh , bash ievada POSIX režīmu pēc starta failu lasīšanas.

Kad bash tiek palaists Posix režīmā, tāpat kā ar -posix komandrindas opciju, tas atbilst POSIX standartam starta failos. Šajā režīmā interaktīvās čaulas paplašina ENV mainīgo, un komandas tiek lasītas un izpildītas no faila, kura nosaukums ir izvērsta vērtība. Citus starta failus neizlasa.

Bash mēģina noteikt, kad to vada attālā čeka dēmons, parasti rshd . Ja bash nosaka, ka to vada rshd , tas nolasa un izpilda komandas no ~ / .bashrc , ja šis fails pastāv un ir lasāms. Tas nedarīs to, ja tiek norādīts kā sh . Iespēju -norc var izmantot, lai apturētu šo uzvedību, un --rcfile opciju var izmantot, lai piespiestu citu failu lasīt, bet rshd parasti neizmanto korpusu ar šīm opcijām vai arī ļauj tos norādīt.

Ja korpuss tiek palaists ar efektīvu lietotāja (grupas) id, kas nav vienāds ar reālo lietotāja (grupas) ID, un -p opcija netiek piegādāta, netiek sākti starta faili, apvalka funkcijas netiek mantotas no vides, SHELLOPTS Mainīgais lielums, ja tas parādās vidē, tiek ignorēts un faktiskais lietotāja ID ir iestatīts uz reālo lietotāja ID. Ja pēc izsaukšanas tiek piedāvāta opcija -p , starta uzvedība ir tāda pati, bet faktiskais lietotāja ID netiek atiestatīts.

DEFINĪCIJAS

Pārējās šā dokumenta daļas tiek izmantotas šādas definīcijas.

tukšs

Vieta vai cilne.

vārds

Simbolu virkne, ko korpusa uzskata par vienu vienību. Zināms arī kā token .

vārds

Vārds, kas sastāv tikai no burtu un ciparu rakstzīmēm un pasvītrojumiem, un sākas ar alfabētisko rakstzīmi vai pasvītrojumu. Minēts arī kā identifikators .

metasaraksts

Raksturs, kas, ja nekotēts, atdala vārdus. Viens no šiem:

| & () <> atstarpes cilne

kontroles operators

Tokens, kas izpilda kontroles funkciju. Tas ir viens no šādiem simboliem:

|| && ;; () |

Rezervēti vārdi

Rezervēti vārdi ir vārdi, kuriem īpaša nozīme ir apvalkam. Turpmāk minētie vārdi tiek atzīti par rezervētiem, ja tie nav kotēti, un vai nu vienkāršās komandas vārds (skat. SHELL GRAMMAR zemāk) vai lietas trešais vārds vai komanda:

! gadījumā izdarīt elif else esac fi par funkciju, ja izvēlieties tad līdz brīdim {} laiks [[]]

SHELL GRAMMAR

Vienkāršie komandējumi

Vienkārša komanda ir izvēles mainīgo piešķīrumu secība, kam seko tukšs atdalīts vārds un novirzīšana, un to pārtrauc kontroles operators . Pirmais vārds norāda izpildāmo komandu un tiek nodots kā arguments nullei. Pārējie vārdi tiek nodoti kā norādītie komandu argumenti.

Vienkāršas komandas atgriešanās vērtība ir tās izejas statuss, vai 128+ n, ja komanda tiek pārtraukta ar signālu n .

Cauruļvadi

Cauruļvads ir vienas vai vairāku komandu secība, ko atdala raksturs | . Cauruļvada formāts ir:

[ laiks [ -p ]] [! ] komanda [ | command2 ...]

Komandas standarta izvade caur cauruli tiek savienota ar komandas standarta ievadi2 . Šis savienojums tiek veikts pirms jebkuras komandas noteiktas pārsūtīšanas (sk. REDIRECTION zemāk).

Ja rezervēts vārds ! pirms cauruļvada, šī cauruļvada izejas statuss ir loģisks NĒ no pēdējās komandas izejas statusa. Pretējā gadījumā cauruļvada statuss ir pēdējās komandas izejas statuss. Apvalks gaida visas komandas cauruļvadā, lai izbeigtu pirms vērtības atgriešanas.

Ja laika rezervētais vārds priekšā ir cauruļvads, tad, kad cauruļvads beidzas, paziņo par tā izpildi aizgājušo, kā arī lietotāja un sistēmas laiku. Opcija -p maina izejas formātu, kā norādīts POSIX. Mainīgo TIMEFORMAT var iestatīt formāta virknei, kurā norādīts, kā jāparāda laika informācija; skatiet TIMEFORMAT aprakstu zem apvalka mainīgajiem .

Katra cauruļvada komanda tiek izpildīta kā atsevišķs process (ti, apakšshēma).

Saraksti

Saraksts ir viena vai vairāku cauruļvadu secība, ko atdala viens no operatoriem ; , & , && , vai || , un pēc izvēles tiek pārtraukta viena no ; , & vai .

No šiem saraksta operatoriem, && un || ir vienāda prioritāte, kam seko ; un &, kuriem ir vienāda prioritāte.

Saraksts ar vienu vai vairākām jaunām līnijām var parādīties sarakstā, nevis semikolona, ​​lai norobežotu komandas.

Ja komandu pārtrauc kontroles operators & , apvalks izpilda komandu fona apakšslēgumā. Korpuss nav jāgaida, kamēr komanda beigsies, un atgriešanās statuss ir 0. Komandas, kuras atdala ar ; tiek izpildīti secīgi; apvalks gaida, kad katra komanda izbeidzas pēc kārtas. Atgriešanās statuss ir pēdējās izpildītās komandas izejas statuss.

Vadības operatori && un || attiecīgi atzīmējiet AND sarakstus un VR sarakstus. AND sarakstam ir veidlapa

command1 && command2

Command2 tiek izpildīts tikai tad, ja komanda1 atgriež nulles izejas statusu.

VR saraksts ir veidlapa

command1 || command2

Command2 tiek izpildīts tikai un vienīgi tad, ja komanda1 atgriež statusu, kurā nav nulles. AND un VR saraksta atgriešanās statuss ir pēdējās komandas, kas ir sarakstā, izejas statuss.

Apvienotie komandējumi

Kombinēta komanda ir viena no šādām:

( saraksts )

saraksts tiek izpildīts apakšslēgumā. Mainīgie uzdevumi un iebūvētās komandas, kas ietekmē čaulas vidi, paliek spēkā pēc tam, kad komanda ir pabeigta. Atgriešanās statuss ir saraksta izvešanas statuss.

{ list ; }

saraksts tiek vienkārši izpildīts pašreizējā čaulas vidē. saraksts jāizbeidz ar jaunu rindiņu vai ar semikolu. To sauc par grupas komandu . Atgriešanās statuss ir saraksta izvešanas statuss. Ņemiet vērā, ka atšķirībā no meta zīmēm ( un ) , { un } ir rezervēti vārdi, un tiem jāatrodas, ja atļauts atpazīt rezervēto vārdu. Tā kā tie neizraisa vārdu pārtraukumu, tie ir jāatdala no saraksta ar atstarpēm.

(( izteiksme ))

Izteiksme tiek novērtēta saskaņā ar noteikumiem, kas aprakstīti turpmāk ARĪMĒTISKĀ NOVĒRTĒJUMĀ . Ja izteiksmes vērtība nav nulle, atgriešanās statuss ir 0; pretējā gadījumā atgriešanās statuss ir 1. Tas ir tieši līdzvērtīgs ļaut " izteiksmei ".

[[ izteiksme ]]

Atgriež statusu 0 vai 1, atkarībā no nosacītā izteiksmes izteiksmes novērtējuma . Izteicienus veido primārie raksturlielumi, kas aprakstīti turpmāk ar nosacījumu EXPRESSIONS . Vārdu sadalīšana un pagātnes paplašināšana netiek veikta vārdiem starp [[ un ]] ; tildes izplešanās, parametru un mainīgo izplešanās, aritmētiskās izplešanās, komandu aizstāšana, procesu aizstāšana un citēšanas noņemšana.

Ja tiek izmantoti operatori == and ! =, Operatora labajā stūrī tiek uzskatīts modelis un tas tiek saskaņots saskaņā ar noteikumiem, kas aprakstīti tālāk tekstā Raksturojums. Atgriešanās vērtība ir 0, ja virkne atbilst vai neatbilst modelim attiecīgi, un 1 pretējā gadījumā. Jebkuru modeļa daļu var citēt, lai piespiestu to saskaņot kā virkni.

Izteicienus var kombinēt, izmantojot šādus operatorus, kas uzskaitīti samazinājuma secībā:

( izteiksme )

Atgriež izteiksmes vērtību. To var izmantot, lai ignorētu operatoru parasto prioritāti.

! izteiksme

Taisnība, ja izteiksme ir nepatiesa.

izteiksme1 && izteiksme2

Taisnība, ja gan izteiksme1, gan expression2 ir patiesas.

izteiksme1 || izteiksme2 taisnība ja izteiksme1 vai izteiksme2 ir patiesa.

&& un || operatori neizvērtē izteiksmi2, ja izteiksmes vērtība1 ir pietiekama, lai noteiktu visu nosacītā izteiksmes atdevi.

par vārdu [ vārdu ]; darījumu saraksts ; pabeigts

Turpmākajā sarakstā ir izvērsts vārdu saraksts, izveidojot vienumu sarakstu. Mainīgo nosaukumu pēc kārtas nosaka katram šā saraksta elementiem, un saraksts tiek izpildīts katru reizi. Ja vārds tiek izlaists, komanda izpilda sarakstu vienu reizi katram iestatītajam pozīcijas parametram (skatiet tālāk PARAMETRI ). Atgriešanās statuss ir pēdējās komandas, kas izpilda, izejas statusu. Ja pēc tukšā saraksta iegūto vienumu rezultātu paplašināšana netiek izpildītas nekādas komandas, un atgriešanās statuss ir 0.

par (( expr1 ; expr2 ; expr3 )); darījumu saraksts ; pabeigts

Pirmkārt, aritmētisko izteiksmi expr1 vērtē saskaņā ar zemāk aprakstītajiem noteikumiem ARITMĒTISKĀ NOVĒRTĒŠANA . Aritmētisko izteiksmi expr2 pēc tam novērtē atkārtoti, līdz tā tiek novērtēta līdz nullei. Katru reizi, kad expr2 novērtē vērtību, kas nav nulle, tiek izpildīts saraksts un tiek vērtēta aritmētiskā izteiksme expr3 . Ja kāda izteiksme tiek izlaista, tā uzvedas tā, it kā tā novērtē līdz 1. Atgriežamā vērtība ir pēdējās komandas izejošais statuss izpildītajā sarakstā vai nepatiesa, ja kāda no izteiksmēm ir nederīga.

izvēlieties vārdu [ vārdam ]; darījumu saraksts ; pabeigts

Turpmākajā sarakstā ir izvērsts vārdu saraksts, izveidojot vienumu sarakstu. Izvērsto vārdu kopums tiek drukāts uz standarta kļūdas, katram pirms tam ir numurs. Ja vārds tiek izlaists, tiek izdrukāti pozīcijas parametri (skatiet tālāk PARAMETRI ). Pēc tam tiek parādīts uzvedne PS3, un no standarta ievades tiek lasīta līnija. Ja līnija sastāv no numura, kas atbilst vienam no parādītajiem vārdiem, vārda vērtība tiek iestatīta uz šo vārdu. Ja līnija ir tukša, vārdi un uzvedne tiek parādīti vēlreiz. Ja EOF tiek lasīts, komanda pabeidz. Jebkura cita vērtība lasiet, tāpēc vārds tiek iestatīts kā nulle. Izlasītā rinda tiek saglabāta mainīgā REPLY . Saraksts tiek izpildīts pēc katras atlases, līdz tiek izpildīta pārtraukuma komanda. Atlases izejas statuss ir pēdējās komandas, kas izpildītas sarakstā , izejas statuss vai nulle, ja nav izpildītas nekādas komandas.

gadījuma vārds [[(() modelis [ | paraugs ]

Lietvedības komanda vispirms paplašina vārdu un mēģina to saskaņot ar katru modeli , savukārt, izmantojot tos pašus atbilstības noteikumus kā par paplašinājumu (sk. Sadaļu Pathname Expansion zemāk). Kad tiek atrasta atbilstība, tiek izpildīts atbilstošais saraksts . Pēc pirmās spēles netiek mēģināts veikt nekādas sekojošās sacensības. Izejas statuss ir nulle, ja nav neviena modeļa. Pretējā gadījumā tas ir pēdējās komandas, kas izpildītas sarakstā, izejas statusu.

ja saraksts ; tad sarakstu; [ elif saraksts ; tad sarakstu ; ] ... [ cits saraksts ; ] fi

Ja saraksts tiek izpildīts. Ja tā izejas statuss ir nulle, tad tiek veikts saraksts . Pretējā gadījumā katrs elifs saraksts tiek izpildīts pēc kārtas, un, ja tā izejas statuss ir nulle, tiek izpildīts attiecīgais saraksts un komanda izpildīta. Pretējā gadījumā cits saraksts tiek izpildīts, ja tāds ir. Iziešanas statuss ir pēdējās izpildītās komandas izejas statuss vai nulle, ja nosacījumi nav pārbaudīti.

kamēr saraksts ; darījumu saraksts ; pabeigts

līdz sarakstam ; darījumu saraksts ; pabeigts

Kamēr komanda nepārtraukti izpilda darījumu sarakstu , ja pēdējā saraksta komanda atgriež nulles izejas statusu. Līdz komanda ir identiska komandai while , izņemot to, ka tests ir noraidīts; darījumu saraksts tiek izpildīts tik ilgi, kamēr saraksta pēdējā komanda atgriež statusu, kurā nav nulles. Izlaides statuss laikā un līdz komandām ir pabeigtās pēdējās do komandu komandas izejas statuss vai nulle, ja neviens nav izpildīts.

[ funkcija ] nosaukums () { list ; }

Tas definē funkciju ar nosaukumu nosaukumu . Funkcijas ķēde ir komandu saraksts starp {un}. Šis saraksts tiek izpildīts ikreiz, kad vārds ir norādīts kā vienkāršas komandas nosaukums. Funkcijas izejas statuss ir pēdējās komandas, kas izpildītas ķermenī, izejas statuss. (Skatīt tālāk FUNKCIJAS .)

KOMENTĀRI

Neinteraktīvā apvalkā vai interaktīvā apvalkā, kurā iespējota interaktīvo piezīmju opcija veikala iebūvēšanai (sk. SHELL BUILTIN COMMANDS zemāk), vārds, kas sākas ar #, izraisa šo vārdu un visus atlikušos rakstzīmes šajā rindā. Interaktīvs čaula bez iespējota interaktīvo komentāru opcija neļauj komentēt. Interaktīvo komentāru opcija pēc noklusējuma ir ieslēgta interaktīvos apvalkos.

Citāts

Citāti izmanto, lai noņemtu noteiktas rakstzīmes vai vārdu īpašo nozīmi korpusam. Citāti var izmantot, lai atspējotu speciālu rakstzīmju īpašo apstrādi, lai novērstu rezervēto vārdu atzīšanu par sevi un lai novērstu parametru paplašināšanu.

Katram no meta zīmēm, kas uzskaitīts iepriekš DEFINĪCIJĀM, īpaša nozīme ir korpusam, un tam ir jābūt citētam, ja tas ir pats sevi pārstāvis.

Kad tiek izmantotas komandu vēsturiskās paplašināšanas iespējas, parasti ir vēsturiskās paplašināšanas raksturs ! , ir jāiesniedz citāts, lai novērstu vēstures paplašināšanos.

Ir trīs citēšanas mehānismi: evakuācijas raksturs , vienotas cenas un dubultās pēdiņas.

Nav kotētais backslash ( \ ) ir aizbēgt raksturs . Tas saglabā sekojošā nākamā rakstzīmes burtisko vērtību, izņemot . Ja tiek parādīts pāra \ pārs un aizmuguresmasa nav citēta, \ tiek uzskatīta par līnijas turpinājumu (tas ir, tas tiek noņemts no ievades plūsmas un tiek faktiski ignorēts).

Piesaistot rakstzīmes vienā pēdiņās, tiek saglabāts katra rakstzīmju burtiskā vērtība pēdiņās. Vienu citātu var nenotikt starp atsevišķām kotācijām, pat ja pirms tam ir backslash.

Piesaistot rakstzīmes ar divkāršiem pēdiņām, tiek saglabāta visu kotējumu rakstzīmju burtiskā vērtība, izņemot $ , ` un \ . Simboli $ un ` saglabā savu īpašo nozīmi pēdiņās. Atpakaļcelša zīme saglabā savu īpašo nozīmi tikai tad, ja tam seko viena no šādām rakstzīmēm: $ , ` , ' , \ vai . Dubultā citātu var citēt divkāršās pēdiņas, iepriekš to atkārtoti slīdot.

Specifiskajiem parametriem * un @ ir īpaša nozīme, izmantojot divkāršās pēdiņas (skatiet tālāk PARAMETRI ).

Formas vārdi $ string ir īpaši apstrādāti. Vārds tiek izvērsts uz virkni , aizstājot ar atpakaļejošu slīpsvītru, aizstāj ANSI C standartu. Atpakaļslēpju aizvēršanas sekvences, ja tādas ir, tiek dekodētas šādi:

\ a

brīdinājums (zvans)

\ b

backspace

\ e

evakuācijas raksturs

\ f

veidlapas barība

\ n

jauna līnija

\ r

rakstatgriezes

\ t

horizontālā cilne

\ v

vertikālā cilne

\\

aizmugures slīpsvītra

\ '

viens cits

\ nnn

astoņu bitu raksturs, kura vērtība ir astotais lielums nnn (viens līdz trīs cipari)

\ x HH

astoņu bitu raksturs, kura vērtība ir heksadecimāla vērtība HH (viens vai divi sešpadsmit cipari)

\ c x

kontrolskaitlis x raksturs

Paplašinātais rezultāts ir viens kotēts, it kā dolāra zīme nebūtu klāt.

Divkāršotu citātu virkne, kuru papildina dolāra zīme ( $ ), izraisīs virknes pārveidošanu atbilstoši pašreizējai valodai. Ja pašreizējā atrašanās vieta ir C vai POSIX , dolāra zīme tiek ignorēta. Ja virkne tiek tulkota un nomainīta, nomaiņa tiek dubultklikšķināta.

PARAMETRI

Parametrs ir subjekts, kas saglabā vērtības. Tas var būt nosaukums , numurs vai viena no speciālajām rakstzīmēm, kas uzskaitītas zemāk sadaļā Īpašie parametri . Par čaulas mērķiem mainīgais ir parametrs, kas apzīmēts ar nosaukumu . Mainim ir vērtība un nulle vai vairāk atribūtu . Atribūti tiek piešķirti, izmantojot komandu declare builtin (skatiet SHELL BUILTIN COMMANDS zemāk norādīto deklarāciju ).

Parametrs ir iestatīts, ja tai ir piešķirta vērtība. Null virkne ir derīga vērtība. Kad ir iestatīts mainīgais, to var nomainīt tikai, izmantojot neizmantoto builtin komandu (skatiet SHELL BUILTIN COMMANDS zemāk).

Mainīgo var piešķirt ar veidlapas paziņojumu

nosaukums = [ vērtība ]

Ja vērtību neuzrāda, mainīgajam ir piešķirta nulles virkne. Visas vērtības tiek pakļautas tildes paplašināšanai, parametru un mainīgo paplašināšanai, komandas aizstāšanai, aritmētiskajai paplašināšanai un citātu noņemšanai (sk. Tālāk SPĒKĀ ). Ja mainīgajam ir noteikts integer atribūts, tad vērtība tiek pakļauta aritmētiskai paplašināšanai, pat ja neizmanto $ ((...)) paplašinājumu (skatiet sadaļu Aritmētikas paplašināšana zemāk). Vārda sadalīšana netiek veikta, izņemot "$ @", kā paskaidrots zemāk sadaļā Īpašie parametri . Pathname paplašināšana netiek veikta. Piešķīrumu paziņojumi var arī būt par argumentiem deklarēšanai , salikšanai , eksportēšanai , tikai lasīšanai un vietējām iekšējām komandām.

Pozīcijas parametri

Pozicionālais parametrs ir parametrs, ko apzīmē ar vienu vai vairākiem cipariem, izņemot vienīgo ciparu 0. Pozicionālie parametri tiek piešķirti no korpusa argumentiem, kad tie tiek izsaukti, un tos var atkārtoti piešķirt, izmantojot iestatīto builtin komandu. Pozīcijas parametrus nedrīkst piešķirt ar piešķiršanas paziņojumiem. Pozīcijas parametri tiek īslaicīgi nomainīti, kad tiek izpildīta apvalka funkcija (skatiet tālāk FUNKCIJAS ).

Ja tiek paplašināts pozīcijas parametrs, kas sastāv no vairāk nekā viena cipara, tas ir jāiekļauj lencēs (sk. Turpmāk " SPĒKU" ).

Īpašie parametri

Korpuss īpaši apstrādā vairākus parametrus. Par šiem parametriem var atsaukties tikai; uz tiem nav atļauts.

*

Paplašina pozīcijas parametrus, sākot ar vienu. Ja paplašināšanās notiek divkāršās pēdiņas veidā, tā tiek paplašināta līdz vienam vārdam ar katra parametra vērtību, kas atdalīts ar IFS īpašā mainīgā pirmo rakstzīmi. Tas nozīmē, ka " $ * " ir ekvivalents " $ 1 c $ 2 c ... ", kur c ir IFS mainīgā lieluma pirmā rakstzīme. Ja IFS nav iestatīts, parametri tiek atdalīti ar atstarpēm. Ja IFS ir nulle, parametri tiek apvienoti bez iejaukšanās separatoriem.

@

Paplašina pozīcijas parametrus, sākot ar vienu. Ja paplašināšana notiek dubultā pēdiņās, katrs parametrs tiek izvērsts atsevišķā vārdam. Tas nozīmē, ka " $ @ " ir līdzvērtīgs " $ 1 ", " $ 2 " ... Ja atrašanās vietas parametri nav pieejami, " $ @ " un $ @ paplašina uz neko (ti, tie tiek noņemti).

#

Palielina pozīcijas parametru skaitu pēc decimāldaļas.

?

Paplašina jaunākā izpildītā jaunā cauruļvada statusu.

-

Paplašina uz pašreizējo opciju karogiem, kā norādīts piesakoties, ar iestatīto builtin komandu vai tiem, ko nosaka pati korpuss (piemēram, -i opcija).

$

Paplašina korpusa procesa ID. In () apakšshēma, tā paplašina pašreizējā apvalka procesa ID, nevis apakšslēgumu.

!

Paplašina pēdējās izpildītās fona (asinhronās) komandas procesa ID.

0

Paplašina uz čaulas vai čaulas skripta nosaukumu. Tas tiek iestatīts kā čaulas inicializācija. Ja bash tiek izsaukts ar komandu failu, $ 0 ir iestatīts uz šī faila nosaukumu. Ja bash sākas ar -c opciju, tad 0 $ ir iestatīts uz pirmo argumentu pēc izpildāmās virknes, ja tāda ir. Pretējā gadījumā tiek iestatīts faila nosaukums, kas tiek izmantots, lai izsauktu bash , kā norādīts ar argumentu nulle.

_

Veicot pārlūka uzbrukumu, iestatiet absolūto faila nosaukumu apvalkam vai čaulas skriptam, kas tiek izpildīts kā nodots argumentu sarakstā. Pēc tam paplašina līdz pēdējam argumentam iepriekšējā komandā pēc paplašināšanas. Arī iestatīt uz pilnu nosaukumu katrai komandai, kas izpildīta un novietota vidē, kas tiek eksportēta uz šo komandu. Pārbaudot pastu, šim parametram ir pašlaik pārbaudītā pasta faila nosaukums.

Shell mainīgie

Apvalks nosaka šos mainīgos:

BASH

Paplašina uz pilnu faila nosaukumu, kas izmantots, lai izsauktu šo bash gadījumu .

BASH_VERSINFO

Vienkārši lasāms masīva mainīgais, kura dalībnieki tur informācijas versiju par šo bash gadījumu . Array daļām piešķirtie lielumi ir šādi:

BASH_VERSINFO [ 0]

Galvenais versijas numurs ( izlaidums ).

BASH_VERSINFO [ 1]

Neobligātās versijas numurs ( versija ).

BASH_VERSINFO [ 2]

Plākstera līmenis.

BASH_VERSINFO [ 3]

Izveidota versija.

BASH_VERSINFO [ 4]

Izlaides statuss (piemēram, beta1 ).

BASH_VERSINFO [ 5]

MACHTYPE vērtība.

BASH_VERSION

Paplašina uz virkni, kurā aprakstīta šī bash gadījuma versija.

COMP_CWORD

COMP_LINE

Pašreizējā komandrinda. Šis mainīgais ir pieejams tikai čaumalas funkcijās un ārējās komandās, ko izsauc programmējamas pabeigšanas iekārtas (skatiet Programmējamo pabeigšanu zemāk).

COMP_POINT

COMP_WORDS

Array mainīgais (skat. Masīvus zemāk), kas sastāv no atsevišķiem vārdiem pašreizējā komandrindā. Šis mainīgais ir pieejams tikai čaulas funkcijās, ko izsauc programmējamās pabeigšanas iekārtas (skatiet Programmējamo pabeigšanu zemāk).

DIRSTACK

Masīva mainīgais (skatīt zemāk esošos masīvus ), kurā ir pašreizējais direktorijas kaudzes saturs. Direktoriji tiek parādīti kaudzē, tādā secībā, kādā tie tiek parādīti, izmantojot ieslēgtos darbus. Piešķirot šim masīva mainīgajam dalībniekus, var izmantot, lai modificētu jau esošos katalogus, bet direktoriju pievienošanai un noņemšanai ir jāizmanto pushd un popd builtins. Piešķiršana šim mainīgajam nemaina pašreizējo direktoriju. Ja DIRSTACK nav iestatīts, tas zaudē īpašās īpašības, pat ja tas vēlāk tiek atiestatīts.

EUID

Paplašina pašreizējā lietotāja efektīvo lietotāja ID, kas tiek inicializēts, kad sākas čaulas. Šis mainīgais ir tikai lasāms.

FUNCNAME

Jebkuras pašlaik izpildāmās čaulas funkcijas nosaukums. Šis mainīgais ir tikai tad, kad izpilda apvalka funkciju. FUNCNAME piešķirtie uzdevumi nav spēkā un atgriežas kļūdu statusā. Ja funkcija FUNCNAME ir atiestatīta, tā zaudē īpašās īpašības, pat ja tā vēlāk tiek atiestatīta.

GRUPAS

Masīva mainīgais, kurā ir to grupu saraksts, no kurām pašreizējais lietotājs ir dalībnieks. Piešķīrumi grupām neietekmē un atgriež kļūdas statusu. Ja GROUPS nav iestatīts, tā zaudē īpašās īpašības, pat ja tā vēlāk tiek atiestatīta.

HISTCMD

Pašreizējās komandas vēstures numurs vai indekss vēstures sarakstā. Ja HISTCMD nav iestatīts, tā zaudē īpašās īpašības, pat ja tā vēlāk tiek atiestatīta.

HOSTNAME

Automātiski iestatīt pašreizējā resursdatora nosaukumu.

HOSTTYPE

Automātiski iestatīt uz virkni, kas unikāli apraksta mašīnas veidu, uz kuru bash tiek izpildīts. Noklusējums ir atkarīgs no sistēmas.

LINENO

Katru reizi, kad šis parametrs ir atsauce, apvalks aizvieto decimālo skaitli, kas norāda pašreizējo secīgās līnijas numuru (sākot ar 1) skriptā vai funkcijā. Ja nav skripta vai funkcijas, tad netiek garantēta, ka vērtība ir nozīmīga. Ja LINENO nav iestatīts, tas zaudē īpašās īpašības, pat ja tas vēlāk tiek atiestatīts.

MACHTYPE

Automātiski iestatīt uz virkni, kas pilnībā apraksta sistēmas tipu, no kura izpilda bash , standarta GNU procesora kompānijas sistēmas formātā. Noklusējums ir atkarīgs no sistēmas.

OLDPWD

Iepriekšējais darbvirsraksts, ko nosaka cd komanda.

OPTARG

Pēdējās opcijas argumenta vērtība, ko apstrādā getopts builtin komanda (skatiet SHELL BUILTIN COMMANDS zemāk).

OPTIND

Nākamā argumenta indekss, kas jāpārstrādā ar getopts builtin komandu (skatiet SHELL BUILTIN COMMANDS zemāk).

OSTYPE

Automātiski iestatīt uz virkni, kurā aprakstīta operētājsistēma, kurā izpilda bash . Noklusējums ir atkarīgs no sistēmas.

PIEZĪME

Masīva mainīgais (skatīt zemāk esošos masīvus ), kurā ir saraksts ar izejošās statusa vērtībām no procesiem visjaunākajā jaunizveidotajā priekšplānojuma cauruļvadā (kas var saturēt tikai vienu komandu).

PPID

Kārtas mātes procesa ID. Šis mainīgais ir tikai lasāms.

PWD

Pašreizējā darba direktorija, ko nosaka cd komanda.

RANDOM

Katru reizi, kad atsauce uz šo parametru, tiek ģenerēts nejaušs vesels skaitlis starp 0 un 32767. Nejaušu skaitļu secība var tikt inicializēta, piešķirot vērtību RANDOM . Ja RANDOM nav iestatīts, tas zaudē īpašās īpašības, pat ja tas vēlāk tiek atiestatīts.

ATBILDES

Iestatiet uz ievades rindu, kuru nolasa nolasījuma builtin komandā, ja nav iesniegti argumenti.

SECONDS

Katru reizi, kad atsauce uz šo parametru, tiek atgriezts sekundes, sākot ar aploksnes piesaisti. Ja vērtība tiek piešķirta SECONDS , nākamajās atsaucēs atgrieztā vērtība ir sekundes , skaitot no piešķiršanas plus piešķirtā vērtība. Ja SECONDS nav iestatīts, tas zaudē īpašās īpašības, pat ja tas vēlāk tiek atiestatīts.

SHELLOPTS

Atdalīts kolonnu saraksts ar iespējotām apvalka opcijām. Katrs vārds sarakstā ir derīgs arguments -o opcijai iestatītajai builtin komandai (skatiet SHELL BUILTIN COMMANDS zemāk). Opcijas SHELLOPTS tiek rādītas kā set -o . Ja šis mainīgais ir vidē, kad bash sāk darboties, katrs apvalka variants sarakstā tiks aktivizēts pirms visu starta failu lasīšanas. Šis mainīgais ir tikai lasāms.

SHLVL

Katru reizi tiek palielināts par katru reizi, kad tiek sākts bash piemērs.

UID

Paplašina pašreizējā lietotāja ID, kas tiek inicializēts, kad tiek aktivizēts čaulas. Šis mainīgais ir tikai lasāms.

Apvalks izmanto šādus mainīgos lielumus. Atsevišķos gadījumos bash piešķir mainīgo vērtību noklusējuma vērtību; šie gadījumi ir minēti turpmāk.

BASH_ENV

Ja šis parametrs ir iestatīts, kad bash izpilda šifrēšanas skriptu, tā vērtība tiek interpretēta kā faila nosaukums, kurā ir komandas, lai inicializētu čaulu, kā tas ir ~ / .bashrc . BASH_ENV vērtība tiek pakļauta parametru paplašināšanai, komandu aizstāšanai un aritmētiskajai paplašināšanai, pirms to interpretē kā faila nosaukumu. PATH netiek izmantots, lai meklētu iegūto faila nosaukumu.

CDPATH

Cd komandas meklēšanas ceļš. Tas ir kastrētu atdalītu direktoriju saraksts, kurā apvalks meklē galamērķa direktorijus, kas norādīti cd komandā. Parauga vērtība ir ".: ~: / Usr".

COLUMNS

Izmanto komandu select builtin, lai noteiktu gala platumu, drukājot atlases sarakstus. Automātiski iestatīt pēc SIGWINCH saņemšanas.

COMPREKTI

Masīva mainīgais, no kura bash nolasa iespējamos papildinājumus, kas iegūti, izmantojot apvalka funkciju, kuru ierosina programmējamā pabeigšanas iespēja (skatiet tālāk Programmējamo pabeigšanu ).

FCEDIT

Fc builtin komandas noklusējuma redaktors.

FIGNORE

Atdalīts ar kolu atdalīts sufiksu saraksts, kuru ignorēt, izpildot faila nosaukuma pabeigšanu (skatiet tālāk READLINE ). Faila nosaukums, kura piedēklis atbilst vienam no FIGNORE ierakstiem, ir izslēgts no saskaņoto failu nosaukumu saraksta. Parauga vērtība ir ".o: ~".

GLOBIGNORE

Kolektoru atdalītu sarakstu paraugi, kas nosaka failu nosaukumu kopu, kuru ignorē pathname paplašināšana. Ja filename, kas atbilst paņēmienu paplašināšanas modelim, atbilst arī vienam no GLOBIGNORE modeļiem, tas tiek noņemts no atbilstības saraksta.

HISTCONTROL

Ja iestatījāt vērtību ignorespace , rindas, kas sākas ar atstarpi, netiek ievadītas vēstures sarakstā. Ja iestatīts ignorētās vērtības vērtība, rindiņas, kas atbilst pēdējai vēstures līnijai, netiek ievadītas. Vērtība ignoreboth apvieno abas iespējas. Ja iestatījums nav iestatīts vai ja iestatīts kāds cits lielums nekā iepriekš minētie, visas parsētāja lasītās rindiņas tiek saglabātas vēstures sarakstā, ievērojot HISTIGNORE vērtību. Šī mainīgā funkcija ir aizstāta ar HISTIGNORE . Otrās un nākamās kombinētās komandas līnijas netiek pārbaudītas un tiek pievienotas vēsturē neatkarīgi no HISTCONTROL vērtības.

HISTFILE

Faila nosaukums, kurā tiek saglabāta komandu vēsture (skatiet sadaļu VĒSTURE ). Noklusējuma vērtība ir ~ / .bash_history . Ja iestatījums ir atiestatīts, komandu vēsture netiek saglabāta, kad izbeidzas interaktīvā čaula.

HISTFILESIZE

Maksimālais rindiņu skaits vēsturiskajā failā. Kad šim mainīgajam ir piešķirta vērtība, vēstures fails tiek saīsināts, ja nepieciešams, lai tas saturētu ne vairāk kā šo rindu skaitu. Noklusējuma vērtība ir 500. Vēstures fails ir arī saīsināts līdz šim izmēram pēc tā ierakstīšanas, kad izbeidzas interaktīvā čaula.

HISTIGNORE

Kolu atdalīts saraksts ar modeļiem, ko izmanto, lai izlemtu, kuras komandrindas jāglabā vēstures sarakstā. Katrs modelis ir noenkurots līnijas sākumā un tam jāatbilst pilnai līnijai (nav pievienota netieša ` * '). Katrs modelis tiek pārbaudīts pret līniju pēc tam, kad tiek piemērotas HISTCONTROL norādītās pārbaudes. Papildus parastajiem apvalka paraugu saskaņošanas rakstzīmēm, ` & 'atbilst iepriekšējās vēstures rindai. ` & 'var izbēgt, izmantojot slīpsvītru; Pirms spēles mēģinājuma tiek noņemta slīpsvītra zīme. Otrās un nākamās kombinētās komandas līnijas netiek pārbaudītas un tiek pievienotas vēsturē neatkarīgi no HISTIGNORE vērtības.

HISIZĒJIET

Komandu vēsture (skatiet sadaļu VĒSTURE zemāk). Noklusējuma vērtība ir 500.

MĀJAS

Pašreizējā lietotāja mājas direktorija; noklusējuma arguments cd builtin komandai. Šī mainīgā vērtība tiek izmantota arī, veicot tildes paplašināšanos.

HOSTFILE

Satur faila nosaukumu tādā pašā formātā kā / etc / hosts, kas jālasa, kad čaumalam ir jāpabeidz saimniekdatora nosaukums. Iespējamo nosaukumu pabeigšanas sarakstu var mainīt, kamēr darbojas čaula; nākamajā reizē tiek mēģināts veikt resursdatora nosaukuma pabeigšanu pēc vērtības maiņas, bash pievieno jaunā faila saturu esošajam sarakstam. Ja ir iestatīts HOSTFILE , bet tam nav vērtības, bash mēģina lasīt / etc / hosts, lai iegūtu sarakstu ar iespējamo resursdatora nosaukumu pabeigšanu. Kad HOSTFILE ir atiestatīts, saimniekdatoru nosaukumu saraksts tiek notīrīts.

IFS

Iekšējā lauka atdalītājs, kas tiek izmantots vārda sadalīšanai pēc paplašināšanas, un lai sadalītu līnijas vārdos ar lasīšanas builtin komandu. Noklusējuma vērtība ir `` ''.

IGNOREEOF

Kontrolē interaktīvās čaulas darbību pēc EOF rakstzīmes saņemšanas kā vienīgo ievadi. Ja tas ir iestatīts, vērtība ir secīgu EOF rakstzīmju skaits, kas pirms ievadīšanas sākuma ir jāieraksta kā pirmās rakstzīmes ievades līnijā. Ja mainīgais pastāv, bet tam nav ciparu vērtības vai tam nav vērtības, noklusējuma vērtība ir 10. Ja tā neeksistē, EOF nozīmē kolonnas ievades beigas.

INPUTRC

Filtra nosaukums lasīšanas starta startēšanas failam, ignorējot noklusējuma vērtību ~ / .inputrc (skatiet READLINE zemāk).

LANG

Izmanto, lai noteiktu vietnes kategoriju visām kategorijām, kas nav īpaši atlasītas ar mainīgo, sākot ar LC_ .

LC_ALL

Šis mainīgais ignorē LANG vērtību un jebkuru citu LC_ vērtību, norādot vietnes kategoriju.

LC_COLLATE

Šis mainīgais nosaka salīdzināšanas secību, kas tiek izmantota, šķiroot pathname paplašināšanas rezultātus, un nosaka diapazona izteiksmju, ekvivalences klašu un secību salīdzināšanu pathname paplašināšanā un modeļu saskaņošanā.

LC_CTYPE

Šis mainīgais nosaka rakstzīmju interpretāciju un rakstzīmju klašu darbību pathnuma paplašināšanā un modeļu saskaņošanā.

LC_MESSAGES

Šis mainīgais nosaka lokalizāciju, ko izmanto, lai tulkotu divkāršu kotēto virknes, pirms kurām ir $ .

LC_NUMERIC

Šis mainīgais nosaka vietējās kategorijas, ko izmanto numuru formatēšanai.

LINES

Izmanto komandu select builtin, lai noteiktu kolonnu garumu atlases sarakstu drukāšanai. Automātiski iestatīt pēc SIGWINCH saņemšanas.

PASŪTĪJUMS

Ja šis parametrs ir iestatīts uz faila nosaukumu un mainīgais MAILPATH nav iestatīts, bash informē lietotāju par pasta ierašanos norādītajā failā.

MAILCHECK

Norāda, cik bieži (sekundēs) pārbauda pastus. Noklusējums ir 60 sekundes. Kad ir pienācis laiks pārbaudīt pastu, apvalks to dara pirms galvenās uzvednes parādīšanas. Ja šis mainīgais nav iestatīts vai iestatīts uz vērtību, kas nav skaitlis, kas ir lielāks vai vienāds ar nulli, apvalks atspējo pasta pārbaudes.

PASŪTĪTĀJS

Kolu atdalīts saraksts ar failu nosaukumiem, kas jāpārbauda pa pastu. Ziņojumu, kas tiks iespiests brīdī, kad pasts tiks nosūtīts konkrētā failā, var norādīt, atdalot faila nosaukumu no ziņojuma ar `? '. Lietojot ziņojuma tekstā, $ _ paplašina pašreizējā pasta faila nosaukumu. Piemērs:

MAILPATH = '/ var / mail / bfox?' 'Jums ir pasts': ~ / shell-mail? '' $ _ Ir pasts! ''

Bash piegādā šī mainīgā noklusējuma vērtību, bet tajā izmantoto lietotāja e-pasta failu atrašanās vieta ir atkarīga no sistēmas (piemēram, / var / mail / $ USER ).

OPTERR

Ja iestatīts uz vērtību 1, bash parāda kļūdas ziņojumus, ko ģenerē getopts builtin komanda (skatiet SHELL BUILTIN COMMANDS zemāk). OPTERR tiek inicializēts uz 1 reizi, kad tiek aktivizēts čaumalas vai tiek izpildīts čaulas skripts.

PATH

Komandu meklēšanas ceļš. Tas ir kolu atdalīts katalogu saraksts, kurā korpuss meklē komandas (sk. COMMAND EXECUTION zemāk). Noklusējuma ceļš ir atkarīgs no sistēmas, un to nosaka administrators, kurš instalē bash . Kopējā vērtība ir `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT

Ja šis mainīgais ir vidē, kad sākas bash , apvalks iestājas POSIX režīmā pirms starta failu lasīšanas, it kā būtu sniegta opcija -posix izsaukuma iespēja. Ja tas tiek iestatīts, kamēr darbojas čaula, bash ļauj POSIX režīmu , it kā būtu izpildīts komandu komplekts -o posix .

PROMPT_COMMAND

Ja tas ir iestatīts, vērtība tiek izpildīta kā komanda pirms katras primārās uzvednes izsniegšanas.

PS1

Šī parametra vērtība ir paplašināta (skat. PROPTIONS zemāk) un tiek izmantota kā primārā tūlītēja virkne. Noklusētā vērtība ir `` \ s- \ v \ $ ''.

PS2

Šī parametra vērtība ir paplašināta kā ar PS1 un tiek izmantota kā sekundārā ātrā virkne. Noklusējums ir `` > ''.

PS3

Šī parametra vērtība tiek izmantota kā komandu atlases uzvedne (skatiet SHELL GRAMMAR iepriekš).

PS4

Šī parametra vērtība ir paplašināta tāpat kā ar PS1, un vērtība tiek izdrukāta pirms katras komandas bash parādīšanas izpildes izsekošanas laikā. Pirmais PS4 raksturs tiek atkārtots vairākas reizes, ja tas ir vajadzīgs, lai norādītu vairākus novirzes līmeņus. Noklusējums ir `` + ''.

TIMEFORMAT

Šī parametra vērtība tiek izmantota kā formātu virkne, kurā ir norādīts, kā jāparāda laika informācija, kas norādīta cauruļvadiem, kuru priekšplānā ir laika ierobežots vārds. Simbols % ievieš izlaišanas secību, kas tiek paplašināta līdz laika vērtībai vai citai informācijai. Escape secības un to nozīme ir šādas; pieturzīmes apzīmē papildu daļas.

%%

Burtiski % .

% [ p ] [l] R

Pagājušais laiks sekundēs.

% [ p ] [l] U

Lietotāja režīmā iztērēto CPU sekundu skaits.

% [ p ] [l] S

CPU sekundes, kas iztērētas sistēmas režīmā.

% P

Procentuālais CPU, aprēķināts kā (% U +% S) /% R.

Neobligāts p ir cipars, kas precizē precizitāti , daļskaitļu ciparu skaits pēc komata. Vērtība 0 izraisa nevis decimāldaļu, ne daļu. Var norādīt ne vairāk kā trīs vietas pēc komata; vērtības p ir lielākas par 3 tiek mainītas uz 3. Ja p nav norādīts, tiek izmantota 3. vērtība.

Izvēles l norāda MM m SS formāta garāku formātu, ieskaitot minūtes. FF s. P vērtība nosaka, vai frakcija ir vai nav iekļauta.

Ja šis mainīgais nav iestatīts, bash darbojas tā, it kā tam būtu vērtība $ '\ nreal \ t% 3lR \ noder \ t% 3lU \ nsys% 3lS' . Ja vērtība ir nulle, netiek parādīta laika informācija. Kad tiek parādīta formāta virkne, tiek pievienota pēdējā jauna līnija.

TMOUT

Ja iestatījums ir lielāks par nulli, TMOUT tiek uzskatīts par noklusējuma periodu lasīšanai . Izvēles komanda beidzas, ja ievade neienāk pēc TMOUT sekundēm, kad ievadne tiek saņemta no termināļa. Interaktīvā apvalkā vērtība tiek interpretēta kā sekundes skaits, lai gaidītu ievadi pēc galvenās uzvednes izdošanas. Bash beidzas pēc tam, kad gaida šo sekundes skaitu, ja ieeja nenāk.

auto_resume

Šis mainīgais kontrolē, kā čaula mijiedarbojas ar lietotāju un darba kontroli. Ja ir iestatīts šis mainīgais lielums, viena vārda vienkāršās komandas bez novirzīšanas tiek uzskatītas par kandidātiem, lai atjaunotu esošu pārtraukto darbu. Nav pieļaujama neviennozīmība; ja ir vairāk nekā viens darbs, kas sākas ar ievadīto virkni, tiek atlasīts visjaunākais darbs. Šajā kontekstā pārtrauktā darba nosaukums ir komandrinda, ko izmanto, lai palaistu to. Ja iestatīta precīza vērtība, precīzi jānorāda piegādāto virkne apstādinātā darba nosaukums; ja iestatīts apakšvirknei , piegādātajai virknei jāatbilst apstādītā darba nosaukuma apakšvirknei. Apakšvirknes vērtība nodrošina funkcionalitāti, kas ir līdzīga %? darba identifikators (sk. DARBA KONTROLE zemāk). Ja ir iestatīta jebkura cita vērtība, piegādātajai virknei jābūt pievienotā apzīmējuma prefiksam; tas nodrošina funkcionalitāti, kas ir analoga % darba identifikatoram.

histčāri

Divas vai trīs rakstzīmes, kas kontrolē vēstures paplašināšanos un tokenizāciju (skatiet sadaļu VĒSTURES PĀRSKATS zemāk). Pirmais raksturs ir vēsturiskās ekspansijas raksturs, raksturs, kas norāda uz vēsturiskās ekspansijas sākumu, parasti ` ! " Otrais raksturs ir ātras aizstāšanas raksturs, ko izmanto kā stenogrāfi, lai atkārtoti palaistu iepriekšējo ievadīto komandu, aizvietojot komandu ar vienu virkni citam. Noklusējums ir ` ^ '. Izvēles trešais raksturs ir rakstzīme, kas norāda, ka pārējā rindiņa ir komentārs, ja tā tiek atrasta kā vārda pirmais raksturs, parasti ` # '. Vēstures komentāra raksturs izraisa vēstures aizstāšanu, kas tiek izlaista pārējiem rindiņā esošajiem vārdiem. Tas nenozīmē, ka čaulas parsētājs uzskata komentāru par pārējo līniju.

Masīvi

Bash nodrošina vienfailu masīvu mainīgos. Jebkurš mainīgais var tikt izmantots kā masīvs; deklarēt builtin būs skaidri deklarēt masīvu. Masīva lielumam nav maksimāli pieļaujamā robeža, ne arī kāda prasība, ka dalībnieki tiek indeksēti vai piešķirti vienlaikus. Masīvi tiek indeksēti, izmantojot veselus skaitļus un ir balstīti uz nulli.

Masīvs tiek izveidots automātiski, ja kādam mainīgajam ir piešķirts sintakses nosaukums [ subscript ] = vērtība . Apakšraksts tiek uzskatīts par aritmētisku izteiksmi, kuras vērtība ir jāpārvērtē ar skaitli, kas ir lielāks vai vienāds ar nulli. Lai skaidri deklarētu masīvu, izmantojiet declare -a nosaukumu (skatiet SHELL BUILTIN COMMANDS zemāk). deklarēt - arī tiek pieņemts nosaukums [ indekss ]; apakšraksts tiek ignorēts. Atribūtus var norādīt masīvu mainīgajam, izmantojot deklarētājus un tikai rakstāmus vienumus. Katrs atribūts attiecas uz visiem masīva dalībniekiem.

Masīvi tiek piešķirti, lai izmantotu veidlapas nosaukuma = ( vērtība 1 ... n vērtība ) , kur katrai vērtībai ir forma [ subscript ] = string . Jālieto tikai virkne . Ja tiek sniegti obligātie iekavās un apakšindeksi, šis indekss tiek piešķirts; pretējā gadījumā piešķirtā elementa indekss ir pēdējais indekss, ko piešķir ar paziņojumu plus vienu. Indeksācija sākas ar nulli. Šo sintaksi pieņem arī deklarētājs . Individuālus masīvu elementus var piešķirt, izmantojot nosaukumu [ subscript ] = vērtības sintakse, kas tika ieviesta iepriekš.

Noklusēto butiltinu izmanto, lai iznīcinātu masīvus. nenozīmīgs nosaukums [ apakšraksts ] iznīcina masīva elementu indeksa apakšsarakstā . nenozīmētais nosaukums , kur nosaukums ir masīvs, vai noraidīts nosaukums [ apakšscript ], kur apakšslauks ir * vai @ , noņem visu masīvu.

Deklarē, vietējie un tikai lasītāji, katrs pieņem -a iespēju noteikt masīvu. Lasītam iebūvētajam ir pieņemta -a iespēja piešķirt sarakstu ar vārdiem, kas tiek lasīti no standarta ieejas masīvā. Iestatiet un deklarējiet builtins displeja masīvu vērtības tādā veidā, kas ļauj tos atkārtoti izmantot kā uzdevumus.

PAPLAŠINĀŠANA

Paplašināšana tiek veikta pēc komandrindas, kad tā ir sadalīta vārdos. Ir septiņi paplašināšanas veidi: bremžu paplašināšana , tildes izplešanās , parametru un mainīgo paplašināšana , komandu aizvietošana , aritmētiskā paplašināšana , vārdu sadalīšana un pathname paplašināšana .

Izplešanās secība ir: bremžu paplašināšana, tildes paplašināšanās, parametru, mainīgo un aritmētisko paplašināšanās un komandu aizstāšana (paveikts kreisajā labajā stadijā), vārdu sadalīšana un pathname paplašināšana.

Par sistēmām, kas to var atbalstīt, ir pieejams papildu paplašinājums: procesa aizstāšana .

Brace paplašināšana

Brace paplašināšana ir mehānisms, ar kuru var radīt patvaļīgas virknes. Šis mehānisms ir līdzīgs pathname paplašinājumam , bet izveidotajiem failu nosaukumiem nav jābūt. Raksti, kas jāpapildina ar fiksāciju, ir neobligātas preambulas forma, kam seko virkne ar komatiem atdalītu virkņu starp pieturēm, kam seko izvēles postscript . Preambula ir piestiprināta katrai virknei, kas ietverta breketēs, un pēc tam pievienotais postscript tiek pievienots katrai iegūtajai virknei, paplašinot no kreisās puses uz labo.

Braces ekspansijas var būt ligzdotas. Katras izvērstās virknes rezultāti netiek sakārtoti; No kreisās uz labo kārtu tiek saglabāts. Piemēram, { d, c, b } e izpaužas kā "ade ace abe".

Brace paplašināšana tiek veikta pirms jebkādiem citiem paplašinājumiem, un visas rakstzīmes, kas raksturīgas citām izplešanām, tiek saglabātas rezultātos. Tas ir stingri tekstuāls. Bash nepiemēro sintaktiskas interpretācijas paplašināšanās kontekstā vai tekstu starp bikštēm.

Šo konstrukciju parasti lieto kā stenogrāfi, ja kopējais stīgu prefikss, kas ģenerējams, ir garāks nekā iepriekš minētajā piemērā:

mkdir / usr / local / src / bash / (vecs, jauns, dist, bugs)

vai

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

Brace paplašināšanās rada nelielu nesaderību ar sh vēsturiskajām versijām. sh neattiecas uz atvēršanas vai aizvēršanas lencēm īpaši, ja tie parādās kā vārda daļa, un saglabā tos izvadē. Bash noņem atslāpumus no vārdiem, kas izriet no lencēm. Piemēram, vārds, kas ievadīts shfails {1,2} , izteiksmē ir identisks. Tas pats vārds tiek izvadīts kā file1 file2 pēc paplašināšanas ar bash . Ja ir nepieciešama stingra saderība ar sh , sāciet bash ar opciju + B vai atspējojiet breketes paplašināšanu, izmantojot opciju + B iestatītajai komandai (skatiet SHELL BUILTIN COMMANDS zemāk).

Tildes paplašināšana

Ja vārds sākas ar nekotēto tildes rakstzīmi ( ~ ~ ), visas rakstzīmes, kas ir pirms pirmās neklasificētās slash (vai visas rakstzīmes, ja nav neklasificētas slash), tiek uzskatītas par tildes prefiksu . Ja neviena no tildes prefiksa rakstzīmēm nav citēta, rakstzīmes tildes prefiksā pēc tildes tiek uzskatītas par iespējamo pieteikšanās vārdu . Ja šis lietotājvārds ir nulles virkne, tilde tiek aizstāta ar apvalka parametra HOME vērtību . Ja HOME nav iestatīts, tā vietā tiek aizstāts tā lietotāja mājas direktorijs, kurš izpilda čaulu. Pretējā gadījumā tildes prefiksu aizstāj ar mājas direktoriju, kas saistīts ar norādīto pieteikšanās vārdu.

Ja tildes prefikss ir ~ ~ +, tad korpusa mainīgā PWD vērtība aizstāj tildes prefiksu. Ja tildes prefikss ir `~ - ', tad korpusa mainīgā OLDPWD vērtība , ja tā ir iestatīta, tiek aizstāta. Ja tildes prefiksa tildes sekojošās rakstzīmes sastāv no N numura, pēc izvēles ar prefiksu ar "+" vai "-", tildes prefikss tiek aizstāts ar atbilstošo elementu no kataloga kaudzes, jo tas būtu redzams ar iekšējo tīrumu, kas tiek izmantots kā arguments par tildes prefiksu. Ja tildes prefiksa tildes zīmes sastāv no numura bez vadītāja "+" vai "-", "+" tiek pieņemts.

Ja lietotājvārds ir nederīgs vai tildes paplašināšanās neizdodas, šis vārds nemainās.

Katru mainīgā piešķiršanu pārbauda nekotēto tildes-prefiksu tūlīt pēc : vai = . Šajos gadījumos tiek veikta arī tildes izplešanās. Līdz ar to var izmantot failu nosaukumus ar tildēm PATH , MAILPATH un CDPATH uzdevumos , un korpuss piešķir paplašināto vērtību.

Parametru paplašināšana

` $ 'Raksturs ievieš parametru paplašināšanu, komandu aizstāšanu vai aritmētisko paplašināšanu. Parametra nosaukums vai simbols, kas jāpaplašina, var būt ietverts breketēs, kas ir neobligāti, bet kalpo, lai aizsargātu mainīgo, kas tiek paplašināts no rakstzīmēm, kuras tūlīt seko tam, ko var interpretēt kā daļu no vārda.

Ja tiek izmantoti bikšturi, tad atbilstošā beigu bāze ir pirmā ` } ', ko neizbēgojusi atpakaļkrituša slanka vai citētā virkne, nevis iegulta aritmētiskā izvēršana, komandu aizstāšana vai paramter paplašināšana.

Parametra vērtība ir aizstāta. Bikšturi ir vajadzīgi, ja parametrs ir pozicionālais parametrs ar vairāk nekā vienu ciparu vai ja parametram seko raksturs, kas nav jāinterpretē kā daļa no tā nosaukuma.

Katrā no turpmāk minētajiem gadījumiem vārds ir pakļauts tildes paplašināšanai, parametru paplašināšanai, komandu aizstāšanai un aritmētiskajai paplašināšanai. Neizpildot apakšvirknes paplašināšanu, bash testi parametram, kas nav iestatīts vai null; izlaižot kolu, tiek testēts tikai tāds parametrs, kurš nav iestatīts.

Izmantojiet noklusējuma vērtības . Ja parametrs nav iestatīts vai nulle, vārda paplašināšana tiek aizstāta. Pretējā gadījumā parametra vērtība tiek aizstāta.

Nosakiet noklusējuma vērtības . Ja parametrs nav iestatīts vai nulle, vārda paplašināšana tiek piešķirta parametram . Pēc tam parametra vērtība tiek aizstāta. Pozicionālie parametri un īpašie parametri šādā veidā nedrīkst tikt piešķirti.

Displeja kļūda, ja ir nulle vai atiestatīta . Ja parametrs ir nulle vai atiestatīts, vārda paplašinājums (vai attiecīgā ziņa, ja nav vārda ) tiek rakstīts uz standarta kļūdu un čaula, ja tā nav interaktīva, iziet. Pretējā gadījumā parametra vērtība tiek aizstāta.

Izmantojiet alternatīvo vērtību . Ja parametrs ir nulle vai atiestatīts, nekas netiek aizstāts, pretējā gadījumā vārda paplašināšana tiek aizstāta.

Izvērš to mainīgo nosaukumu nosaukumus, kuru nosaukumi sākas ar prefiksu , un tos atdala IFS īpašā mainīgā pirmā rakstzīme.

Parametra vērtības garums ar rakstzīmēm tiek aizstāts. Ja parametrs ir * vai @ , aizstātā vērtība ir pozīcijas parametru skaits. Ja parametram ir masīva nosaukums, kuru apzīmē ar * vai @ , tad aizstātā vērtība ir masīva elementu skaits.

Vārds tiek izvērsts, lai izveidotu modeli tāpat kā pathname paplašināšanā. Ja modelis atbilst parametra vērtības sākumam, paplašināšanas rezultāts ir parametra izvērsta vērtība ar īsāko atbilstības modeli (`` # '' gadījums) vai garāko atbilstošo paraugu (`` ## ' "gadījums" svītrots. Ja parametrs ir @ vai * , pēc katra pozīcijas parametra tiek izmantota raksta noņemšanas darbība, un paplašinājums ir iegūtais saraksts. Ja parametrs ir masīva mainīgais ar @ vai * apzīmējumu , modelēšanas noņemšanas darbība tiek izmantota katram masīva dalībniekam pēc kārtas, un paplašināšana ir iegūtais saraksts.

Vārds tiek izvērsts, lai izveidotu modeli tāpat kā pathname paplašināšanā. Ja modelis atbilst parametra paplašinātās vērtības aizmugurējai daļai, paplašināšanas rezultāts ir parametra izvērsta vērtība ar īsāko atbilstības modeli (`` % '' gadījums) vai visgarākais atbilstības modelis (`` % % '' gadījums) svītrots. Ja parametrs ir @ vai * , pēc katra pozīcijas parametra tiek izmantota raksta noņemšanas darbība, un paplašinājums ir iegūtais saraksts. Ja parametrs ir masīva mainīgais ar @ vai * apzīmējumu , modelēšanas noņemšanas darbība tiek izmantota katram masīva dalībniekam pēc kārtas, un paplašināšana ir iegūtais saraksts.

Modelis tiek paplašināts, lai izveidotu modeli tāpat kā pathname paplašināšanā. Parametrs ir paplašināts, un modeļa garāko spēli pret tā vērtību aizstāj ar virkni . Pirmajā formā tiek aizstāta tikai pirmā spēle. Otrā forma izraisa visu modeļu spēļu aizstāšanu ar virkni . Ja modelis sākas ar # , tam ir jāatbilst parametra paplašinātās vērtības sākumam. Ja modelis sākas ar % , tam jāatbilst parametra paplašinātās vērtības beigām. Ja virkne ir nulle, parauga sērkociņi tiek izdzēsti un / sekojošais modelis var tikt izlaists. Ja parametrs ir @ vai * , aizvietošanas darbība tiek kārtota katram pozīcijas parametram, un paplašināšana ir iegūtais saraksts. Ja parametrs ir masīva mainīgais, kas ir apzīmēts ar @ vai * , pēc katras dalībnieka masīvu tiek aizstāta operācija, un paplašināšana ir iegūtais saraksts.

Command Substitution

Komandu aizstāšana ļauj komandas izejai aizstāt komandas nosaukumu. Ir divas formas:

$ ( komanda )

vai

` komanda`

Bash veic paplašināšanu, izpildot komandu un aizstājot komandu aizstāšanu ar komandas standarta izvadi, ar visiem dzēšamajiem jaunajiem starplaikiem. Iegultie jaunās līnijas netiek izdzēstas, bet vārda sadalīšanas laikā tās var noņemt. Komandu aizvietošanu $ (kaķu fails ) var aizstāt ar ekvivalentu, bet ātrāku $ (< file ).

Kad tiek izmantota vecās formas backquote aizvietošanas forma, aizmugures slīpsvītrai saglabājas tā burtiskā nozīmē, izņemot gadījumus, kad seko $ , ` , vai \ . Pirmais backquote, pirms kura nav atpakaļgaitas zonas, izbeidz komandu aizstāšanu. Izmantojot $ ( komandas ) formu, visas rakstzīmes starp iekavām veido komandu; neviens netiek īpaši apstrādāts.

Komandu aizvietojumi var būt ligzdoti. Izmantojot atpakaļkodēto veidlapu, iemest ligzdas, izvairieties no iekšējām abām kvadrātietām ar gruntsrāmām.

Ja aizvietošana parādās divkāršās pēdiņas, rezultātos netiek veikta vārdu sadalīšana un pathname paplašināšana.

Aritmētiskā paplašināšana

Aritmētiskā ekspansija ļauj novērtēt aritmētisko izteiksmi un rezultāta aizstāšanu. Aritmētiskās paplašināšanas formāts ir:

$ (( izteiksme ))

Izteiksme tiek pielīdzināta divkāršām pēdiņām, bet dubultā citātu iekšpusē iekavās netiek īpaši apstrādāts. Visi izteiksmes žetoni tiek pakļauti parametru paplašināšanai, virknes paplašināšanai, komandu aizstāšanai un citātu noņemšanai. Aritmētiskās aizstāšanas var būt ligzdotas.

Novērtēšana tiek veikta saskaņā ar noteikumiem, kas uzskaitīti turpmāk ARĪMĒTISKĀ NOVĒRTĒJUMĀ . Ja izteiksme ir nederīga, bash izdrukā ziņu, kas norāda uz neveiksmi, un netiek veikta aizvietošana.

Procesa aizstāšana

Procesu aizstāšana tiek atbalstīta sistēmās, kurās tiek atbalstītas nosauktas caurules ( FIFO ) vai atvērtā faila nosaukumu / dev / fd metode. Tas notiek kā <( saraksts ) vai > ( saraksts ) . Procesu saraksts tiek palaists ar ievadi vai izvadi, kas savienots ar FIFO vai kādu failu / dev / fd . Šī faila nosaukums tiek izlaists kā arguments pašreizējai komandai kā izvēršanas rezultāts. Ja tiek izmantota veidlapa > ( saraksts ) , faila rakstīšana nodrošinās saraksta ievadi. Ja tiek izmantota <( list ) forma, failam nodot kā argumentu jālasa, lai iegūtu saraksta rezultātu .

Ja tas ir pieejams, procesa aizstāšana tiek veikta vienlaicīgi ar parametru un mainīgo paplašināšanu, komandu aizstāšanu un aritmētisko paplašināšanu.

Vārda sadalīšana

Korpuss skenē parametru paplašināšanas, komandu aizstāšanas un aritmētiskās izplešanās rezultātus, kas netika iegūti divkāršās pēdiņās vārdu sadalīšanai .

Korpuss katru IFS raksturu uzskata par norobežotāju, un pārējo izvērumu rezultāti tiek sadalīti vārdos ar šīm rakstzīmēm. Ja IFS nav iestatīts vai tā vērtība ir tieši , tad noklusējuma vērtība, tad jebkura IFS simbolu secība kalpo, lai ierobežotu vārdus. Ja IFS ir vērtība, kas nav noklusējums, tad vārda sākumā un beigās ignorē atstarpes un cilnes atstarpes simbolu secības, kamēr atstarpes atstarpe ir IFS vērtībā ( IFS atstarpes raksturs). Jebkurš IFS raksturs, kas nav IFS atstarpe, kopā ar visām blakus esošajām IFS atstarpes rakstzīmēm norobežo lauku. IFS atstarpes simbolu secība tiek uzskatīta par norobežotāju. Ja IFS vērtība ir nulle, vārdu sadalīšana nav notikusi.

Skaidri null argumenti ( "" vai "" ) tiek saglabāti. Tiek noņemti neklasificēti netieši nulles argumenti, kas rodas, paplašinot parametrus, kuriem nav nevienas vērtības. Ja parametrs bez vērtības tiek paplašināts, izmantojot divkāršās kotācijas, rezultāts ir nulles arguments un tiek saglabāts.

Ievērojiet, ka, ja paplašināšanās nenotiek, netiek veikta sadalīšana.

Pathname paplašināšana

Pēc vārda sadalīšanas, ja vien nav iestatīta -f opcija, bash skenē katru vārdu rakstzīmēm * ,? , un [ . Ja parādās kāda no šīm rakstzīmēm, tad vārds tiek uzskatīts par paraugu un tiek aizstāts ar alfabētiski sakārtotu failu nosaukumu sarakstu, kas atbilst modelim. Ja netiek atrasti atbilstošie failu nosaukumi un apvalka opcija nullglob ir atspējota, vārds paliek nemainīgs. Ja ir iestatīta nullglob opcija un nav atrasta neviena atbilstība, vārds tiek noņemts. Ja ir iespējota apvalka opcija nocaseglob , atbilstība tiek veikta, neņemot vērā alfabēta rakstzīmju gadījumu. Ja modelis tiek izmantots pavedienu paplašināšanai, rakstzīme ``. '' Nosaukuma sākumā vai uzreiz pēc slīpsvītras ir skaidri jāsaskaņo, ja nav iestatīta apvalka opcija dotglob . Saskaņojot vietnes nosaukumu, slīpsvītra rakstzīme vienmēr ir jāatlasa skaidri. Citos gadījumos ``. '' Raksturs netiek īpaši apstrādāts. Lai aprakstītu nocaseglob , nullglob un dotglob čaulas opcijas, skatiet SHELL BUILTIN COMMANDS zemāk esošo veikala aprakstu.

GLOBIGNORE korpusa mainīgo var izmantot, lai ierobežotu failu nosaukumu kopumu, kas atbilst modelim . Ja ir iestatīts GLOBIGNORE, no atbilstības saraksta tiek noņemts katrs atbilstošais faila nosaukums, kas atbilst arī vienam no GLOBIGNORE paraugiem. Failu nosaukumi ``. '' Un `` .. '' vienmēr tiek ignorēti pat tad, ja ir iestatīts GLOBIGNORE . Tomēr, nosakot GLOBIGNORE , tiek iespējota dotglob apvalka opcija, tāpēc visi citi failu nosaukumi, kas sākas ar ``. '', Sakritīs . Lai iegūtu veco uzvedību, ignorējot failu nosaukumus, kas sākas ar ``. '' , Izveidojiet ``. * '' Vienu no GLOBIGNORE modeļiem. Parametrs dotglob ir atspējots, ja GLOBIGNORE ir atiestatīts.

Atbilstības zīme

Jebkurš raksturs, kas parādās modelī, izņemot īpašos rakstzīmju rakstus, kas aprakstīti turpmāk, atbilst pats. NUL raksturs var nenotikt modelī. Speciālas rakstu zīmes jāiekļauj, ja tās ir jāsaskaņo burtiski.

Speciāla rakstu zīmēm ir šādas nozīmes:

*

Atbilst jebkurai virknei, ieskaitot nulles virkni.

?

Atbilst jebkuram vienam rakstzīmei.

[...]

Atbilst jebkurai no pievienotajām rakstzīmēm. Burtu pāri, kas atdalītas ar defisi, apzīmē diapazona izteiksmi ; jebkura rakstzīme, kas sakrīt starp šīm divām rakstzīmēm, ieskaitot, izmantojot pašreizējās valodas kodēšanas secību un rakstzīmju kopu, tiek saskaņota. Ja pirmais raksturs pēc [ is ! vai ^, tad visi simboli, kas nav slēgti, ir saskaņoti. Parametru sortimenta secību diapazona izteiksmē nosaka pašreizējā lokalizācija un LC_COLLATE korpusa mainīgā vērtība, ja tā ir iestatīta. A - var tikt saskaņoti, iekļaujot to kā pirmo vai pēdējo rakstzīmi komplektā. A ] var būt saskaņots, iekļaujot to kā pirmo rakstzīmi komplektā.

[ Un ] rakstzīmju grupās var norādīt, izmantojot sintaksi [: class :] , kur klase ir viena no šādām klasēm, kas definētas POSIX.2 standartā:

alnum alpha ascii tukšs cntrl ciparu diagramma zemāks print punct space augšējais vārds xdigit
Rakstzīmju klase atbilst jebkuram rakstam, kas pieder pie šīs klases. Vārdu rakstzīmju klase atbilst burtiem, cipariem un rakstzīmei _.

[ Un ] ekvivalences klase var tikt norādīta, izmantojot sintaksi [= c =] , kas atbilst visiem simboliem ar tādu pašu salidojuma svaru (kā definēts pašreizējā lokalizācijā) kā rakstzīmi c .

Sadaļā [ un ] sintakse [. simbols .] atbilst atbilstības simbola simbolam .

Ja extglob apvalka opcija ir iespējota, izmantojot shopt builtin, tiek atpazīti vairāki paplašinātā modeļa atbilstības operatori. Turpmākajā aprakstā paraugu saraksts ir viens vai vairāki modeļi, kurus atdala ar | . Kompozītu paraugi var tikt veidoti, izmantojot vienu vai vairākus no šādiem apakšshēmiem:

? ( paraugu saraksts )

Saskaņo nulli vai vienu parādīto modeļu parādīšanos

* ( paraugu saraksts )

Saskaņo nulles vai vairāk norādīto paraugu parādīšanās

+ ( paraugu saraksts )

Atbilst vienam vai vairākiem dotajiem modeļiem

@ ( paraugu saraksts )

Precīzi atbilst vienam no norādītajiem modeļiem

! ( paraugu saraksts )

Atbilst jebkuram, izņemot vienu no norādītajiem modeļiem

Citāts pārcelšana

Pēc iepriekšējām paplašinājumiem tiek noņemti visi nekotētie rakstzīmju \ , ' un ' gadījumi, kas netika iegūti kādā no iepriekš minētajām paplašinājumiem.

PĀRSŪTĪŠANA

Pirms tiek izpildīta komanda, tā ievadi un izvadi var novirzīt, izmantojot īpašu apzīmējumu, ko interpretē čaula. Pāreju var izmantot arī, lai atvērtu un aizvērtu pašreizējās čaulas izpildes vides failus. Šādi novirzīšanas operatori var priekšā vai parādīties jebkurā vietā ar vienkāršu komandu vai var sekot komandai . Rediģēšanas virzieni tiek apstrādāti tā, kā tie parādās, no kreisās uz labo.

Turpmāk aprakstos, ja faila deskriptora numurs tiek izlaists un pirmais pārorientēšanas operatora raksturs ir < , novirzīšana attiecas uz standarta ievadi (faila deskriptors 0). Ja novirzīšanas operatora pirmais raksturs ir > , novirzīšana attiecas uz standarta izvadi (faila deskriptors 1).

Vārds, kas seko novirzīšanas operatoram šādos aprakstos, ja vien nav norādīts citādi, tiek pakļauts sprieguma paplašināšanai, tildes paplašināšanai, parametru paplašināšanai, komandu aizstāšanai, aritmētiskajai paplašināšanai, citātu noņemšanai, pathname paplašināšanai un vārdu sadalīšanai. Ja tas paplašina vairāk nekā vienu vārdu, bash ziņo par kļūdu.

Ņemiet vērā, ka novirzīšanas secība ir nozīmīga. Piemēram, komanda

ls > dirlist 2 > & 1

vada standarta izvadi un standarta kļūdu failā dirlist , kamēr komanda

ls 2 > & 1 > dirlist

vērš tikai standarta izvadi uz failu dirlist , jo standarta kļūda tika dublēta kā standarta izlaide pirms standarta izvades novirzīšana uz dirlist .

Bash manipulē vairākus failu nosaukumus, ja tie tiek izmantoti redirection, kā aprakstīts šajā tabulā:

/ dev / fd / fd

Ja fd ir derīgs vesels skaitlis, faila deskriptors fd tiek dublēts.

/ dev / stdin

Failu deskriptors 0 tiek dublēts.

/ dev / stdout

Failu deskriptors 1 tiek dublēts.

/ dev / stderr

Failu deskriptors 2 tiek dublēts.

/ dev / tcp / host / port

Ja resursdators ir derīgs resursdatora nosaukums vai interneta adrese, un ports ir vesels porta numurs vai pakalpojuma nosaukums, bash mēģina atvērt TCP savienojumu ar attiecīgo ligzdu.

/ dev / udp / host / port

Ja resursdators ir derīgs resursdatora nosaukums vai interneta adrese, un ports ir vesels porta numurs vai pakalpojuma nosaukums, bash mēģina atvērt UDP savienojumu ar attiecīgo ligzdu.

Neizdevās atvērt vai izveidot failu, tāpēc novirzīšana neizdodas.

Iedalījuma novirzīšana

Ievades novirze liek failam, kura vārdu iegūst no vārda paplašināšanas, kas tiek atvērts lasīšanai faila deskriptorā n , vai standarta ievade (faila deskriptors 0), ja n nav norādīts.

Vispārējais ievades novirzīšanas formāts ir:

[ n ] < vārds

Novirzot produkciju

Izvades novirzīšana izraisa failu, kura vārds izriet no vārda paplašināšanas, lai to varētu rakstīt faila deskriptorā n vai standarta izteiksmē (faila deskriptors 1), ja n nav norādīts. Ja fails nepastāv, tas tiek izveidots; ja tas pastāv, tas ir saīsināts līdz nulles lielumam.

Vispārējais produkcijas novirzīšanas formāts ir:

[ n ] > vārds

Ja novirzīšanas operators ir > , un noclobber opcija iestatītajam iebūvētam ir ieslēgta, novirzīšana neizdosies, ja failam, kura vārds izriet no vārda paplašināšanas, pastāv un ir parasts fails. Ja novirzīšanas operators ir > | , vai novirzīšanas operators ir > un noclobber opcija iestatītajai builtin komandai nav iespējota, novirzīšana tiek mēģināta pat tad, ja ir izveidots fails ar vārdu pēc vārda .

Pievienojot novirzīto izvadi

Šādi novirzot produkciju, failam, kura vārdu iegūst no vārda paplašināšanas, tiek atvērta pievienošana faila deskriptoram n vai standarta izvadei (faila deskriptors 1), ja n nav norādīts. Ja fails nepastāv, tas tiek izveidots.

Vispārējais produkcijas pievienošanas veids ir:

[ n ] >> vārds

Standarta izejas un standarta kļūdas novirzīšana

Bash ļauj gan standarta izvadi (faila deskriptoru 1), gan standarta kļūdu izvadi (faila deskriptors 2), kas tiek novirzīti uz failu, kura nosaukums ir vārda paplašināšana ar šo konstrukciju.

Standarta izvades un standarta kļūdas novirzīšanai ir divi formāti:

&> vārds

un

> & vārds

No abām veidlapām vispirms tiek dota priekšroka. Tas ir semantisks ekvivalents

> vārds 2 > & 1

Šeit Dokumenti

Šāda veida novirzīšana liek čaulam izlasīt ievadi no pašreizējā avota, līdz tiek rādīta līnija, kurā ir tikai vārds (bez aizmugures). Visas līnijas, kas lasītas līdz šim punktam, pēc tam tiek izmantotas kā komandas standarta ievadne.

Dokumentu formāts šeit ir:

<< [ - ] vārds šeit - dokumentu nošķīrējs

Neviens parametru paplašinājums, komandu aizstāšana, aritmētiskā paplašināšana vai pathname paplašināšana netiek veikta ar vārdu . Ja ir norādītas kādas rakstzīmes vārdiņā, atdalītājs ir cēloņsaukšanas rezultāts ar vārdu , un šajā dokumentā esošās līnijas nav paplašinātas. Ja vārds ir nekotēts, visas šeit dokumenta līnijas tiek pakļautas parametru paplašināšanai, komandu aizstāšanai un aritmētiskajai paplašināšanai. Pēdējā gadījumā rakstzīmju virkne \ tiek ignorēta un \, lai citātu rakstzīmes \ , $ un ` .

Ja novirzīšanas operators ir << - , tad visas vadošās cilnes rakstzīmes tiek noņemtas no ievades līnijām un līnijas, kurā ir norobežotājs . Tas ļauj šajos dokumentos, izmantojot čaulas skriptus, dabiskā veidā atdalīties.

Šeit stīgas

Šādu dokumentu variants, formāts:

<<< vārds

Šis vārds tiek paplašināts un tiek piegādāts standarta ievades komandai.

Failu deskriptoru kopēšana

Pārorientēšanas operators

[ n ] <& vārds

tiek izmantots, lai dublikātu ievades failu deskriptorus. Ja vārds paplašina uz vienu vai vairākiem cipariem, faila deskriptors, ko apzīmē ar n, tiek veidots kā šī faila deskriptora kopija. Ja cipari vārdam nenorāda failu deskriptoru, kas ir atvērts ievadīšanai, rodas novirzīšanas kļūda. Ja vārds vērtē līdz - , faila deskriptors n ir aizvērts. Ja n nav norādīts, tiek izmantota standarta ievade (faila deskriptors 0).

Operators

[ n ] > un vārds

tiek izmantots līdzīgi izvades failu deskriptoru dublikātam. Ja n nav norādīts, tiek izmantota standarta izvade (faila deskriptors 1). Ja cipari vārdam nenorāda faila deskriptoru, kas atvērts izvadīšanai, rodas novirzīšanas kļūda. Kā īpašs gadījums, ja n tiek izlaists un vārds nav paplašināts līdz vienam vai vairākiem cipariem, standarta izvade un standarta kļūda tiek novirzīta, kā aprakstīts iepriekš.

Pārvietojamo failu deskriptori

Pārorientēšanas operators

[ n ] <& cipars -

pārvieto faila deskriptora ciparu uz faila deskriptoru n vai standarta ievadi (faila deskriptors 0), ja n nav norādīts. cipars ir aizvērts pēc dublēšanas līdz n .

Tāpat arī novirzīšanas operators

[ n ] > un cipars -

pārvieto faila deskriptora ciparu uz faila deskriptoru n vai standarta izvadi (faila deskriptors 1), ja n nav norādīts.

Atvēršanas failu deskriptori lasīšanai un rakstīšanai

Pārorientēšanas operators

[ n ] <> vārds

izraisa failu, kura vārds ir vārda paplašinājums, kurš tiek atvērts lasīšanai un rakstīšanai faila deskriptorā n vai faila deskriptorā 0, ja n nav norādīts. Ja fails neeksistē, tas tiek izveidots.

ALIASES

Pseidonīmi ļauj vārdam aizvietot virkni, kad to lieto kā vienkāršu komandu pirmo vārdu. Korpuss saglabā aliases, kuras var iestatīt un atcelt ar pseidonīmu un unalias iekšējās komandas (sk. Tālāk SHELL BUILTIN COMMANDS ). Katras komandas pirmais vārds, ja nav kotēts, ir atzīmēts, lai redzētu, vai tam ir aizstājvārds. Ja tā, tad šis vārds tiek aizstāts ar aizstājvārdu tekstu. Pseidonīma nosaukums un teksta aizstāšana var saturēt jebkuru derīgu apvalka ievadi, ieskaitot iepriekš norādītos meta zīmi , izņemot to, ka pseidonīmu nosaukumā nedrīkst būt = . Aizstājēja teksta pirmais vārds tiek pārbaudīts uz pseidonīmēm, bet vārds, kas ir identisks paplašinātai aliasei, netiek paplašināts otro reizi. Tas nozīmē, ka, piemēram, var būt aizstājvārds ls - l , piemēram, un bash nemēģina rekursīvi paplašināt aizstāšanas tekstu. Ja pseidonīmu pēdējā rakstzīme ir tukša , tad arī nākamais komandvārds, kas seko pseidonīmam, ir atzīmēts arī par alias paplašinājumu.

Pseidonīmi tiek izveidoti un uzskaitīti ar pseidonīmu komandu un tiek noņemti ar komandu unalias .

Aizstājējā tekstā nav argumentu izmantošanas mehānisma. Ja ir vajadzīgi argumenti, jāizmanto apvalka funkcija (skatiet tālāk FUNKCIJAS ).

Pseidonīmi netiek paplašināti, ja apvalks nav interaktīvs, ja vien shell_ options nav paplašināts_aliases, izmantojot shopt (skatiet SHELL BUILTIN COMMANDS aprakstu veikalā zemāk).

Noteikumi par pseidonīmu definēšanu un lietošanu ir nedaudz mulsinoši. Bash vienmēr nolasa vismaz vienu pilnīgu ievades rindu, pirms izpildāt kādu no šīs komandas komandām. Pseidonīmi tiek paplašināti, kad komanda tiek lasīta, nevis tad, kad tā tiek izpildīta. Tāpēc pseidonīmu definīcija, kas tiek rādīta tajā pašā rindiņā kā cita komanda, nestājas spēkā līdz nākamās ievades rindas lasīšanai. Jaunās pseidonīmi neietekmē komandas, kas seko šīs līnijas aizstājvārdu definīcijai. Šī uzvedība ir arī jautājums, kad funkcijas tiek izpildītas. Pseidonīmi tiek paplašināti, kad tiek lasīta funkciju definīcija, nevis tad, kad funkcija tiek izpildīta, jo funkciju definīcija pati par sevi ir salikta komanda. Tā rezultātā funkcijā definētās pseidonīmi nav pieejami tikai pēc šīs funkcijas izpildes. Lai būtu drošībā, vienmēr sakārtojiet aizstājvārdu definīcijas atsevišķā rindā un nelietojiet aizstājvārdu kombinētās komandās.

Gandrīz visiem mērķiem pseidonīmi aizstāj ar čaulas funkcijām.

FUNKCIJAS

Apvalka funkcija, kas definēta kā aprakstīts iepriekš SHELL GRAMMAR aprakstā , glabā vairākas komandas vēlākai izpildei. Ja apvalka funkcijas nosaukums tiek izmantots kā vienkāršs komandas nosaukums, tiek izpildīts komandu saraksts, kas saistīts ar šīs funkcijas nosaukumu. Funkcijas tiek izpildītas pašreizējā apvalka kontekstā; To interpretēšanai netiks izveidots jauns process (pretēji tam, ka tiek izpildīts čaulas skripts). Kad tiek izpildīta funkcija, tās izpildes laikā parametri kļūst par pozīcijas parametriem. Īpašais parametrs Nr. Tiek atjaunināts, lai atspoguļotu izmaiņas. Pozīcijas parametrs 0 nav mainīts. Mainīgais FUNCNAME ir iestatīts uz funkcijas nosaukumu, kamēr funkcija tiek izpildīta. Visi pārējie apvalka izpildes vides aspekti ir vienādi starp funkciju un tā zvanītāju, izņemot to, ka DEBUG slazds (skatīt apakšējo SHELL BUILTIN COMMANDS aprakstu par slazdiem, kas atrodas zem SHELL BUILTIN COMMANDS ) netiek mantots, ja vien funkcijai nav piešķirts izsekošanas atribūts ( skatiet deklarācijas aprakstu, kas atrodas tālāk).

Funkcijai vietējie mainīgie var tikt deklarēti ar lokālo builtin komandu. Parasti mainīgie lielumi un to vērtības tiek sadalītas starp funkciju un tā zvanītāju.

Ja builtinas komandas atgriešana tiek izpildīta kādā funkcijā, funkcija tiek pabeigta un izpilde atsāk ar nākamo komandu pēc funkcijas izsaukuma. Kad funkcija ir pabeigta, pozīcijas parametru un īpašā parametra # vērtības tiek atjaunotas vērtībām, kuras tām bija pirms funkcijas izpildes.

Funkciju nosaukumi un definīcijas var tikt uzskaitītas ar -f opciju deklarēt vai iespiest iekšējās komandas. F- iespēja deklarēt vai iespiest tikai funkciju nosaukumus. Funkcijas var eksportēt tā, lai apakšslodzes automātiski tos definētu ar -f opciju eksporta uzņēmumam .

Funkcijas var būt rekursīvas. Nekādu ierobežojumu nepiemēro rekursīvo zvanu skaitam.

ARITĒMISKĀ NOVĒRTĒŠANA

Apvalks ļauj noteikt aritmētiskās izteiksmes noteiktos apstākļos (skatīt komandu let builtin un aritmētiskā paplašināšana ). Vērtēšana tiek veikta veselos skaitļos ar nemainīgu platumu bez pārmeklēšanas, lai gan sadalījums pa 0 ir noķerts un atzīmēts kā kļūda. Operatori un to prioritāte un asociatīvā darbība ir tāda pati kā C valodā. Turpmākais operatoru saraksts ir sagrupēts vienāda prioritātes operatoru līmenī. Līmeņi tiek uzskaitīti prioritātes samazinājuma secībā.

id ++ id -

mainīgs pēc pieauguma un post-decrement

++ id - id

mainīgs pre-pieaugums un pirms samazināšanās

- +

unārs mīnus un plus

! ~

loģisks un bitu izteiciens

**

eksponenciācija

* /%

reizināšana, sadalīšana, atlikums

+ -

papildus, atņemšana

<< >>

kreisā un labā bitu virzienā

<=> = <>

salīdzinājums

==! =

vienlīdzība un nevienlīdzība

&

bituvirziens un

^

bitu pēc ekskluzīvas VAI

|

bitwise OR

&&

loģiski un

||

loģiski VAI

expr ? expr : expr

nosacīta novērtēšana

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

uzdevums

expr1 , expr2

komats

Shell mainīgie ir atļauti kā operandi; parametra paplašināšana tiek veikta pirms izteiksmes novērtēšanas. Izteiksmes ietvaros apvalka mainīgie var būt arī norādīti pēc nosaukuma, neizmantojot parametru paplašināšanas sintaksi. Mainīgā vērtība tiek vērtēta kā aritmētiska izteiksme, kad tā ir atsauce. Korpusa mainīgam nav nepieciešams ieslēgts integer atribūts, kas jāizmanto izteiksmē.

Konstantes ar vadošo 0 interpretē kā astoņus numurus. Vadošais 0x vai 0X apzīmē heksadecimālo. Pretējā gadījumā skaitļi ir formā [ base # ] n, kur bāze ir decimālskaitlis no 2 līdz 64, kas apzīmē aritmētisko bāzi, un n ir numurs šajā bāzē. Ja bāze # ir izlaista, tiek izmantota bāze 10. Cipari, kas ir lielāki par 9, ir norādīti mazajos burtos, lielajos burtos, @ un _ šajā secībā. Ja bāze ir mazāka vai vienāda ar 36, mazos un lielos burtus var izmantot savstarpēji, lai attēlotu skaitļus starp 10 un 35.

Operatori tiek vērtēti pēc prioritātes. Vispirms tiek apskatītas apakšklases iekavās, un tās var ignorēt prioritātes noteikumus iepriekš.

NOSACĪJUMU IZTEIKUMI

Nosacītas izteiksmes izmanto [[ salikta komanda un testa un [ builtin komandas, lai pārbaudītu failu atribūtus un veiktu virknes un aritmētiskos salīdzinājumus. Izteicieni ir veidoti no sekojošiem unāriem vai bināriem primāriem. Ja jebkuram failu argumentam kādam no primārajiem ir formas / dev / fd / n , tad faila deskriptors n tiek atzīmēts. Ja faila arguments vienam no primārajiem datiem ir viens no / dev / stdin , / dev / stdout vai / dev / stderr , tiek atzīmēts attiecīgi faila deskriptors 0, 1 vai 2.

-fails

Taisnība, ja fails pastāv.

-b failu

Taisnība, ja fails eksistē un ir bloķēts īpašs fails.

-c fails

Taisnība, ja fails eksistē un ir rakstzīmju īpašais fails.

-d fails

Taisnība, ja fails eksistē un ir katalogs.

-e fails

Taisnība, ja fails pastāv.

-f fails

True, ja fails eksistē un ir regulārs fails.

-g fails

True, ja fails eksistē un ir set-group-id.

-h fails

Taisnība, ja fails eksistē un ir simboliska saite.

-k fails

Taisnība, ja fails eksistē un ir iestatīts tā "sticky" bits.

-p fails

Taisnība, ja fails pastāv un ir nosaukta caurule (FIFO).

-r fails

Taisnība, ja fails eksistē un ir lasāms.

-s fails

Taisnība, ja fails eksistē un ir lielāks par nulli.

-t fd

Taisnība, ja faila deskriptors fd ir atvērts un attiecas uz termināli.

-u fails

Taisnība, ja fails eksistē un tā iestatītā lietotāja ID bits ir iestatīts.

-w fails

Taisnība, ja fails eksistē un ir rakstāms.

-x fails

Taisnība, ja fails pastāv un ir izpildāms.

-O failu

True, ja fails eksistē un tas pieder efektīvam lietotāja ID.

-G fails

Taisnība, ja fails pastāv un tas pieder efektīvai grupas ID.

-L fails

Taisnība, ja fails eksistē un ir simboliska saite.

-S fails

Taisnība, ja fails eksistē un ir ligzda.

-N fails

Taisnība, ja fails eksistē un ir modificēts kopš pēdējās lasīšanas.

file1 - nt file2

Taisnība, ja fails1 ir jaunāks (pēc pārveidošanas datuma) nekā file2 vai ja failis1 ir un fail2 nav.

file1 - ot file2

True, ja file1 ir vecāks par file2 , vai ja file2 eksistē un file1 nav.

file1 -ef file2

True, ja file1 un file2 attiecas uz to pašu ierīci un inode numurus.

-optname

Taisnība, ja ieslēgta apvalka opcijas optname . Zemāk redzamajā opcijā -o opcijas apraksta opciju saraksts.

-z string

Taisnība, ja virknes garums ir nulle.

-n virkne

virkne

Taisnība, ja virknes garums nav nulle.

string1 == string2

Taisnība, ja stīgas ir vienādas. = var tikt izmantots vietā ==, lai nodrošinātu stingru POSIX atbilstību.

string1 ! = string2

Taisnība, ja stīgas nav vienādas.

string1 < string2

Taisnība, ja virkne1 leksikogrāfiski sakņojas pirms string2 pašreizējā lokalizācijā.

string1 > string2

Taisnība, ja virkne1 leksikogrāfiski sakrīt pēc string2 pašreizējā lokalizācijā.

arg1 OP arg2

OP ir viens no -eq , -ne , -lt , -le , -gt , vai -ge . Šie aritmētiskie bināri operatori atgriež taisnību, ja arg1 ir vienāds ar, nav vienāds ar, mazāk nekā, mazāk nekā vai vienāds ar, ir attiecīgi lielāks vai lielāks vai vienāds ar arg2 . Arg1 un arg2 var būt pozitīvi vai negatīvi veseli skaitļi.

VIENKĀRŠA KOMANDA PASTIPRINĀŠANA

Kad tiek izpildīta vienkārša komanda, apvalks izpilda šādus paplašinājumus, piešķiršanu un novirzīšanu no kreisās uz labo pusi.

1. Vārdi, kurus parsētājs ir apzīmējis kā mainīgo uzdevumus (tos, kas ir pirms komandas nosaukuma), un novirzīšana tiek saglabāti vēlākai apstrādei.

2. Tiek paplašināti vārdi, kas nav mainīgie uzdevumi vai redirections. Ja pēc izplešanās paliek kāds vārds, pirmais vārds tiek uzskatīts par komandas nosaukumu, bet pārējie vārdi ir argumenti.

3.Redirections tiek veiktas, kā aprakstīts iepriekš REDIRECTION .

4. Teksts pēc = katrā mainīgā piešķīrumā tiek veikta tildes paplašināšana, parametru paplašināšana, komandu aizstāšana, aritmētiskā paplašināšana un citēšanas noņemšana, pirms tiek piešķirta mainīgajam.

Ja nav komandu nosaukuma rezultātu, mainīgo uzdevumi ietekmē pašreizējo apvalka vidi. Pretējā gadījumā mainīgie tiek pievienoti izpildītās komandas vidē un neietekmē pašreizējo apvalka vidi. Ja kāds no uzdevumiem mēģina piešķirt vērtību tikai lasāmam mainīgajam, rodas kļūda, un komanda iziet ar statusu bez nulles.

Ja komanda komandas nosaukums nav rezultāts, tiek veiktas novirzes, bet neietekmē pašreizējo apvalka vidi. Redirection kļūda izraisa komandu iziet ar statusu bez nulles.

Ja pēc paplašināšanas paliek komandas nosaukums, izpilde tiek veikta, kā aprakstīts tālāk. Pretējā gadījumā komanda beidzas. Ja kādā no paplašinājumiem bija komandu aizstāšana, komandas izejas statuss ir pēdējās komandas aizstāšanas pabeigšanas statuss. Ja komandu aizvietošanas nebija, komanda iziet ar nulles statusu.

KOMANDA IZPILDĪBA

Kad komanda ir sadalīta vārdos, ja tas rada vienkāršu komandu un papildu argumentu sarakstu, tiek veiktas šādas darbības.

Ja komandas nosaukums nesatur slīpsvītru, apvalks mēģina to atrast. Ja ar minēto nosaukumu ir apvalka funkcija, šī funkcija tiek aktivizēta, kā aprakstīts iepriekš FUNKCIJĀM . Ja nosaukums nesakrīt ar funkciju, apvalks to meklē slejas bufera sarakstā. Ja ir atrasta atbilstība, tiek izmantota šī builtin.

Ja nosaukums nav ne čaulas funkcija, ne builtins, un tajā nav nekādu slashu, bash meklē katru PATH elementu direktorijā, kurā ir izpildāms fails ar šo nosaukumu. Bash izmanto hash tabulu, lai atcerētos pilnos izpildāmo failu aizvietojumus (skatiet zemāk SHELL BUILTIN COMMANDS ). PATH direktoriju pilnīga meklēšana tiek veikta tikai tad, ja komanda nav atrodama hash tabulā. Ja meklēšana nav veiksmīga, apvalks izdrukā kļūdas ziņojumu un atgriež statusu 127.

Ja meklēšana ir veiksmīga vai ja komandas nosaukums satur vienu vai vairākas kāses, apvalks izpilda nosaukto programmu atsevišķā izpildes vidē. Arguments 0 ir iestatīts uz piešķirto vārdu, un pārējie komandas argumenti ir iestatīti uz norādītajiem argumentiem, ja tādi ir.

Ja šī izpilde neizdodas, jo fails nav izpildāmā formātā, un fails nav direktorija, tiek pieņemts, ka tas ir čaulas skripts - fails, kurā ir čaulas komandas. Lai to izpildītu, izveidojas apakšslānis. Šī apakšslodze tiek atkārtoti inicializēta pati tā, ka efekts ir tāds, it kā uz skārienpalikumu varētu atsaukties jauns korpuss, izņemot to, ka vecāki atceras komandu atrašanās vietas (sk. Zemāk SHIX BUILTIN COMMANDS ).

Ja programma ir fails, kas sākas ar #! , pirmās rindas atlikums norāda programmas tulkotāju. Apvalks izpilda norādīto tulku operētājsistēmās, kuras pašas neizmanto šo izpildāmo formātu. Interpretējamie argumenti sastāv no viena izvēles argumenta pēc tulka nosaukuma programmas pirmajā rindā, kam seko programmas nosaukums, kam seko komandas argumenti, ja tādi ir.

KOMANDA IZPILDES VIDE

Korpusam ir izpildes vide , kurā ietilpst:

* Atveriet failus, kurus mantojis apvalks pēc izsaukuma, kā tas ir mainīts ar novirzēm, kas tiek piegādātas izpildītājam

* pašreizējo darba direktoriju, ko iestatījis cd , pushd vai popd vai ko mantojis apvalks pēc izsaukuma

* faila izveides režīms maska, ko nosaka umask vai mantojis no čaulas vecāka

* Pašreizējie slazdi, ko nosaka lamatas

* apvalka parametri, kurus nosaka mainīgais piešķīrums vai kas ir iestatīti vai mantoti no apvalka vecākiem vidē

* apvalkošanas funkcijas, kas noteiktas izpildes laikā vai mantotas no apvalka vecāka vidē

* Iespējas, kas iespējotas pieaicinājumā (vai nu pēc noklusējuma, vai ar komandrindas argumentiem) vai ar iestatījumu

* iespējas, ko iespējojusi veikals

* aploksnes aizstājvārdi, kas definēti ar pseidonīmu

* dažādi procesa ID, ieskaitot fona darbus, vērtību $ $ un vērtību $ PPID

Ja tiek izpildīta vienkārša komanda, kas nav builtin vai čaula funkcija, tā tiek izsaukta atsevišķā izpildes vidē, kurā ir šādi elementi. Ja vien nav norādīts citādi, vērtības tiek mantotas no apvalka.

* apvalka atvērtos failus, kā arī visas izmaiņas un papildinājumus, kas norādīti, novirzot komandu

* pašreizējā darba direktorija

* faila izveides režīms maska

* čaulas mainīgie, kas atzīmēti eksportam, kopā ar mainīgajiem, kas tiek eksportēti komandai, nodoti vidē

* slazdus, ​​ko nozvejojuši korpuss, tiek atiestatīti uz mantoto vērtību no korpusa vecāka, un slazdi, kurus ignorē apvalks, tiek ignorēti

Komanda, kas tiek izsaukta šajā atsevišķā vidē, nevar ietekmēt čaulas izpildes vidi.

Komandu aizvietošana un asinhronās komandas tiek izsauktas apakšshell vidē, kas ir korpusa vides dublikāts, izņemot to, ka korpusa nozvejotie slazdi tiek atiestatīti uz vērtībām, kuras mītne ir mantojusi no tā vecāka pēc izsaukšanas. Builtin komandas, kuras tiek izsauktas kā cauruļvada daļa, tiek izpildītas arī apakšshēmas vidē. Apakšshēmas vidē veiktās izmaiņas nevar ietekmēt čaulas izpildes vidi.

Ja pēc komandas seko & un darba vadība nav aktīva, noklusējuma standarta ievades komandai ir tukšs fails / dev / null . Pretējā gadījumā komandā, ko izmanto, tiek mantoti izsaucamā čaulas faila deskriptori, kas ir mainīti ar novirzīšanu.