Sh - Linux Command - Unix parancs

NÉV

bash - GNU Bourne-Again SHell

SZINOPSZIS

bash [opciók] [fájl]

LEÍRÁS

A Bash egy sh -kompatibilis parancsnyelv-értelmező, amely végrehajtja a szabványos bemenetről vagy fájlból olvasott parancsokat. A Bash szintén hasznos funkciókat tartalmaz a Korn és C shellekből ( ksh és csh ).

A Bash az IEEE POSIX Shell és Tools specifikáció (IEEE Working Group 1003.2) megfelelõ megvalósítása.

LEHETŐSÉGEK

A beépített parancs leírásában dokumentált egykarakteres shell opciókon kívül a bash az alábbi opciókat értelmezi, amikor meghívják őket:

-c karakterlánc

Ha a -c opció jelen van, akkor a parancsok a stringből olvashatók. Ha a karakterlánc után érvek vannak, akkor azok a pozícióparaméterekhez vannak rendelve, kezdve a $ 0 értékkel .

-én

Ha a -i opció jelen van, a shell interaktív .

-l

A bash művelet úgy működik, mintha bejelentkezési héjként lett volna meghívva (lásd alább a MEGJELENÍTÉS fejezetet ).

-r

Ha a -r opció jelen van, akkor a shell korlátozott lesz (lásd a KORLÁTOZOTT SHELL alább).

-s

Ha a -s opció jelen van, vagy ha az opció feldolgozása után sem maradnak érvek, akkor a parancsok a szabványos bemenetről olvashatók. Ez az opció lehetővé teszi a pozícióparaméterek beállítását interaktív héj meghívásakor.

-D

A $ előtti összes kettős idézett stringet tartalmazó lista a szabványos kimenetre kerül nyomtatásra. Ezek azok a karakterláncok, amelyek nyelvi fordítása alá esnek, ha az aktuális hely nem C vagy POSIX . Ez a -n opciót jelenti; semmilyen parancs nem kerül végrehajtásra.

[- +] O [ shopt_option ]

A shopt_option egyike a beépített shopt által elfogadott shell opcióknak (lásd SHELL BUILTIN COMMANDS alább). Ha a shopt_option létezik, -O megadja az opció értékét; + O szünteti meg. Ha a shopt_option nincs megadva, a shopt által elfogadott shell opciók nevei és értékei a szabványos kimeneten kerülnek kinyomtatásra. Ha a hívás opció + O , a kimenet olyan formátumban jelenik meg, amely újra felhasználható bemenetként.

A - jelzi az opciók végét, és letiltja a további opciókat. Minden argumentumot a fájlnév és az argumentum alapján kezelnek. Egy argumentum - egyenértékű - .

A Bash számos több karakter opciót is értelmez. Ezeknek a beállításoknak a parancssorban kell megjelenniük, mielőtt az egykarakteres opciókat felismerné.

--dump-po-húrok

Az -D egyenértékű, de a kimenet a GNU gettext po (hordozható objektum) fájlformátumban van.

--dump-húrok

Egyenértékű -D .

--Segítség

Használati üzenet megjelenítése a szabványos kimeneten és a sikeres kilépés.

--init fájl fájl

--rcfile fájl

Parancsokat futtathat a fájlból a standard személyi inicializáló fájl helyett ~ / .bashrc, ha a shell interaktív (lásd alább az ALKALMAZÁS c . Részt ).

--Belépés

Az -l-vel egyenértékű.

--noediting

Ne használja a GNU readline könyvtárat parancssorok olvasásához, amikor a héj interaktív.

--noprofile

Ne olvassa el sem az egész rendszerindítási fájl / etc / profil, sem a személyes inicializáló fájlokat ~ / .bash_profile , ~ / .bash_login vagy ~ / .profile . A bash alapértelmezés szerint ezeket a fájlokat akkor olvassa be, ha bejelentkezési héjként hivatkozik (lásd alább az ALKALMAZÁS c . Részt ).

--norc

Ne olvasd és futtasd a személyes inicializáló fájlt ~ / .bashrc, ha a shell interaktív. Ez az opció alapértelmezés szerint be van kapcsolva, ha a shell-t sh-nak hívják.

--posix

Módosítsa a bash viselkedését, ahol az alapértelmezett művelet eltér a POSIX 1003.2 szabványtól, hogy megfeleljen a szabványnak ( posix mód ).

--korlátozott

A héj korlátozva lesz (lásd a KORLÁTOZOTT SHELL alább).

--rpm-előírja

Készítsen olyan fájlok listáját, amelyek szükségesek a shell parancsfájl futtatásához. Ez azt jelenti, hogy "-n", és ugyanolyan korlátozások vonatkoznak, mint a fordítási idő hibaellenőrzés; A Backticks, a [] tesztek és az evals nem értelmezhető, így bizonyos függőségek hiányozhatnak. --verbose egyenértékű -v .

--változat

A szabványos kimenethez tartozó bash -példány verzióinformációinak megjelenítése és a sikeres kilépés.

ARGUMENTS

Ha az argumentumok az opciófeldolgozás után maradnak, és sem a -c sem a -s opciót nem adták meg, akkor az első argumentumot a shell parancsokat tartalmazó fájl neve jelenti. Ha a bash ilyen módon meghívásra kerül, akkor $ 0 van beállítva a fájl nevére, és a pozícióparaméterek a többi argumentumra vannak állítva. A bash olvas és végrehajt parancsokat ebből a fájlból, majd kilép. A Bash kilépési állapota a parancsfájlban végrehajtott utolsó parancs kimeneti állapota. Ha nincs parancs, akkor a kilépési állapot 0. Először megpróbálják megnyitni a fájlt az aktuális könyvtárban, és ha nincs fájl megtalálva, akkor a shell a PATH könyvtárakat keresi a szkripthez.

könyörgés

A bejelentkezési shell az egyik, amelynek az első argumentuma a - , vagy pedig a --login opcióval kezdődött.

Az interaktív héj az opcionális argumentumok nélkül indult, és a -c opció nélkül, melynek szabványos bemenete és kimenete mindkét terminálhoz csatlakozik (amint a (3) által meghatározott), vagy az -i opcióval indult. A PS1 be van állítva, és a $ - tartalmazza i, ha a bash interaktív, lehetővé téve a shell parancsfájl vagy az indító fájl tesztelését.

A következő bekezdések leírják, hogy a bash hogyan hajtja végre az indító fájlokat. Ha a fájlok egyike létezik, de nem olvasható, akkor a bash hibajelentést jelent. A Tildes kiterjesztése a fájlneveken belül a Tilde Expansion alatt a EXPANSION részben található.

Ha a bashet interaktív bejelentkezési héjnak hívják, vagy egy nem-interaktív héjként a --login opcióval, először elolvassa és végrehajtja a / etc / profile fájlból a parancsokat, ha létezik ilyen fájl. A fájl olvasása után a ~ / .bash_profile , ~ / .bash_login és a ~ / .profile kifejezést keresi ebben a sorrendben, és elolvassa és végrehajtja az elsőként létező és olvasható parancsokat. A --noprofil opció akkor használható, ha a héj megakadályozza ezt a viselkedést.

Amikor egy bejelentkezési parancs kilép, a bash elolvassa és végrehajtja a parancsokat a ~ / .bash_logout fájlból , ha létezik.

Amikor egy interaktív shell, amely nem egy bejelentkezési héj indítása, bash olvas és végrehajt parancsokat ~ / .bashrc , ha a fájl létezik. Ezt a --norc opció használata gátolhatja. A --rcfile fájl opció kényszeríti a bash- et, hogy a parancsokat a ~ / .bashrc helyett a parancsokból leolvassa és végrehajthassa.

Ha a bash nem interaktív módon indul el, parancssori parancsfájl futtatására, például a BASH_ENV változót keresi a környezetben, kiterjeszti az értékét, ha ott megjelenik, és a bővített értéket használja egy fájl neveként, hogy leolvashassa és végrehajthassa . A Bash úgy viselkedik, mintha a következő parancsot végrehajtanák:

ha [-n "$ BASH_ENV"]; akkor . "$ BASH_ENV"; fi

de a PATH változó értéke nem használja a fájlnév keresését.

Ha bash- t a sh névvel idéztük elő , megpróbálja utánozni a SH történelmi változatainak indítási viselkedését a lehető legpontosabban, miközben megfelel a POSIX szabványnak is. Ha interaktív bejelentkezési héjként vagy nem-interaktív héjként hívja a --login opciót, először az / etc / profile és ~ / .profile parancsokat próbálja elolvasni és végrehajtani ebben a sorrendben. A --noprofil opció használható ez a viselkedés gátlására. Ha a sh névvel interaktív shell-ként hívják, a bash az ENV változót keresi, kiterjeszti az értékét, ha meg van határozva, és a kiterjesztett értéket használja a fájl nevének olvasásához és végrehajtásához. Mivel a sh-t meghívó shell nem próbál meg olvasni és végrehajtani parancsokat más indító fájlokból, a --rcfile opciónak nincs hatása. A sh névvel meghívott nem interaktív shell nem próbál meg olvasni más indító fájlokat. Ha a sh- t meghívjuk , a bash az üzembe helyezett fájlok olvasása után kerül a posix módba.

Amikor a bash a posix módban indult, mint a --posix parancssori opciónál, a POSIX szabványnak megfelelően indul az indító fájlokhoz. Ebben az üzemmódban az interaktív héjok kibontják az ENV változót, és a parancsok a kiterjesztett értékről a fájlból olvashatók és hajtanak végre. Nincs más indítási fájl olvasva.

A bash megpróbálja meghatározni, hogy mikor fut a távoli shell démon, általában rshd . Ha bash meghatározza, hogy az rshd futtatja, akkor ~ / .bashrc parancsokat olvas és végrehajt, ha a fájl létezik és olvasható. Ezt nem teheti meg, ha sh . A --norc opciót használhatjuk az ilyen viselkedés gátlására, és a --rcfile opció egy másik fájl olvasására kényszerítheti, de az rshd általában nem hívja fel a parancsértelmezőt ezekkel a beállításokkal, vagy engedélyezi őket.

Ha a shellt a valós felhasználó (csoport) azonosítóval kezdjük el, amely nem egyenlő a valódi felhasználó (csoport) azonosítóval, és a -P opció nincs megadva, nincs indítási fájl olvasva, a shell függvények nem öröklődnek a környezetből, a SHELLOPTS változó, ha megjelenik a környezetben, figyelmen kívül hagyja, és a tényleges felhasználói azonosító a valós felhasználói azonosítóra van állítva. Ha a -p- opció hívás közben történik, az indítási magatartás ugyanaz, de a tényleges felhasználói azonosító nem áll vissza.

DEFINÍCIÓK

A jelen dokumentum többi részében a következő fogalommeghatározásokat alkalmazzák.

üres

Szóköz vagy lap.

szó

A shell által egyetlen egységként tekintett karakterkészlet. Más néven is ismeretes.

név

Az alfanumerikus karakterekből és aláhúzásokból álló, alfabetikus karakterből vagy aláhúzásból álló szó. Szintén azonosítónak nevezzük.

metakarakter

Olyan karakter, amely, ha nem jegyzett, elválasztja a szavakat. Az alábbiak egyike:

| &; () <> szóköz

vezérlő

Olyan token , amely ellenőrzési funkciót végez. Ez az alábbi szimbólumok egyike:

|| &&&; ;; () |

FENNTARTOTT SZAVAK

A fenntartott szavak olyan szavak, amelyeknek különleges jelentése van a héjhoz. A következő szavak akkor kerülnek fenntartásra, ha nem jegyzettek, és vagy egy egyszerű parancs első szója (lásd SHELL GRAMMAR alább), vagy egy eset harmadik szava vagy parancs:

! esetet csinálnak elif else esac fi a függvényhez, ha kiválasztja, majd addig amíg {} idő [[]]

SHELL GRAMMAR

Egyszerű parancsok

Egy egyszerű parancs az opcionális változó hozzárendelések sorozata, amit üres szétválasztott szavak és átirányítások követnek, és egy vezérlő kezeli . Az első szó meghatározza a végrehajtható parancsot, és nulladik argumentumként adódik át. A fennmaradó szavak az argumentumként átadva az invokált parancsnak.

Egy egyszerű parancs visszatérési értéke a kilépési státusza, vagy 128+ n, ha a parancsot az n jelzés megszünteti.

csővezetékek

A csővezeték egy vagy több parancs szekvenciája, amelyet a karakter választ el | . A csővezeték formátuma:

[ idő [ -p ]] [! ] parancs [ | parancs2 ...]

A parancs szabványos kimenete a csővezetéken keresztül kapcsolódik a parancs2 standard bemenetéhez. Ezt a kapcsolatot a parancs által megadott átirányítások előtt hajtja végre (lásd az alábbi REDIRECTION fejezetet ).

Ha a fenntartott szó ! megelőzi a csővezetéket, a csővezeték kilépési állapota az utolsó parancs kilépési állapotának logikus NEM. Ellenkező esetben a csővezeték állapota az utolsó parancs kilépési állapota. A shell meghagyja a csővezetéken lévő összes parancsot, mielőtt visszaállítaná az értéket.

Ha az időre fenntartott szó megelőzi a csővezetéket, akkor a végrehajtott fogyasztás és a felhasználó és a rendszer időtartama a csővezeték megszűnésekor jelentkezik. A -p beállítás megváltoztatja a POSIX által meghatározott kimeneti formátumot. A TIMEFORMAT változó egy olyan formátumkészletre állítható be, amely meghatározza az időzítési információk megjelenítésének módját; olvassa el a TIMEFORMAT leírását a Shell változók alább.

Minden csővezeték parancsot külön folyamatként hajtanak végre (pl. Egy alsó szinten).

List

A lista egy vagy több csővezeték sorozata, amelyet az egyik kezelő választ el ; , & , && , vagy || , és adott esetben egy-egy ; , & , vagy .

E listaszervezetek közül a && és || egyenlő előnyt élveznek, majd ezt követik ; és &, amelyek egyenlő előnyt élveznek.

Egy vagy több új sor egy szekvenciája jelenhet meg a listán a pontosvessző helyett a parancsok határolására.

Ha egy parancsot a vezérlő " &" kapcsolja le, akkor a shell végrehajtja a parancsot a háttérben egy parancsmagban. A shell nem várja meg a parancs befejezését, és a visszatérési állapot 0. A ; egymás után kerülnek végrehajtásra; a héj várja, hogy minden egyes parancs befejeződjön. A visszatérési állapot az utolsó végrehajtott parancs kilépési állapota.

A && és || vezérlők jelöli az AND listákat és az OR listákat. Az AND listának van egy űrlapja

command1 && parancs2

parancs2 végrehajtódik, ha és csak akkor, ha a parancs1 visszatér nulla kijárati állapotba.

Az OR-listának van egy űrlapja

command1 || command2

A command2 csak akkor és csak akkor hajtódik végre, ha a parancs 1 nem nulla kioldási állapotot ad vissza. Az AND és az OR listák visszatérési állapota a listában végrehajtott utolsó parancs kilépési állapota.

Összetett parancsok

Egy összetett parancs a következők egyike:

( lista )

a listát egy alsónemben hajtják végre. A parancsok befejeződése után a shell környezetét érintő változó hozzárendelések és beépített parancsok nem maradnak érvényben. A visszatérési állapot a lista kilépési állapota.

{ list ; }

a lista egyszerűen végrehajtásra kerül az aktuális shell környezetben. a listát újsorral vagy pontosvesszővel kell befejezni. Ezt csoportos parancsnak hívják. A visszatérési állapot a lista kilépési állapota. Vegyük észre, hogy a metakarakterekkel ( és ) ellentétben { és } fenntartott szó, és ott kell előfordulnia, amikor a fenntartott szót engedélyezni kell. Mivel ezek nem okoznak szócsést, ezeket el kell választani a listától a fehértől.

(( kifejezés ))

A kifejezést az ARITHMETIC EVALUATION alatt leírt szabályok szerint értékeljük . Ha a kifejezés értéke nem nulla, akkor a visszatérési állapot 0; egyébként a visszatérési állapot 1. Ez pontosan megegyezik a " kifejezés " kifejezéssel .

[[ kifejezés ]]

Visszaadja a 0 vagy 1 állapotot a feltételes kifejezés kifejezésének értékelésétől függően. A kifejezések az alábbiakban leírt példákból állnak: FELTÉTELES KIFEJEZÉSEK . Az [... ] szó felosztása és az elérési út kiterjesztése nem történik meg a [[ és ]] szavak között; tilde kiterjesztés, paraméter és változó terjeszkedés, számtani kiterjesztés, parancshelyettesítés, folyamatcsere, és idézet eltávolítása.

Amikor a == és ! = Operátorokat használjuk, a kezelő jobb oldalán lévő karakterlánc minta, amelyet az alábbiakban a Pattern Matching alatt leírt szabályok szerint illesztünk . A visszatérési érték 0, ha a karakterlánc illeszkedik vagy nem egyezik meg a mintával, illetve 1 egyébként. A minta bármely része idézhető úgy, hogy arra kényszerítse, hogy egy stringként illeszkedjen.

A kifejezések kombinálhatók a következő operátorok használatával, a sorrend csökkenő sorrendjében felsorolva:

( kifejezés )

Visszaadja a kifejezés értékét. Ezt használhatjuk az operátorok normális elsőbbségének felülbírálására.

! kifejezés

Igaz, ha a kifejezés hamis.

kifejezés1 && expression2

Igaz, ha mind az expression1, mind a expression2 igaz.

kifejezés1 || expression2 Igaz, ha bármelyik expression1 vagy expression2 igaz.

A && és || a szolgáltatók nem értékelik a kifejezés2 értéket, ha a kifejezés1 értéke elegendő a teljes feltételes kifejezés visszatérési értékének meghatározásához.

név [ a szóban ]; do listát ; Kész

A következő szavak listája bővül, létrehozva a tételek listáját. A változó neve ennek a listának minden egyes elemére állítva, és a lista minden alkalommal végrehajtásra kerül. Ha a szó be van hagyva, akkor a parancs parancs végrehajtja a listát egyszer minden beállított pozícióparaméter számára (lásd az alábbi PARAMÉTEREKET ). A visszatérési állapot az utolsó végrehajtandó parancs kilépési állapota. Ha az elemek kibővítése üres listában eredményez, akkor nem hajtanak végre parancsokat, és a visszatérési állapot 0.

a (( expr1 ; expr2 ; expr3 )); do listát ; Kész

Először is, az aritmetikai kifejezést expr1 értékeljük az ARITHMETIC EVALUATION alatt leírt szabályok szerint . Az arithmetikai kifejezést expr2 ezután ismételten értékeljük, amíg nullára nem kerül. Minden alkalommal, amikor az expr2 értéket nem nulla értékre értékel, a lista végrehajtásra kerül és az aritmetikai kifejezést expr3 értékeli. Ha bármelyik kifejezést elhagyjuk, úgy viselkedünk, mintha értéket adna 1. A visszatérési érték a listán szereplő utolsó parancs kimeneti állapota, vagy hamis, ha bármelyik kifejezés érvénytelen.

válasszon nevet [ szóban ]; do listát ; Kész

A következő szavak listája bővül, létrehozva a tételek listáját. A kibővített szavak halmaza a standard hibára nyomtatódik, mindegyiket egy szám előzi meg. Ha a szó be van adva, akkor a pozícióparamétereket kinyomtatják (ld. Az alábbi PARAMÉTEREKET ). Ezután megjelenik a PS3 prompt, és egy sor olvasható le a standard bemenetről. Ha a vonal az ábrázolt szavak valamelyikének megfelelő számból áll, akkor a név értéke be van állítva. Ha a vonal üres, a szavak és a prompt újra megjelenik. Ha az EOF olvasott, a parancs befejeződik. Bármely más érték olvasása esetén a név nullra van állítva. A sor olvasása a REPLY változóba kerül. A listát minden egyes kiválasztás után végre kell hajtani, amíg a szünet parancs végrehajtásra kerül. A kiválasztás kilépési állapota az utolsó végrehajtott parancs kilépési állapota, vagy nulla, ha nincsenek parancsok végrehajtva.

ügyes szó a [[() minta [ | minta ]

Egy esetparancs először kiterjeszti a szót , és megpróbálja egymásnak megfelelni az egyes mintákkal szemben, ugyanazokat az illeszkedő szabályokat használva, mint az elérési út kiterjesztésére (lásd a Pathname bővítés alább). Amikor egy találatot talál, a megfelelő lista végrehajtásra kerül. Az első meccs után nem kísérleteznek további mérkőzések. A kilépési állapot nulla, ha nem illeszkedik a minta. Ellenkező esetben a listán végrehajtott utolsó parancs kilépési állapota.

ha listát ; akkor jegyezze fel; [ elif lista ; akkor jegyezze fel ; ] ... [ egyéb lista ; ] fi

A lista végrehajtása. Ha kilépési állapota nulla, akkor az adott lista végrehajtásra kerül. Ellenkező esetben az egyes elif- listák egymás után kerülnek végrehajtásra, és kilépési állapotuk nulla, akkor a megfelelő listát végrehajtja és a parancs befejeződik. Ellenkező esetben a másik lista végrehajtásra kerül, ha van ilyen. A kilépési állapot az utolsó végrehajtott parancs kilépési állapota vagy nulla, ha egyik feltétel sem igaz.

míg a lista ; do listát ; Kész

amíg a lista ; do listát ; Kész

A while parancs folyamatosan végrehajtja a do listot , amíg az utolsó parancs a listában kilépési állapotot ad vissza. Az addig, amíg a parancs nem azonos a parancs paranccsal, kivéve, hogy a tesztet elutasították; a lista csak akkor hajtódik végre, ha a lista utolsó parancsja nem nulla kioldási állapotot ad vissza. Az idő és a parancsok kilépési állapota az utolsóként végrehajtott végrehajtandó lista kilépési állapota vagy nulla, ha nincs végrehajtva.

[ függvény ] név () { lista ; }

Ez egy névvel ellátott függvényt határoz meg. A függvény teste a parancsok listája a {és} között. Ez a lista akkor kerül végrehajtásra, ha a név egy egyszerű parancs neveként van megadva. Egy függvény kilépési állapota az utolsó végrehajtott parancs kilépési állapota a testben. (Lásd az alábbi FUNKCIÓkat .)

HOZZÁSZÓLÁSOK

Egy nem interaktív héjban vagy egy interaktív héjban, amelyben az interaktív_komponensek opciója a shopt beépített engedélyezett (lásd a SHELL BUILTIN COMMAND parancsot ), a # -al kezdődő szó miatt ez a szó figyelmen kívül hagyja az összes többi karaktert. Az interaktív héj engedélyezése nélkül az interactive_comments opció nem engedélyezi a megjegyzéseket. Az interactive_comments opció alapértelmezés szerint be van kapcsolva az interaktív héjban.

idézve

Az idézet segítségével bizonyos karakterek vagy szavak speciális kifejezése eltávolítható a shell-be. Az idézés a speciális karakterek speciális kezelésének kikapcsolására szolgál, hogy megakadályozza a fenntartott szavak felismerését, és megakadályozza a paraméterek terjeszkedését.

A DEFINITIONS alatt felsorolt metakarakterek mindegyike különleges jelentéssel bír a héjhoz, és meg kell említeni, ha önmagát képviseli.

Amikor a parancstörténeti bővítési lehetőségeket használják, általában a történelem bővítő karaktere ! , meg kell említeni, hogy megakadályozzák a történelem bővítését.

Három idéző ​​mechanizmus létezik: a menekülési karakter , az egyes idézőjelek és a kettős idézőjelek.

A nem idézett visszalövés ( \ ) a menekülési karakter . Ez megőrzi a következő karakter szó szerinti értékét, kivéve . Ha megjelenik egy \ pár, és a visszalövés önmagában nem szerepel, akkor a \ <újvonalat "vonal folytatásaként kezeli (azaz eltávolítja a beviteli folyamból és ténylegesen figyelmen kívül hagyja).

A karakterek egyes idézőjelekben történő tárolása megőrzi az egyes karakterek szó szerinti értékét az idézetekben. Egyetlen idézet nem fordulhat elő egyetlen idézet között, még akkor sem, ha azt megelőzően egy visszafordult.

A kettős idézőjelben lévő karakterek befoglalása megőrzi az idézőjelek összes karakterének szó szerinti értékét, kivéve $ , ` és \ . A $ és a ` karakterek megtartják sajátos jelentését kétszeres idézőjelek között. A backslash megtartja sajátos jelentését csak akkor, ha az alábbi karakterek valamelyike ​​következik: $ , ` , " , \ vagy A kettős idézet kettős idézőjelek között idézhető elő, megelőzve egy visszafordulást.

A speciális paraméterek * és @ különleges jelentéssel bírnak kettős idézőjelek esetén (lásd az alábbi PARAMÉTEREKET ).

A $ ' string ' formájú szavakat speciálisan kezelik. A szó kiterjeszti a karakterláncra , és az ANSI C szabvány által meghatározott módon helyettesítik a hátramaradt karaktereket. A backslash escape szekvenciák, ha jelen vannak, dekódolják az alábbiak szerint:

\ a

riasztás (harang)

\ b

backspace

\ e

egy menekülési karakter

\ f

formanyomtatvány

\ n

új sor

\ r

kocsi vissza

\ t

vízszintes fül

\ v

függőleges lap

\\

backslash

\”

egy idézet

\ nnn

a nyolcbites karakter, amelynek értéke az nnn oktális érték (egy-három számjegy)

\ x HH

a nyolcbites karakter, amelynek értéke HH hexadecimális érték (egy vagy két hex számjegy)

\ c x

egy kontroll- x karakter

A kibővített eredmény egyszemélyes, mintha a dollárjel nem lenne jelen.

Egy dupla idézőjelű string, amelyet egy dollárjel ( $ ) előz meg, okozza a karakterlánc lefordítását az aktuális helynek megfelelően. Ha az aktuális hely C vagy POSIX , a dollár jelét figyelmen kívül hagyja. Ha a karakterláncot lefordították és kicserélték, a csere dupla idézőjelű.

PARAMÉTEREK

A paraméter olyan entitás, amely értékeket tárol. Ez lehet egy név , egy szám vagy az egyik speciális karakter, amelyet az alábbiakban a Speciális paraméterek alatt találhatunk . A shell céljaira egy változó egy névvel jelölt paraméter. A változó értéke és nulla vagy több attribútum . Az attribútumok a beépített parancs kijelölésével vannak hozzárendelve (lásd az alábbiakban a SHELL BUILTIN COMMAND-ban ).

A paraméter akkor van beállítva, ha hozzárendelt egy értéket. Az null karakterlánc érvényes érték. Ha be van állítva egy változó, akkor csak az unset beépített parancs segítségével állíthatja le (lásd alább a SHELL BUILTIN COMMANDS parancsot).

Egy változó hozzárendelhető a formanyomtatványhoz

név = [ érték ]

Ha nem ad meg értéket , akkor a változó null karakterláncot kap. Minden érték tilde kiterjesztésen, paraméteren és változó kiterjesztésen, parancs helyettesítésen, aritmetikai kiterjesztésen és idézet eltávolításon esik át (lásd EXPANSION alább). Ha a változónak van egész számtulajdonsága, akkor az érték a számtani bővítés hatálya alá tartozik akkor is, ha a $ ((...)) bővítést nem használjuk (lásd az alábbi számtani bővítést). A szó felosztása nem történik meg, kivéve a "$ @" kifejezést, ahogy azt a Különleges paraméterek alatt kifejtettük. A pályamenet bővítése nem történik meg. A hozzárendelési utasítások argumentumként jelennek meg a deklarálásra , a szétosztásra , az exportra , az olvasásra és a helyi beépített parancsokra.

Pozícióparaméterek

A pozícióparaméter egy vagy több számjeggyel jelölt paraméter, a 0-os egyetlen számjegy helyett. A pozícióparaméterek a shell argumentumaiból vannak hozzárendelve, amikor meghívják őket, és átrendezhetők a beépített parancs segítségével. A pozícióparamétereket nem lehet hozzárendelni a hozzárendelési utasításokhoz. A pozícióparaméterek átmenetileg ki vannak cserélve, amikor a shell művelet végrehajtásra kerül (lásd az alábbi FUNKCIÓkat ).

Ha egynél több számjegyből álló pozícióparamétert bővítenek, zárójelben kell lenni (lásd EXPANSION alább).

Speciális paraméterek

A héj különféle paramétereket kezel. Ezeket a paramétereket csak hivatkozni lehet; a hozzárendelés nem megengedett.

*

Kiterjeszti a pozícióparamétereket, kezdve az egyikből. Ha a terjeszkedés kettős idézőjelben történik, akkor egyetlen szóra bővül, az egyes paraméterek értékével az IFS speciális változó első karakterével. Ez azt jelenti, hogy " $ * " egyenértékű " $ 1 c $ 2 c ... ", ahol c az IFS változó első karaktere. Ha az IFS nincs beállítva, akkor a paramétereket szóközök választják el egymástól. Ha az IFS nulla, akkor a paraméterek a beavatkozó szétválasztók nélkül csatlakoznak.

@

Kiterjeszti a pozícióparamétereket, kezdve az egyikből. Ha a terjeszkedés kettős idézőjelek között történik, minden paraméter egy külön szóra bővül. Ez azt jelenti, hogy " $ @ " egyenértékű " $ 1 " " $ 2 " ... Ha nincsenek pozícióparaméterek, akkor a " $ @ " és a $ @ kiterjesztése semmire (pl.

#

A pozícióparaméterek számát tizedesre növelve.

?

Bővíti a legutóbb végrehajtott előtér-csővezeték állapotát.

-

Bővít az aktuális opció zászlókra, ahogyan azt a meghíváskor megadott, a beépített beépített paranccsal vagy a shell által beállított paraméterekkel (például a -i opcióval).

$

Kiterjeszti a shell folyamatazonosítóját. Egy () alsóbb osztályban az aktuális shell folyamatazonosítójához, nem pedig az alsó részhez nyúlik.

!

Bővíti a legutóbb végrehajtott háttér (aszinkron) parancs ID folyamatazonosítóját.

0

Kiterjeszti a shell vagy shell script nevét. Ezt a shell inicializálására állítja be. Ha a bash parancsot egy parancsfájllal hívja meg, $ 0 van beállítva a fájl nevére. Ha a bash- t a -c opcióval indítjuk , akkor $ 0 lesz beállítva az első argumentumra a végrehajtandó string után, ha van ilyen. Ellenkező esetben a bash beállításhoz használt fájlnévre van állítva, mivel az argumentum nulla.

_

A héj indításakor állítsa be a shell vagy shell parancs abszolút fájlnevét, amelyet az argumentumlistában átadott. Ezután a bővítés után az előző parancs utolsó argumentumára bővül. Ezenkívül állítson be minden egyes végrehajtott parancsnak a teljes fájlnevét, és helyezze el az adott parancsra exportált környezetbe. A levelek ellenőrzése során ez a paraméter a jelenleg ellenőrzött levélfájl nevét tartalmazza.

Shell változók

A következő változókat a shell határozza meg:

BASH

Bővíti a teljes fájlnevet, amely ezt a példányt meghívja.

BASH_VERSINFO

Egy readonly tömbváltozó, amelynek tagjai verzióinformációkat tartalmaznak erre a bash- példányra. A tömb tagokhoz rendelt értékek a következők:

BASH_VERSINFO [ 0]

A fő verziószám (a kiadás ).

BASH_VERSINFO [ 1]

A kisebb verziószám (a verzió ).

BASH_VERSINFO [ 2]

A tapasz szintje.

BASH_VERSINFO [ 3]

A build verzió.

BASH_VERSINFO [ 4]

A kibocsátás állapota (pl. Beta1 ).

BASH_VERSINFO [ 5]

A MTYTYPE értéke.

BASH_VERSION

Kiterjeszti a bash bash példányának verzióját leíró karakterláncot.

COMP_CWORD

COMP_LINE

Az aktuális parancssor. Ez a változó csak a shell funkciókban és a programozható befejezési lehetőségek által meghívott külső parancsoknál érhető el (lásd a Programozható befejezés fejezetet alább).

COMP_POINT

COMP_WORDS

Egy tömbváltozó (lásd az alábbi rétegeket ), amely az aktuális parancssor egyes szavakból áll. Ez a változó csak a programozható befejezési lehetőségek által meghívott héjfunkciókban érhető el (lásd a Programozható befejezési részt alább).

DIRSTACK

Egy tömbváltozó (lásd az alábbi rétegeket ), amelyek a könyvtárcsomag aktuális tartalmát tartalmazzák. A könyvtárak a kötegben jelennek meg abban az sorrendben, amelyet a beépített dirsek mutatnak. A tömbváltozó tagjainak hozzárendelése használható a már a verem könyvtárainak módosításához, de a pushd és a popd beépített mappákat hozzá kell adni és eltávolítani a könyvtárakhoz. A változó hozzárendelése nem változtatja meg az aktuális könyvtárat. Ha a DIRSTACK nincs beállítva, akkor elveszíti különleges tulajdonságait, még akkor is, ha később újraindul.

euid

Kiterjeszti az aktuális felhasználó hatékony felhasználói azonosítóját, amelyet a héj indításakor inicializál. Ez a változó csak olvasható.

FUNCNAME

Az éppen végrehajtott shell függvény neve. Ez a változó csak akkor létezik, ha egy shell függvény fut. A (z) FUNCNAME hozzárendelések hatása nincs, és hibaállapotot ad vissza. Ha a FUNCNAME nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindít.

CSOPORTJAI

Olyan tömbváltozó, amely tartalmazza azoknak a csoportoknak a listáját, amelyeknek az aktuális felhasználó tagja. A csoportoknak történő hozzárendelések nincsenek hatással és hibaállapotot adnak vissza. Ha a CSOPORTET nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindul.

HISTCMD

Az aktuális parancs története, vagy indexe az előzmények listájában. Ha a HISTCMD nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindul.

GÉPNÉV

Automatikusan állítsa be az aktuális állomás nevét.

HOSTTYPE

Automatikusan állítson be egy olyan karakterláncot, amely egyedileg jellemzi azt a gépet, amelyen a bash fut. Az alapértelmezett rendszerfüggő.

LINENO

A hivatkozás minden egyes hivatkozásakor a shell egy parancssori vagy függvényben lévő aktuális szekvenciális sorszámot (1-től kezdve) helyettesít egy decimális számmal. Ha nincs forgatókönyvben vagy funkcióban, akkor a helyettesített érték nem garantálható értelmesnek. Ha a LINENO nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindul.

MACHTYPE

Automatikusan állítson be egy olyan karakterláncot, amely teljesen leírja azt a rendszer típust, amelyen a bash fut, a szabványos GNU cpu-company-system formátumban. Az alapértelmezett rendszerfüggő.

OLDPWD

Az előző munkakönyvtár, amelyet a cd parancs határoz meg.

OPTARG

A getopts builtin parancs által feldolgozott utolsó opció argumentum értéke (lásd SHELL BUILTIN COMMANDS alább).

OPTIND

A következő argumentum indexe, amelyet a getopts builtin parancs feldolgoz (lásd SHELL BUILTIN COMMANDS alább).

OSTYPE

Automatikusan állítson be olyan karakterláncot, amely leírja az operációs rendszert, amelyen a bash fut. Az alapértelmezett rendszerfüggő.

PIPESTATUS

Egy tömbváltozó (lásd az alábbi rétegeket ), amely a kilépési állapot értékek listáját tartalmazza a leginkább nemrégiben végrehajtott előtér csővezeték folyamataiból (amely csak egyetlen parancsot tartalmazhat).

PPID

A shell szülő folyamatazonosítója. Ez a változó csak olvasható.

PWD

Az aktuális munkakönyvtár, amelyet a cd parancs határoz meg.

VÉLETLEN

Minden alkalommal, amikor ez a paraméter hivatkozik, véletlenszerű egész számot generál 0 és 32767 között. A véletlen számok sorozata inicializálható a RANDOM érték hozzáadásával. Ha a RANDOM nincs beállítva, akkor elveszíti a különleges tulajdonságait, még akkor is, ha később újraindít.

VÁLASZ

Állítsa be a beolvasott vonalat a beépített parancs olvasásakor, ha nem érkezik érv.

SECONDS

Minden alkalommal, amikor ez a paraméter hivatkozik, a másodpercek száma a shell-hívás óta. Ha egy értéket a SECONDS- hez rendeltek, akkor a későbbi referenciákkal visszaadott érték a hozzárendelés óta hozzáadott másodpercek száma a hozzárendelt értékkel együtt. Ha a SECONDS nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindul.

SHELLOPTS

Az engedélyezett shell opciók kettősponttal elválasztott listája. A listában szereplő minden szó érvényes argumentum a beépített parancsnak az -o beállításához (lásd SHELL BUILTIN COMMANDS alább). A SHELLOPTS-ban megjelenő opciók a -o . Ha ez a változó a környezetben van, amikor a bash elindul, akkor a listában lévő minden shell opció engedélyezve lesz, mielőtt elkezdené az indító fájlokat. Ez a változó csak olvasható.

SHLVL

Egyenként növekszik minden egyes alkalommal, amikor egy bash példány indult.

UID

Kiterjeszti az aktuális felhasználó felhasználói azonosítóját, amelyet a héj indításakor inicializál. Ez a változó csak olvasható.

A shell a következő változókat használja. Egyes esetekben a bash egy alapértelmezett értéket rendel a változóhoz; ezeket az eseteket az alábbiakban ismertetjük.

BASH_ENV

Ha ez a paraméter akkor van beállítva, ha bash parancssori parancsfájlt futtat, annak értékét parancsértelmezõ parancsfájlként értelmezik, a ~ / .bashrc fájlban . A BASH_ENV értékét paraméter-kiterjesztésnek, parancshelyettesítésnek és aritmetikai bővítésnek vetik alá, mielőtt fájlnévként értelmeznék. A PATH nem használható az eredő fájlnév keresésére.

CDPATH

A cd parancs keresési útja. Ez a könyvtárak kettőspontosan elválasztott listája, amelyben a shell a cd parancs által meghatározott rendeltetési könyvtárakat keresi. A mintaérték ".: ~: / Usr".

OSZLOPOK

A választott beépített parancs segítségével határozza meg a terminálszélességet a kiválasztási listák nyomtatásakor. Automatikusan beállítható a SIGWINCH beérkezésekor.

COMPREPLY

Olyan tömbváltozó, amelyről a bash olvassa fel a programozható befejezési eszköz által meghívott héjfunkció által létrehozott lehetséges kiegészítéseket (lásd a Programozható befejezés fejezetet alább).

FCEDIT

Az fc beépített parancs alapértelmezett szerkesztője.

FIGNORE

A fájlnév befejezésekor figyelmen kívül hagyja az utótagok kettőspontos elválasztású listáját (lásd az alábbi READLINE dokumentumot ). Olyan fájlnév, amelynek az utótagja megegyezik a FIGNORE egyik bejegyzéseivel, ki van zárva az illesztett fájlnevek listájáról. A mintaérték ".o: ~".

GLOBIGNORE

Táblázatbővítés által figyelmen kívül hagyható fájlnevek készletét meghatározó minták kettőspont-elválasztott listája. Ha egy fájlnév bővítési mintával egyező fájlnév is egyezik a GLOBIGNORE egyik mintájával , akkor eltávolítja a mérkőzések listájáról.

HISTCONTROL

Ha a figyelmen kívül hagyott értékre van beállítva , akkor a vonal karakterekkel kezdődő sorok nem szerepelnek az előzmények listáján. Ha a figyelmen kívül hagyott értékek értékére van beállítva , az utolsó előzménysorhoz tartozó vonalakat nem adta meg. A ignoreboth értéke egyesíti a két lehetőséget. Ha nincs beállítva, vagy ha a fentiektől eltérő értéket állít be, akkor az elemző által leolvasott összes sort a HISTIGNORE értéke függvényében tárolja az előzmények listáján. A változó funkcióját a HISTIGNORE helyettesíti. A többsoros összetett parancs második és következő sorait nem tesztelik, és hozzáadják a történethez a HISTCONTROL értékétől függetlenül.

HISTFILE

A parancs előzményeinek mentésére szolgáló fájl neve (lásd a HISTORY alább). Az alapértelmezett érték a ~ / .bash_history . Ha nincs beállítva, a parancselőzmények nem kerülnek mentésre, ha az interaktív shell kilép.

HISTFILESIZE

A történeti fájlban található sorok maximális száma. Ha ezt a változót egy érték hozzárendeli, az előzményfájl csonkolásra kerül, ha szükséges, hogy ne tartalmazzon többet, mint a vonalak száma. Az alapértelmezett érték 500. Az előzményfájl ugyancsak lecsökken erre a méretre, miután írta azt, amikor egy interaktív shell kilép.

HISTIGNORE

A minták kettősponttal elválasztott listáját használják annak eldöntésére, hogy mely parancssorokat kell menteni az előzmények listáján. Minden minta horgonyzott a vonal elején, és meg kell egyeznie a teljes sorral (nincs implicit ' * ' mellékelve). Minden mintát a HISTCONTROL által meghatározott ellenőrzések után ellenőrizni kell a vonal ellen. A szokásos héjminta-illesztési karaktereken kívül a ` & 'megegyezik az előző előzménysorral. ` & 'meg lehet menekülni egy visszafordulást használva; a visszafordulást el kell távolítani, mielőtt megkísérelne egy mérkőzést. A többsoros összetett parancs második és következő sorai nem teszteltek, és a HISTIGNORE értékétől függetlenül hozzá vannak adva a történelemhez.

HISTSIZE

A parancstörténetben megjegyezendő parancsok száma (lásd HISTORY alább). Az alapértelmezett érték 500.

ITTHON

Az aktuális felhasználó otthoni könyvtára; az alapértelmezett argumentum a cd beépített parancs számára. Ez a változó értéke a tilde kiterjesztésnél is használható.

HOSTFILE

Azon fájlok nevét tartalmazza, amelyek az / etc / hosts formátumban vannak, amelyet el kell olvasni, amikor a shellnek gazdagépnevet kell beírnia. A lehetséges gazdanév-kiegészítések listája módosítható a shell futása közben; a következő alkalommal, amikor a gazdagép befejezése az érték megváltoztatása után megpróbálkozik, a bash hozzáadja az új fájl tartalmát a meglévő listához. Ha a HOSTFILE be van állítva, de nincs értéke, a bash megpróbálja elolvasni az / etc / hosts parancsot, hogy megkapja a lehetséges gazdanév-kiegészítések listáját. Ha a HOSTFILE nincs beállítva, a gazdanév-lista törlődik.

IFS

A belső mezőelválasztó , amelyet szóbeli felosztásra használnak a bővítés után, és a sorokat a beépített parancs olvasásával szétválasztja. Az alapértelmezett érték a `` ''.

IGNOREEOF

Az interaktív shell műveletét szabályozza az EOF karakter átvételének egyedüli bemenetként. Ha be van állítva, az érték az egymást követő EOF karakterek száma, amelyeket be kell írni a bemeneti sor első karaktereként a bash kimenetek előtt. Ha a változó létezik, de nem rendelkezik numerikus értékkel, vagy nincs értéke, akkor az alapértelmezett érték 10. Amennyiben ez nem létezik, az EOF jelzi a bemenetnek a végét.

INPUTRC

A readline indítófájl fájlszáma, amely a ~ / .inputrc alapértelmezését felülírja (ld. READLINE alább).

LANG

A területi kategória meghatározásához használjon olyan kategóriát, amelyet nem kifejezetten kiválasztott egy LC_- vel kezdődő változóval.

LC_ALL

Ez a változó felülbírálja a LANG és bármely más LC_ változót, amely egy locale kategóriát határoz meg.

LC_COLLATE

Ez a változó meghatározza az elérési útszám bővítés eredményeinek rendezésénél alkalmazott rendezési sorrendet, és meghatározza a tartomány-kifejezések, az ekvivalenciaosztályok viselkedését, valamint az útvonalnövekedés és a mintaegyeztetés során a szekvenciák összevetését.

LC_CTYPE

Ez a változó határozza meg a karakterek értelmezését és a karakterosztályok viselkedését az elérési út kiterjesztésében és a mintázat illesztésében.

LC_MESSAGES

Ez a változó meghatározza azt a helyet, amelyet a kettős idézőjelű stringek lefordítására használtunk.

LC_NUMERIC

Ez a változó határozza meg a szám formátumához használt területi kategóriát.

VONALAK

A kiválasztott beépített parancs segítségével meghatározhatja az oszlop hosszát a nyomtatási listák nyomtatásához. Automatikusan beállítható a SIGWINCH beérkezésekor.

LEVÉL

Ha ez a paraméter egy fájlnévre van állítva, és a MAILPATH változó nincs beállítva, a bash tájékoztatja a felhasználót a levél érkezéséről a megadott fájlban.

MAILCHECK

Megadja, hogy a bash gyakran (másodpercekben) ellenőrzi a leveleket. Az alapértelmezett érték 60 másodperc. Amikor eljött az ideje, hogy ellenőrizze az e-mailt, a shell ezt teszi, mielőtt megjeleníti az elsődleges promptot. Ha ez a változó nincs beállítva, vagy olyan értékre van állítva, amely nem nulla vagy nulla, akkor a shell letiltja az e-mail ellenőrzését.

MAILPATH

A levélben ellenőrizendő fájlnevek kettősponttal elválasztott listája. Az üzenet, amelyet az adott fájlban érkező üzenetek nyomtatásakor lehet megadni, a fájlnév elválasztásával az üzenetből egy "?" Lehet. Amikor az üzenet szövegében használják, $ _ kiterjeszti az aktuális levélfájl nevére. Példa:

MAILPATH = '/ var / mail / bfox?' Van mailed ': ~ / shell-mail? "$ _ Mail van!" "

A Bash alapértelmezett értéket biztosít ehhez a változóhoz, de az általa használt felhasználói levelek helyét rendszerfüggő (pl. / Var / mail / $ USER ).

OPTERR

Ha be van állítva az 1-es értékre, a bash megjeleníti a getopts builtin parancs által generált hibaüzeneteket (lásd a SHELL BUILTIN COMMAND-ot lent). Az OPTERR minden egyes alkalommal, amikor a shell meghívásra kerül, vagy shell parancsfájl végrehajtásra kerül.

PÁLYA

A parancsok keresési útvonala. Ez egy kettősponttal elválasztott listája azoknak a könyvtáraknak, amelyekben a shell parancsokat keres (lásd a COMMAND EXECUTION fejezetet ). Az alapértelmezett elérési útvonal rendszerfüggő, és a bash parancsot telepítő rendszergazda állítja be. Egy közös érték `` / usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin: ''.

POSIXLY_CORRECT

Ha ez a változó a környezetben van, amikor a bash elindul, akkor a shell elindul a posix módba, mielőtt elolvasta az indító fájlokat, mintha a --posix invocation lehetőség lett volna. Ha a héj futtatása közben be van állítva, a bash lehetővé teszi a posix módot , mintha a -o posix parancs végrehajtásra került volna.

PROMPT_COMMAND

Ha be van állítva, az érték az elsődleges prompt kiadása előtt parancsként végrehajtódik.

PS1

A paraméter értéke kibővült (lásd: PROMPTING alább), és az elsődleges promptkészletként használatos. Az alapértelmezett érték `` \ s- \ v \ $ ''.

PS2

Ez a paraméter a PS1-hez hasonlóan bővül, és másodlagos prompt-karakterláncként használatos. Az alapértelmezés a `` > ''.

PS3

A paraméter értéke a választó parancs promptjaként használható (lásd a SHELL GRAMMAR fejezetet ).

PS4

Ez a paraméter a PS1-hez hasonlóan bővül, és az érték kinyomtatódik, mielőtt minden parancs bash megjelenik egy végrehajtási nyomban. A PS4 első karakterének többszöröse van, szükség szerint több irányú indirektus jelzésére. Az alapértelmezés a `` + ''.

IDŐ FORMÁTUM

Ennek a paraméternek a értéke egy formátumkészlet, amely meghatározza, hogy miként kell megjeleníteni az időre fenntartott szó előtti csővezetékek időzítési információit. A % karakter bevezeti a szökési szekvenciát, amely egy időértékre vagy más információra bővül. A menekülési szekvenciák és jelentéseik a következők: a zárójelek az opcionális részeket jelölik.

%%

Literális % .

% [ p ] [l] R

Az eltelt idő másodpercben.

% [ p ] [1] U

A felhasználói módban elköltött CPU másodpercek száma.

% [ p ] [l] S

A rendszeres üzemmódban elfogyott CPU másodpercek száma.

% P

A CPU százalékos értéke (% U +% S) /% R.

Az opcionális p egy számjegy, amely meghatározza a pontosságot , a tört számjegyek számát tizedespont után. A 0 érték nem ad decimális pontot vagy törtnek. A tizedespont után legfeljebb három hely megadható; a 3-nál nagyobb p értékek 3-ra változtak. Ha p nincs megadva, akkor a 3 értéket használjuk.

Az opcionális l meghatároz egy hosszabb formátumot, beleértve a perceket, az MM m SS formátumot. FF s. A p érték határozza meg, hogy a frakció szerepel-e vagy sem.

Ha ez a változó nincs beállítva, a bash úgy működik, mintha $ '\ nreal \ t% 3lR \ nuser \ t% 3lU \ nsys% 3lS' értéke lenne . Ha az érték nulla, nem jelenik meg időzítési információ. A formázott karakterlánc megjelenésekor egy mellékvonalat ad meg.

TMOUT

Ha nulla értéknél nagyobb értékre van állítva, a TMOUT az alapértelmezett időtúllépés a beépített olvasáshoz . A kiválasztás parancs megszűnik, ha a bemenet nem érkezik TMOUT másodperc után, amikor a bemenet egy terminálból érkezik. Egy interaktív héjban az érték az elsődleges prompt kiadása után a bemeneti várakozás másodperceként értelmezhető. A Bash befejezõdik, miután várakoztunk arra a másodpercre, ha a bemenet nem érkezik meg.

auto_resume

Ez a változó szabályozza, hogy a shell hogyan működik együtt a felhasználóval és a munkaellenőrzéssel. Ha ez a változó be van állítva, az egyszavas egyszerű parancsok átirányítás nélkül jelennek meg egy meglévő megszakított munka folytatásaként. Nincs kétértelműség megengedett; ha több bejegyzés kezdődik a begépelt karakterlánccal, akkor a legutoljára elérni kívánt feladat van kiválasztva. A megszakított munka neve, ebben az összefüggésben a parancssor, amelyet elindítunk. Ha a pontos értékre van állítva, akkor a megadott karakterláncnak pontosan meg kell egyeznie a megállított munka nevével; ha be van állítva a szubsztringhez , akkor a mellékelt karakterláncnak meg kell egyeznie egy megszakított munka nevének egy aljával. A szubszringens érték a % -hoz hasonló funkcionalitást biztosít . állásazonosító (lásd JOB CONTROL alább). Ha más értékre van beállítva, a mellékelt karakterláncnak meg kell adnia a megszakított feladat nevét; ez a % job azonosítóhoz hasonló funkcionalitást biztosít.

histchars

A két vagy három karakter, amelyek szabályozzák a történelem bővítését és a tokenizálást (lásd a HISTORY EXPANSION alább). Az első karakter a történelem bővítő karaktere, a karakter, amely a történelem bővítésének kezdetét jelzi, általában " ! ”. A második karakter a gyors helyettesítési karakter, amelyet rövidítésként használnak az előző parancs újbóli végrehajtására, és egy parancsot helyettesít a másikra. Az alapértelmezett érték ` ^ '. Az opcionális harmadik karakter a karakter, amely azt jelzi, hogy a sor többi része egy megjegyzés, ha egy szó első karakterévé, általában ` # '. A történelmi megjegyzés karakter miatt a fennmaradó szavakat kihagyjuk a sorban lévő történelem helyettesítésére. Nem feltétlenül okozza a shell elemzőnek, hogy a sor többi részét kommentárként kezelje.

tömbök

A Bash egydimenziós tömbváltozókat biztosít. Bármely változó használható tömbként; a beépített kijelentés kifejezetten kijelöl egy tömböt. A tömb méretére nincs maximális korlát, sem a tagok indexelésére vagy hozzárendelésére vonatkozó követelmény. A rétegeket egész számok segítségével indexálják és nulla alapúak.

A tömb automatikusan létrehozásra kerül, ha bármelyik változó hozzá van rendelve a szintaxisnév [ subscript ] = érték használatához . Az alsó indexet aritmetikai kifejezésnek kell tekinteni, melynek értéke nullához nagyobb vagy egyenlő számmal kell értékelnie. Egy tömb kifejezett deklarálására használja a declaration- name kifejezést (lásd: SHELL BUILTIN COMMANDS alább). deklarálja a név [ alsó index ] is elfogadott; az index figyelmen kívül marad. Attribútumok megadhatók a tömbváltozókhoz a deklarálás és a readonly beépítettek használatával. Minden attribútum egy tömb minden tagjára vonatkozik.

A rétegek hozzárendelésre kerülnek az összetett hozzárendelésekhez a form name = ( érték 1 ... n érték ) formában , ahol minden érték az [ subscript ] = string formában van . Csak karakterlánc szükséges. Ha az opcionális zárójeleket és az indexet szállítjuk, akkor az indexet hozzárendeljük; ellenkező esetben a hozzárendelt elem indexe az utolsó index, amelyet az utasítás plusz egy hozzárendel. Az indexelés nullával kezdődik. Ezt a szintaxist is elfogadja a beépített deklaráció. Az egyes tömb elemek hozzárendelhetők a fent bemutatott [ subscript ] = value syntax használatához.

Az unset beépített tömbök megsemmisítésére használják. unset name [ alsó index ] elpusztítja a tömb elemet az index indexben. az unset név , ahol a név egy tömb, vagy az unset name [ subscript ], ahol az alap index * vagy @ , eltávolítja a teljes tömböt.

A deklarált , a helyi és a readonly beépített mindegyik elfogadja a -a-t egy tömb meghatározására. A beépített olvasó elfogad egy -a- opciót, amely a standard bemenetről olvasott szavak listáját hozzárendeli egy tömbhöz. A készlet és deklarálja a beépített megjeleníti a tömbértékeket oly módon, hogy azok újra felhasználhatók hozzárendelésekként.

TERJESZKEDÉS

A bõvítés a parancssorban történik, miután szavakra osztották. Jelenleg hétféle expanzió valósul meg: bájtbővítés , tilde kiterjesztés , paraméter és változó kiterjesztés , parancshelyettesítés , számtani kiterjesztés , szómegosztás és elérési út kiterjesztése .

A bővítések sorrendje: a tasztatúra, a tilde kiterjesztése, a paraméterek, a változó és számtani kiterjesztés és a parancs helyettesítése (balról jobbra), a szó megosztása és az elérési út kiterjesztése.

Az olyan rendszereken, amelyek támogatják, további bővítés érhető el: a folyamat helyettesítése .

Brace bővítés

A merevlemez-elterjedés olyan mechanizmus, amellyel tetszőleges vonalak keletkezhetnek. Ez a mechanizmus hasonló az elérési út kiterjesztéséhez , de a generált fájlnevek nem léteznek. A bővített dőlésszedő minták opcionális preambulum formájában váltakoznak , amelyet sorok vesszővel elválasztott szálak követnek egy pár pántok között, majd egy opcionális postscript . A preambulum előtagolja a zárójelben lévő minden egyes karakterláncot, és a postscriptet minden egyes eredményül kapott szöveghez hozzáfűzzük, és balról jobbra bővítjük.

A záró bővítések beágyazódhatnak. Az egyes kiterjesztett karakterláncok eredményei nincsenek rendezve; a balról jobbra rendezés megmarad. Például egy { d, c, b } e kiterjeszti a "ade ace abe" -t.

A merevítő tágulást más bővítések előtt kell végrehajtani, és minden más, a többi bővítéshez speciális karaktert meg kell őrizni az eredményben. Szigorúan szöveges. A Bash nem alkalmaz szintaktikai értelmezést a bővítés kontextusára vagy a zárójelek szövegére.

Ezt a konstrukciót általában rövidítésként használják, amikor a létrehozandó karakterláncok közös előtagja hosszabb, mint a fenti példában:

mkdir / usr / local / src / bash / {régi, új, dist, bugs}

vagy

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

A Brace kiterjesztése enyhe összeférhetetlenséget mutat a sh . sh nem kezeli a nyitó vagy záró zárójeleket, különösen akkor, ha egy szó részeként jelenik meg, és megőrzi őket a kimeneten. A Bash a zárójelek következtében eltávolítja a szavakat. Például egy {1}} fájlba beillesztett szó a kimeneten azonos módon jelenik meg. Ugyanaz a szó, mint a bash1 kiterjesztés után a file1 file2 . Ha szigorú kompatibilitás van sh-vel , indítsa el a bash- t a + B opcióval, vagy kapcsolja ki a + B opciót a set paranccsal (lásd a SHELL BUILTIN COMMAND-ot lent).

Tilde bővítés

Ha egy szó egy nem tizedes karakterrel (` ~ ') kezdődik, akkor az első nem jegyzett perjelet megelőző karakterek (vagy az összes karakter, ha nem szerepel a nem jegyzett perjel), tilde előtagnak tekintendők . Ha a tilde-prefixben szereplő karakterek egyike sem szerepel, akkor a tilde utáni tilde-prefixben lévő karaktereket lehetséges bejelentkezési névnek tekintik. Ha ez a bejelentkezési név az null karakterlánc, akkor a tildet a HOME shell paraméter értékével helyettesítjük. Ha a HOME nincs beállítva, ahelyett, hogy helyettesítené a héjfuttató felhasználó saját könyvtárát. Ellenkező esetben a tilde-előtagot a megadott bejelentkezési névvel társított kezdőkönyvtár váltja fel.

Ha a tilde-előtag `~ + ', a PWD shell változó értéke helyettesítse a tilde-prefixet. Ha a tilde-előtag `~ - ', akkor az OLDPWD héj-változó értéke , ha be van állítva, helyettesíti. Ha a tilde-prefixben a tilde után következő karakterek egy N számot tartalmaznak, amely adott esetben egy "+" vagy egy "-" elé van állítva, akkor a tilde-előtagot a könyvtárcsomag megfelelő elemével helyettesítik, a tilde-előtagként hivatkozott beépített dirsek argumentumként. Ha a tilde-prefixben a tilde után következő karakterek olyan számból állnak, amely nem tartalmaz vezető "+" vagy "-" -t, akkor a "+" kifejezést feltételezzük.

Ha a bejelentkezési név érvénytelen, vagy a tilde bővítés sikertelen, a szó változatlan.

Minden változó hozzárendelést ellenőrizni kell a nem kötelező tilde-előtagokra, közvetlenül a következők után : vagy = . Ezekben az esetekben a tilde expanzió is elvégezhető. Ennek következtében a PATH , MAILPATH és a CDPATH hozzárendelésekhez használhat fájlneveket tildekkel , és a shell hozzárendeli a kibővített értéket.

Paraméter bővítés

A ` $ 'karakter bevezeti a paraméterek bővítését, a parancs helyettesítését vagy az aritmetikai bővítést. A kibővítendő paraméter neve vagy szimbóluma zárójelben található, amely opcionális, de védi a módosítandó változót a közvetlenül követendő karakterektől, ami a név részeként értelmezhető.

Ha zárójelek használatosak, az egyező végzőrúd az első ` } ', amelyet egy visszafordulástól vagy egy idézett stringből nem sikerült elkerülni, és nem egy beágyazott számtani kiterjesztés, parancshelyettesítés vagy paramter kiterjesztés alatt.

A paraméter értéke helyettesített. A zárójelek akkor szükségesek, ha a paraméter egy pozícióparaméter, ha egynél több számjegy van, vagy amikor a paramétert egy olyan karakter követi, amelyet nem kell a név részeként értelmezni.

Az alább felsorolt ​​esetek mindegyikében a szó tilde kiterjesztés, paraméter bővítés, parancs helyettesítés és számtani kiterjesztés tárgyát képezi. Ha nem hajthatja végre a szubsztringes terjeszkedést, bash- tesztet végez egy olyan paraméterre, amely nincs beállítva vagy nullál; a kettőspont elhagyása csak olyan paraméterre vonatkozik, amely nincs beállítva.

Alapértelmezett értékek használata . Ha a paraméter nincs beállítva vagy nulla, a szó kiterjesztése helyettesít. Ellenkező esetben a paraméter értéke helyettesíthető.

Alapértelmezett értékek hozzárendelése . Ha a paraméter nincs beállítva vagy nulla, a szó kiterjesztése a paraméterhez van hozzárendelve. A paraméter értékét ezután helyettesíti. A pozícióparaméterek és a speciális paraméterek ilyen módon nem rendelhetők hozzá.

Null vagy Unset megjelenítési hiba . Ha a paraméter null vagy unset, a szó kiterjesztése (vagy egy ilyen üzenet, ha a szó nincs jelen) a standard hibára íródik, és a shell, ha nem interaktív, kilép. Ellenkező esetben a paraméter értéke helyettesíthető.

Alternatív érték használata . Ha a paraméter null vagy unset, akkor semmi sem helyettesíthető, különben a szó kiterjesztése helyettesíthető.

A kiterjesztése olyan változók nevére terjed ki, amelyek neve előtagként kezdődik, az IFS speciális változó első karakterével elválasztva.

A paraméter értékének karakteres hosszúsága helyettesítve van. Ha a paraméter * vagy @ , a helyettesített érték a helyzeti paraméterek száma. Ha a paraméter egy tömbnév, amelyet * vagy @ jelez , a helyettesített érték a tömb elemeinek száma.

A szó kibővül, hogy minta keletkezzen, ugyanúgy, mint az elérési út kiterjesztésében. Ha a minta egyezik a paraméter értékének kezdetével, akkor a bővítés eredménye a legrövidebb illeszkedési mintának (a `` # '' eset) vagy a leghosszabb illesztési mintának (a `` ## ' "eset) törölve. Ha a paraméter a @ vagy a * , akkor a minta eltávolítási művelet minden pozícióparaméterre felváltva kerül sor, és a bővítés az eredménylista. Ha a paraméter egy tömbváltozó, amelyre a @ vagy * -al indexeltek, akkor a minta eltávolítási műveletet a tömb egyes tagjai egymás után alkalmazzák, és a bővítés az eredményt tartalmazó lista.

A szó kibővül, hogy minta keletkezzen, ugyanúgy, mint az elérési út kiterjesztésében. Ha a minta egyezik a paraméter kiterjesztett értékének hátsó részével, akkor a bővítés eredménye a legrövidebb illesztési minta (a `` % '' eset) vagy a leghosszabb illeszkedési mintázat (a `` % % '' eset) törölve. Ha a paraméter a @ vagy a * , akkor a minta eltávolítási művelet minden pozícióparaméterre felváltva kerül sor, és a bővítés az eredménylista. Ha a paraméter egy tömbváltozó, amelyre a @ vagy * -al indexeltek, akkor a minta eltávolítási műveletet a tömb egyes tagjai egymás után alkalmazzák, és a bővítés az eredményt tartalmazó lista.

A mintát kibővítettük, hogy minta keletkezzen, ahogyan az útvonalnév bővítésnél. A paraméter kiterjesztésre kerül, és a minta leghosszabb illeszkedése az értékével szemben helyettesíthető. Az első formában csak az első mérkőzést váltja fel. A második űrlap azt eredményezi, hogy a mintának minden egyes mérkőzését sorba kell cserélni. Ha a minta # -al kezdődik, akkor meg kell egyeznie a paraméter kiterjesztett értékének elején. Ha a minta % -al kezdõdik, akkor meg kell egyeznie a paraméter kibõvített értéke végén. Ha a karaktersorozat nulla, akkor a minta illeszkedik törölve, és a következő minta elhagyható. Ha a paraméter a @ vagy * , akkor a helyettesítő műveletet minden pozícióparaméterre alkalmazni kell, és a bővítés az eredménylistát jelenti. Ha a paraméter egy tömbváltozó, melyet indexel @ vagy * , akkor a helyettesítési műveletet a tömb egyes tagjai egymás után alkalmazzák, és a bővítés az eredményt tartalmazó lista.

Parancshelyettesítés

A parancscserék lehetővé teszik a parancs kimenetének a parancsnév helyettesítését. Két formája van:

$ ( parancs )

vagy

` parancs '

A Bash végrehajtja a bővítést a parancs végrehajtásával, és a parancs helyettesítését a parancs szabványos kimenetével helyettesítve, és minden utólagos új sor törölve lesz. A beágyazott újvonalak nem törlődnek, de eltávolíthatók a szómegosztás során. A $ helyettesítési (cat file ) helyettesíthető az egyenértékű, de gyorsabb $ (< fájl ).

Ha a régi stílusú backquote helyettesítést használjuk, a backslash megtartja szó szerinti jelentéseit, kivéve ha $ , ` vagy \ " követ. Az első backquote, amelyet nem előz meg a backslash, megszünteti a parancs helyettesítését. A $ ( parancs ) formanyomtatvány használatakor a zárójelek között minden karakter felveszi a parancsot; egyik sem kezelik különlegesen.

A parancscserék beágyazhatók. A házi jegyzetek használatával fészkelés esetén menjen el a belső hüvelykombinációktól visszafordulókkal.

Ha a helyettesítés kettős idézőjelek között jelenik meg, a szómegosztás és az elérési út kiterjesztése nem történik az eredményeken.

Aritmetikai bővítés

A számtani kiterjesztés lehetővé teszi az aritmetikai kifejezés értékelését és az eredmény helyettesítését. Az aritmetikai bővítés formátuma:

$ (( kifejezés ))

A kifejezés úgy van kezelve, mintha dupla idézőjelben lenne, de a zárójelben lévő kettős idézetet nem kezelik kifejezetten. A kifejezésben lévő minden token a paraméterek kiterjesztését, a karakterlánc kiterjesztését, a parancs helyettesítését és az idézet eltávolítását végzi. A számtani helyettesítések beágyazhatók.

Az értékelés az ARITHMETIC ÉRTÉKELÉS alatt felsorolt ​​szabályok szerint történik . Ha a kifejezés érvénytelen, a bash kinyomtatja a hibát jelző üzenetet, és nem történik helyettesítés.

Folyamatos helyettesítés

A folyamatok helyettesítését olyan rendszerek támogatják, amelyek támogatják a nevezett csövek ( FIFO-k ) vagy a nyílt fájlok elnevezése / dev / fd módszerét. Ez a <( list ) vagy > ( lista ) formában jelenik meg . A folyamatlista a FIFO-val vagy a / dev / fd fájlban lévő bemenetre vagy kimenetre futtatható. A fájl neve a bővítés eredményeképpen az aktuális parancs argumentumának tekinthető. Ha a > ( lista ) űrlapot használjuk, a fájlba írás megadja a listához tartozó bemenetet. Ha a <( list ) űrlapot használjuk, akkor az argumentumként átadott fájlt olvasni kell ahhoz, hogy megkapjuk a lista kimenetét.

Ha rendelkezésre áll, akkor a folyamat helyettesítését párhuzamosan hajtja végre a paraméter és a változó kiterjesztés, a parancshelyettesítés és az aritmetikai bővítés.

Word Splitting

A héj letapogatja a paraméterek terjeszkedésének, parancshelyettesítésének és számtani kiterjesztésének eredményeit, amelyek nem fordultak elő kettős idézőjelek között a szómegosztáshoz .

A shell az IFS minden egyes karakterét határolónak kezeli, és a többi bővítmény eredményeit szó szerint szavakra bontja. Ha az IFS nincs beállítva, vagy értéke pontosan , az alapértelmezett, akkor az IFS karakterek bármely sorozata szűri a szavakat. Ha az IFS- nek az alapértelmezetttől eltérő értéke van, akkor a szóköz elején és végén a szimbólumok a szóközök elején és a végén a szimbólumokat figyelmen kívül hagyják mindaddig, amíg a szóköz karaktert az IFS értéke ( IFS- fehértávolság karakter) adja meg. Az IFS-ben szereplő minden olyan karakter, amely nem IFS- fehérség, valamint bármely szomszédos IFS- fehér karakter, valamint egy mezőt határol. Az IFS szóköz karakterek sorozata szintén határolónak tekintendő. Ha az IFS értéke nulla, akkor nem történik szómegosztás.

Explicit null argumentumok ( "" vagy "" ) megmaradnak. A nem értékelt paraméterek kiterjesztéséből származó, nem kötelező, implicit null argumentumok eltávolításra kerülnek. Ha egy érték nélküli paramétert a kettős idézőjelek között bővítenek, akkor egy null argumentumot eredményez és megmarad.

Ne felejtsük el, hogy ha nincs kitágulás, akkor nem történik hasítás.

Pathname bővítés

A szó felosztása után, ha a -f beállítás nincs beállítva, bash szkenneli az egyes szavakat a * ,? , és [ . Ha az egyik ilyen karakter megjelenik, akkor a szó minta , és helyettesíteni kell a mintának megfelelő fájlnevek ábécéileg rendezett listáját. Ha nem találnak megfelelő fájlneveket, és a nullglob shell opció letiltott, a szó változatlan marad. Ha a nullglob beállítás be van állítva, és nincs találat, akkor a szó törlődik. Ha a nocaseglob héj opció engedélyezve van, akkor a mérkőzés az alfabetikus karakterek figyelembevételével történik. Ha egy mintát használnak az elérési út kiterjesztéséhez, a név elején vagy közvetlenül egy perjel után a karaktert ``. '' Kell kifejezetten illeszteni, hacsak nincs beállítva a dotglob shell opció. Ha egy elérési utat illeszt, akkor a perjel karaktert mindig explicit módon illeszteni kell. Más esetekben a ``. '' Karaktert nem kezelik speciálisan. A SHELL BUILTIN COMMANDS alatt a shopt leírását lásd a nocaseglob , nullglob és dotglob shell opciók leírásában .

A GLOBIGNORE shell változó használatával korlátozhatja a mintának megfelelő fájlnevek halmazát. Ha a GLOBIGNORE be van állítva, minden olyan illeszkedő fájlnév, amely szintén megfelel a GLOBIGNORE egyik mintájának , eltávolításra kerül a mérkőzések listájáról. A ``. '' És `` .. '' fájlnevek mindig figyelmen kívül maradnak, még akkor is, ha a GLOBIGNORE be van állítva. Azonban a GLOBIGNORE beállítása hatással van arra, hogy engedélyezze a dotglob shell opciót, így minden más, a ``. '' -al kezdődő fájlnév megegyezik. Ha meg szeretné tudni , hogy a fájlnevek figyelmen kívül hagyása a ``. '' -nel kezdődik, akkor a GLOBIGNORE egyik mintája legyen a ``. * '' . A dotglob beállítás le van tiltva, ha a GLOBIGNORE nincs beállítva.

Mintázat illesztés

Minden olyan karakter, amely egy mintában jelenik meg, az alább leírt különleges mintázati karakterek kivételével megegyezik önmagával. A NUL karakter nem fordulhat elő egy mintában. A speciális minta karaktereket kell idézni, ha szó szerint illeszkednek.

A speciális minta karakterek a következő jelentéssel bírnak:

*

Megegyezik minden olyan karakterlánccal, beleértve a null karakterláncot is.

?

Megegyezik minden egyetlen karakterrel.

[...]

Illeszkedik a zárt karakterek bármelyikével. Egy kötőjel által elválasztott karakterek száma egy tartomány kifejezést jelez; minden olyan karakter, amely a két karakter közé sorolható, beleértve az aktuális helyi rendező szekvenciát és karakterkészletet is, illeszkedik. Ha az első karakter a [ a ! vagy ^ ^ akkor a nem záródó karakterek illeszkednek. A tartomány-kifejezésekben szereplő karakterek rendezési sorrendjét az aktuális hely és az LC_COLLATE héjváltozó értéke határozza meg, ha be van állítva. A - illeszthető úgy, hogy a készlet első vagy utolsó karakterét tartalmazza. A ] illeszthető úgy, hogy az első karakterként szerepel a készletben.

A [ és ] karaktereken belül a karakterosztályok meghatározhatók a [: class :] szintaxissal, ahol az osztály a POSIX.2 szabványban meghatározott alábbi osztályok egyike:

alnum alfa ascii blank cntrl digit grafikon alsó nyomtatás punct space felső szó xdigit
A karakterosztály megegyezik az adott osztályhoz tartozó karakterekkel. A szó karakterosztály a betűket, a számjegyeket és a karaktert illeti.

A [ és ] belül egy egyenértékűségi osztály megadható a [= c =] szintaxissal, amely a c karakterrel megegyező összesített karaktert illeti (az aktuális mező meghatározása szerint).

Belül [ és ] a szintaxis [. szimbólum .] megfelel a gyűjtő szimbólum szimbólumnak .

Ha az extglob shell opció engedélyezve van a shopt beépített használatával, akkor több kiterjesztett minta-illesztési operátor is felismerésre kerül. A következő leírásban egy minta-lista egy vagy több mintának egy | . Összetett minták alakíthatók ki egy vagy több alábbi al-mintával:

? ( minta-lista )

Megegyezik az adott minták nulla vagy egy előfordulásával

* ( minta lista )

Megfelel az adott minták nulladik vagy több előfordulásának

+ ( minta-lista )

Egyezik az adott minták egy vagy több előfordulásával

@ ( minta-lista )

Pontosan egyezik az adott minták egyikével

! ( minta lista )

Az adott minták egyikét kivéve

Idézet eltávolítása

A korábbi kiterjesztések után a \ , ' és a \ " karakterek nem jegyzett előfordulásai a fenti bővítések egyikéből nem származnak.

REDIRECTION

A parancs végrehajtása előtt a bemenet és a kimenet átirányítható egy speciális parancs által, amelyet a shell értelmez. Az átirányítás használható az aktuális shell-végrehajtási környezet fájlok megnyitásához és bezárásához is. Az alábbi átirányítási szolgáltatók előfordulhatnak vagy megjelenhetnek bárhol egy egyszerű parancs alatt, vagy parancsot követhetnek. Az átirányításokat sorrendben, balról jobbra feldolgozzák.

A következő leírásban, ha a fájlleírási szám el van hagyva, és az átirányítási operátor első karaktere < , az átirányítás a szabványos bemenetre (0 fájlleíró) vonatkozik. Ha az átirányítási operátor első karaktere >> , az átirányítás a szabványos kimenetre (fájlleíró 1) vonatkozik.

Az átirányítási műveletet követõ szó a következõ leírásokban, hacsak másként nem jelezzük, a merevlemezek tágulása, a tilde kiterjesztése, a paraméterek terjeszkedése, a parancs helyettesítés, a számtani kiterjesztés, az idézet eltávolítása, az elérési út kiterjesztése és a szó felosztása alá kerülnek. Ha egynél több szóra bővül, a bash hibajelentést tesz közzé.

Vegye figyelembe, hogy az átirányítások sorrendje jelentős. Például a parancsot

ls > dirlist 2 > & 1

irányítja a szabványos kimenetet és a standard hibát a dirlist fájlra, miközben a parancsot

A 2 > & 1 > dirlist

csak a szabványos kimenetet irányítja a dirlist fájlra, mivel a szabványos hibát duplikálták standard kimenetként, mielőtt a standard kimenetet átirányították a dirlistre .

A Bash több fájlnevet kezel, különösen akkor, ha azokat átirányításban használják, az alábbi táblázatban leírtak szerint:

/ dev / fd / fd

Ha az fd egy érvényes egész szám, akkor az fd fájlleíró írható le .

/ dev / stdin

A 0. fájlleíró duplikálódik.

/ dev / stdout

Az 1. fájlleíró duplikálódik.

/ dev / stderr

A 2. fájlleíró duplikálódik.

/ dev / tcp / host / port

Ha a gazdagép egy érvényes gazdanév vagy internetcím, és a port egy egész portszám vagy szolgáltatásnév, bash megpróbálja megnyitni egy TCP kapcsolatot a megfelelő aljzatba.

/ dev / udp / host / port

Ha a gazdagép egy érvényes gazdanév vagy internetcím, és a port egy egész portszám vagy szolgáltatásnév, a bash megpróbál UDP kapcsolatot megnyitni a megfelelő aljzatba.

A fájl megnyitásának vagy létrehozásának elmulasztása miatt az átirányítás sikertelen.

Beviteli átirányítás

A bemenet átirányítása azt a fájlt eredményezi, amelynek neve a szó kiterjesztéséből nyerhető az n fájlleíróban vagy a szabványos bemeneten (0 fájlleíró), ha n nincs megadva.

A beviteli átirányítás általános formátuma:

[ n ] < szó

Kimenet átirányítása

A kimenet átirányítása azt a fájlt eredményezi, amelynek neve a szó kiterjesztéséből nyerhető az n fájlleíróban vagy a szabványos kimeneten (fájlleíró 1), ha n nincs megadva. Ha a fájl nem létezik, létrejön; ha létezik akkor nulla méretre van vágva.

A kimeneti átirányítás általános formátuma:

[ n ] > szó

Ha az átirányítási operátor > és a beépített készlet noclobber opciója engedélyezve van, az átirányítás sikertelen lesz, ha létezik olyan fájl, amelynek neve a szó bővítéséből származik , és rendszeres fájl. Ha az átirányítási szolgáltató > | , vagy az átirányítási operátor > és a beállított beépített parancs noclobber opciója nincs engedélyezve, akkor a redirection akkor is megpróbálkozik, ha a szó által megnevezett fájl létezik.

Átirányított kimenet hozzáadása

A kimenet ilyen irányú átirányítása azt a fájlt eredményezi, amelynek neve a szó kiterjesztéséből az n fájlleíróhoz vagy a szabványos kimenethez (fájlleíró 1), ha n nincs megadva. Ha a fájl nem létezik, létrejön.

A kibocsátás hozzárendelésének általános formátuma:

[ n ] >> szó

Szabványos kimenet és standard hiba átirányítása

A Bash lehetővé teszi a szabványos kimenet (1. fájlleíró) és a szabványos hiba kimenet (2. fájlleíró) átirányítását a fájlhoz, amelynek neve a szó bővítése ezzel a konstrukcióval.

A szabványos kimenet és a standard hiba átirányítására kétféle formátum létezik:

&> szó

és

> & szó

A két forma közül az első előnyös. Ez szemantikailag egyenértékű

> 2. szó > & 1

Itt a Dokumentumok

Ez a típusú átirányítás arra utasítja a héjat, hogy olvassa el az aktuális forrásból származó bemenetet, míg egy olyan sor, amely csak szót tartalmaz (nincs mellékelt üres). Az összes, ekkor felolvasott vonalat a parancs standard bemeneteként használják.

Az itt található dokumentumok formátuma:

<< [ - ] szó itt-dokumentum határoló

Nincs szó paramétercserére, parancs helyettesítésére, aritmetikai bővítésre vagy elérési út kiterjesztésére. Ha a szó bármelyik karaktere idézőjelű, a határoló az idézeteltávolítás eredménye a szónak , és az itt dokumentumok sorai nem bővülnek. Ha a szó nem titkolt, akkor az itt található dokumentum minden vonalát paraméter-kiterjesztésnek, parancshelyettesítésnek és számtani kiterjesztésnek vetik alá. Az utóbbi esetben a \ karaktersorozatot figyelmen kívül hagyjuk, és \ arra kell használni, hogy idézzük a \ , $ és ` karaktereket.

Ha az átirányítási operátor << - , akkor minden vezető fül karaktert lecsupaszítanak a bemeneti sorokról és a határolójelet tartalmazó sorról. Ez lehetővé teszi, hogy a shell parancsfájlokban lévő dokumentumok természetes módon behajthatók legyenek.

Itt húrok

Egy változata itt a dokumentumok, a formátum:

<<< szó

A szó kibővül és a szabványos bemeneten lévő parancsra kerül.

Duplikáló fájlleírások

Az átirányítási szolgáltató

[ n ] <& szó

a bemeneti fájlleírások ismétlésére használatos. Ha a szó egy vagy több számjegyre bővül, az n által kijelölt fájlleíró írja le a fájlleíró egy példányát. Ha a szóban lévő számok nem adják meg a bemenetre nyitott fájlleírást, átirányítási hiba lép fel. Ha a szó értékeli - , akkor az n fájlleírást bezárták. Ha n nincs megadva, a standard bemenetet (fájlleíró 0) használják.

Az irányító

[ n ] > & szó

hasonló módon használják a kimeneti fájlleírások ismétlésére. Ha n nincs megadva, a szabványos kimenetet (1. fájlleíró) használják. Ha a szóban lévő számjegyek nem adnak meg egy kimeneti fájlleírást, átirányítási hiba lép fel. Különleges esetként, ha n elhagyásra kerül, és a szó nem terjed ki egy vagy több számjegyre, a standard kimenet és a standard hiba átirányításra kerül a korábban leírtak szerint.

Fájlleírók áthelyezése

Az átirányítási szolgáltató

[ n ] <& számjegy -

a fájlleírási számjegyet az n fájlleíróra vagy a szabványos bemenetre (0 fájlleíró) mozgatja, ha n nincs megadva. a számjegy zárva van, miután az n-re duplikálták.

Hasonlóképpen az átirányítási szolgáltató

[ n ] > & digit -

a fájlleíró- számjegyet az n fájlleírót vagy a szabványos kimenetet (fájlleíró 1) mozgatja, ha n nincs megadva.

Fájlleírók megnyitása olvasáshoz és íráshoz

Az átirányítási szolgáltató

[ n ] <> szót

okozza azt a fájlt, amelynek neve a szó kiterjesztése mind az olvasási és írási célra az n fájlleíróban, akár a 0 fájlleíróban, ha n nincs megadva. Ha a fájl nem létezik, létrejön.

ALIASES

Az álnevek lehetővé teszik, hogy egy sztring helyettesítsen egy szót, amikor egy egyszerű parancs első szójaként használják. A shell fenntartja az álnevek listáját, amelyeket az alias és az unalias beépített parancsok segítségével állíthat be és törölhet (lásd a SHELL BUILTIN COMMAND-ot ). Az egyes parancsok első szója, ha nincs megadva, ellenőrizzük, hogy van-e álnév. Ha igen, ezt a szót helyettesíti az alias szövege. Az álnev és a helyettesítő szöveg tartalmazhat bármilyen érvényes shell bemenetet, beleértve a fent felsorolt metakaraktereket is , azzal a kivétellel, hogy az alias neve nem tartalmazhat = . A helyettesítő szöveg első szavát alias-okra tesztelik, de egy szó, amely megegyezik egy alias bővítéssel, nem bővül másodszor. Ez azt jelenti, hogy az alias például ls -F , és a bash nem próbálja rekurzívan bontani a helyettesítő szöveget. Ha az alias érték utolsó karaktere üres , akkor az alias utáni következő parancs szót is ellenőrzi az alias bővítéshez.

Az álnevek létrehozása és felsorolása az alias paranccsal történik, és az unalias paranccsal eltávolítva.

Nincs olyan mechanizmus, amely argumentumokat használ a helyettesítési szövegben. Ha érvekre van szükség, egy shell függvényt kell használni (lásd az alábbi FUNKCIÓkat ).

Az álnevek nem bővülnek, ha a shell nem interaktív, hacsak a expand_aliases shell opciót nem állítja be a shopt (lásd az SHTT leírását a SHELL BUILTIN COMMAND alatt).

Az álnevek meghatározására és használatára vonatkozó szabályok kissé zavaróak. A Bash mindig legalább egy teljes bemeneti sort olvas, mielőtt végrehajtaná az adott sor egyik parancsát. Az álnevek kiterjesztésre kerülnek, amikor egy parancsot elolvasnak, nem pedig végrehajtásakor. Ezért egy ugyanazon a vonalon megjelenő aliasdefiníció, mint egy másik parancs, csak akkor lép hatályba, ha a következő beviteli sort elolvassa. Az új alias nem érinti az alias-definíciót követő parancsokat. Ez a viselkedés a funkciók végrehajtásakor is problémát jelent. Az álnevek akkor bővülnek, ha egy függvénydefiníciót olvasnak, nem pedig a függvény végrehajtása során, mert egy függvénydefiníció önmagában összetett parancs. Ennek következtében a funkcióban definiált álnevek csak a funkció végrehajtását követően állnak rendelkezésre. Ahhoz, hogy biztonságban legyen, mindig helyezze el az alias definíciókat egy külön sorra, és ne használjon álnevet az összetett parancsokban.

Szinte minden célra az aliasokat a shell függvények felülbírálják.

FUNKCIÓK

A SHELL GRAMMAR alatt leírt shell függvény parancssorozatot tárol a későbbi végrehajtáshoz. Ha a shell függvény nevét egyszerű parancsnévként használják, akkor az adott függvénynévvel társított parancsok listája végrehajtásra kerül. A függvények az aktuális héj függvényében futnak; nincs új folyamat létrehozva ezek értelmezéséhez (ellentétben ez egy parancsfájl végrehajtásával). Amikor egy függvény végrehajtásra kerül, akkor a függvény paraméterei a végrehajtás során a pozícióparaméterekké válnak. A # speciális paraméter frissítve változik. A 0 pozicionálási paraméter nem változik. A FUNCNAME változó a függvény végrehajtásakor a függvény neve. A shell-végrehajtási környezet minden más vonatkozása azonos a funkció és a hívó között, azzal a kivétellel, hogy a DEBUG csapda (lásd a SHELL BUILTIN COMMAND-ok alatt beépített csapda leírását) nem örökli, hacsak a függvény nem kapott nyomkövetési attribútumot lásd alább a beépített nyilatkozat leírását).

A funkcióhoz helyi változók deklarálhatók a helyi beépített paranccsal. Rendszerint a változók és azok értékei a funkció és a hívó között oszlanak meg.

Ha a beépített parancs- visszatérés egy függvényben történik, akkor a függvény befejeződik és a végrehajtás a függvényhívás után a következő paranccsal folytatódik. Amikor egy függvény befejeződik, a pozícióparaméterek és a # speciális paraméter értékei visszaállnak azoknak az értékeknek, amelyek a függvény végrehajtása előtt voltak.

A funkcionális nevek és definíciók felsorolhatók a -f opcióval a beépített parancsok deklarálására vagy szétosztására . A -F deklaráció vagy betűtípus megadása csak a funkcióneveket fogja felsorolni. A függvények exportálhatók úgy, hogy a subshellek automatikusan a beépített exportálás- f opcióval definiálják őket.

A funkciók lehetnek rekurzívak. Nincs korlátozás a rekurzív hívások számára.

ARITHMETIKÁLIS ÉRTÉKELÉS

A shell lehetővé teszi a számtani kifejezések értékelését bizonyos körülmények között (lásd a beépített parancsot és az aritmetikai bővítést ). Az értékelés fix szélességű egészekben történik, a túlcsordulás ellenõrzése nélkül, bár a 0-os megosztás csapdába esik, és hibaként megjelölve. A szereplők és azok elsőbbsége és asszociativitása ugyanaz, mint a C nyelvben. Az operátorok következő listája az egyenlőségű üzemeltetők szintjére van csoportosítva. A szintek a csökkenő elsőbbségi sorrend szerint vannak felsorolva.

id ++ id -

változó utólagos növekedés és utáni csökkenés

++ id - id

változó elő-növekmény és előcsökkentés

- +

unáris mínusz és plusz

! ~

logikai és bitwise negáció

**

hatványozás

* /%

szorzás, osztás, maradék

+ -

emellett kivonás

<< >>

a bal és a jobb oldali bitváltások

<=> = <>

összehasonlítás

==! =

egyenlőség és egyenlőtlenség

&

bitenként AND

^

bitwise exkluzív VAGY

|

bitre VAGY

&&

logikai AND

||

logikai VAGY

expr ? expr : expr

feltételes értékelés

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

feladat

expr1 , expr2

vessző

Shell változók operandusként megengedettek; paraméterkibocsátást a kifejezés kiértékelése előtt végezzük. Egy kifejezésen belül a shell változók is nevezhetők hivatkozással a paraméterterjedési szintaxis használata nélkül. A változó értékét aritmetikai kifejezésként értékeljük, ha hivatkozás történik. A shell változónak nem kell megadnia az egész attribútumot, amelyet bekapcsolva használnak egy kifejezésben.

A 0-os konstansokat oktális számként értelmezik. A vezető 0x vagy 0X hexadecimális. Ellenkező esetben a számok az [ alap # ] n formátumúak, ahol a bázis a számtani alapot képviselő 2 és 64 közötti decimális szám, és n az adott bázisban lévő szám. Ha a bázist elhagyjuk, akkor a 10-es bázist használjuk. A 9-nél nagyobb számjegyeket a kisbetűk, a nagybetűk, a @ és a _ jelek ebben a sorrendben jelzik. Ha a bázis kisebb vagy egyenlő 36-mal, a kisbetűs és nagybetűket egymásnak alternatív módon lehet használni a 10 és 35 közötti számok képviseletére.

Az üzemeltetőket az elsőbbségi sorrend szerint értékelik. A zárójelben lévő al-kifejezéseket először értékelik, és felülírhatják a fenti precedens szabályokat.

FELTÉTELES KIFEJEZÉSEK

A feltételes kifejezéseket a [[ parancs és a teszt [ parancsok és [ beépített parancsok használják a fájl attribútumok tesztelésére, valamint a karakterláncok és aritmetikai összehasonlítások használatára]. A kifejezések az alábbi unáris vagy bináris primerekből származnak. Ha az egyik primerre vonatkozó fájl argumentum a / dev / fd / n formában van , akkor az n fájlleírást ellenőrzi. Ha az egyik elsődleges állomány argumentuma az / dev / stdin , a / dev / stdout vagy a / dev / stderr egyik , a 0., a 1. vagy a 2. fájlleírást ellenőrzi.

-a fájl

Igaz, ha a fájl létezik.

-b fájl

Igaz, ha a fájl létezik, és blokk speciális fájl.

-c fájl

Igaz, ha a fájl létezik, és egy karakteres speciális fájl.

-d fájl

Igaz, ha a fájl létezik, és egy könyvtár.

-e fájlt

Igaz, ha a fájl létezik.

-f fájl

Igaz, ha a fájl létezik, és rendszeres fájl.

-g fájl

Igaz, ha a fájl létezik és a set-group-id.

-h fájlt

Igaz, ha a fájl létezik és szimbolikus link.

-k fájlt

Igaz, ha a fájl létezik, és a "ragacsos" bit be van állítva.

-p fájlt

Igaz, ha a fájl létezik, és nevű cső (FIFO).

-r fájl

Igaz, ha a fájl létezik és olvasható.

-s fájl

Igaz, ha a fájl létezik, és nagyobb, mint nulla.

-t fd

Igaz, ha a fájlleíró fd nyitva van, és egy terminálra utal.

-u fájl

Igaz, ha a fájl létezik, és set-user-id bitje van beállítva.

-w fájl

Igaz, ha a fájl létezik és írható.

-x fájl

Igaz, ha a fájl létezik és végrehajtható.

-O fájl

Igaz, ha a fájl létezik, és tulajdonosa a hatékony felhasználói azonosítónak.

-G fájlt

Igaz, ha a fájl létezik, és a tényleges csoportazonosító tulajdonában van.

-L fájl

Igaz, ha a fájl létezik és szimbolikus link.

-S fájl

Igaz, ha a fájl létezik, és egy aljzat.

-N fájl

Igaz, ha a fájl létezik, és az utolsó olvasás óta módosítva lett.

file1 - nt fájl2

Igaz, ha a file1 újabb (a módosítási dátum szerint), mint a file2 , vagy ha a fájl1 létezik, és a file2 nem.

file1 - ot fájl2

Igaz, ha a fájl1 régebbi a file2- nél, vagy ha a fájl2 létezik, és a file1 nem.

file1 -ef fájl2

Igaz, ha a fájl1 és a fájl2 azonos eszközre és inódszámra utal.

-o optname

Igaz, ha a shell opcióoptname engedélyezve van. Lásd az alábbi opciókat a -o opció leírása alatt a beépített készlethez .

-z karakterlánc

Igaz, ha a hossza nulla.

-n karakterlánc

húr

Igaz, ha a hossza nem nulla.

string1 == string2

Igaz, ha a húr egyenlő. = a szigorú POSIX megfelelés helyett == használható.

string1 ! = string2

Igaz, ha a húr nem egyenlő.

string1 < string2

Igaz, ha a string1 a string2 előtt lexicográf módon sorolja be az aktuális helyben.

string1 > string2

Igaz, ha a string1 a string2 után lerakografikusan rendeződik az aktuális helyben.

arg1 OP arg2

Az OP az -eq , -ne , -lt , -le , -gt vagy -ge egyike. Ezek az aritmetikai bináris operátorok igaznak bizonyulnak, ha az arg1 egyenlő, nem egyenlő, kisebb, kisebb vagy egyenlő, nagyobb, vagy nagyobb vagy egyenlő az arg2-val . Arg1 és arg2 lehet pozitív vagy negatív egész szám.

EGYSZERŰ KEZELÉSI KIADÁS

Egy egyszerű parancs végrehajtásakor a shell a következő bővítményeket, feladatokat és átirányításokat hajtja végre balról jobbra.

1.

Az elemzőnek a változó hozzárendelésként megjelölt szavakat (a parancsnév előttiek) és a átirányításokat a későbbi feldolgozáshoz mentették.

2.

A nem változtatható hozzárendelések vagy átirányítások szavak bővülnek. Ha a bõvítés után még egy szó marad, akkor az elsõ szó a parancs neve, és a fennmaradó szavak az argumentumok.

3.

Az átirányításokat a REDIRECTION alatt leírtak szerint végezzük.

4.

A változó hozzárendelés után = = a tilde kiterjesztése, a paraméterek bővítése, a parancsok helyettesítése, számtani kiterjesztés és az idézet eltávolítása a változóhoz való hozzárendelés előtt történik.

Ha nincs parancsnév, akkor a változó hozzárendelések befolyásolják az aktuális shell környezetet. Ellenkező esetben a változók hozzáadódnak a végrehajtott parancs környezetéhez, és nem befolyásolják az aktuális shell környezetet. Ha bármelyik hozzárendelés megkísérli értéket hozzárendelni egy csak olvasható változóhoz, hiba lép fel, és a parancs nem nulla állapotú.

Ha nincs parancsnév, átirányításokat végeznek, de nem befolyásolják az aktuális shell környezetet. Az átirányítási hiba azt eredményezi, hogy a parancs kilép a nem nulla állapotból.

Ha van egy parancsnév a bővítés után, a végrehajtás az alábbiak szerint történik. Ellenkező esetben a parancs kilép. Ha az egyik kiterjesztés tartalmaz egy parancscserét, a parancs kilépési állapota az utolsó végrehajtott parancscserék kilépési állapota. Ha nem volt parancscsere, akkor a parancs nulla állapotú.

A parancs végrehajtása

Miután parancsot osztottak szét, ha egy egyszerű parancsot és egy opcionális argumentumlistát eredményez, a következő műveleteket veszi.

Ha a parancsnév nem tartalmaz csíkokat, a shell megpróbálja megtalálni. Ha egy névvel rendelkezik egy shell függvény, akkor a függvény a FUNKCIÓKban leírtak szerint történik. Ha a név nem egyezik a függvénykel, akkor a shell megkeresi a beépített shellek listáját. Ha egy találatot talál, akkor a beépített meghívást kapja.

Ha a név sem shell-függvény, sem beépített, és nem tartalmaz csíkokat, a bash a PATH minden egyes elemét lekérdezi egy könyvtárhoz, amely egy futtatható fájlt tartalmazó névvel rendelkezik. A Bash hash táblát használ, hogy emlékezzen a végrehajtható fájlok teljes elérési útjára (lásd alább a SHELL BUILTIN COMMAND parancs alatt). A PATH könyvtárainak teljes keresése csak akkor történik, ha a parancs a hash táblában nem található meg. Ha a keresés sikertelen, a héj hibaüzenetet nyomtat és 127-es kilépési állapotot ad vissza.

Ha a keresés sikeres, vagy ha a parancsnév egy vagy több perjelet tartalmaz, a shell végrehajtja a megnevezett programot egy különálló végrehajtási környezetben. A 0. argumentum a megadott névre van állítva, és a parancs többi érve a megadott argumentumokra van beállítva, ha van ilyen.

Ha ez a végrehajtás sikertelen, mert a fájl nem végrehajtható formátumban van, és a fájl nem könyvtár, akkor azt héj-parancsfájlnak , héjparancsokat tartalmazó fájlnak kell tekinteni. Egy alsó aljzat létrejön annak végrehajtásához. Ez a subshell újból inicializálja magát, így a hatás olyan, mintha egy új parancsértelmezőt használtak volna a parancsfájl kezelésére, azzal a kivétellel, hogy a szülő által megjegyzett parancsok helyét (lásd a SHELL BUILTIN COMMANDS alatti hash-t ) a gyermek megőrzi.

Ha a program egy fájl, amely # -val kezdődik ! , az első sor többi része meghatároz egy tolmácsot a program számára. A shell végrehajtja a megadott tolmácsot olyan operációs rendszereken, amelyek maguk nem kezelik ezt a végrehajtható formátumot. A tolmács érvei a program első sorában található tolmácsnév után egy opcionális argumentumot tartalmaznak, majd a program neve, majd a parancs argumentumai, ha vannak ilyenek.

KEZELÉSI KUTATÁSI KÖRNYEZET

A héj végrehajtási környezetet tartalmaz , amely a következőkből áll:

*

nyitott fájlokat, amelyeket a héj örököltet az invokációban, ahogyan a végrehajtott beépített átirányítások módosítják

*

az aktuális munkakönyvtárat, amelyet cd , pushd vagy popd állít be , vagy a héj örökölte az invokációban

*

az umask által létrehozott vagy a shell szülőjéből öröklődő fájl-létrehozási maszk

*

csapdák által beállított jelenlegi csapdák

*

héjparaméterek, amelyeket változó hozzárendeléssel vagy a halmaz szülőjével a környezetben beállított vagy örökölt

*

shell függvények a végrehajtás során, vagy öröklődnek a shell szülőjétől a környezetben

*

opciók engedélyezve az invokációban (akár alapértelmezés szerint, akár parancssori érvekkel) vagy készletenként

*

opciók által engedélyezett

*

alias-val definiált shell aliases

*

különböző folyamatazonosítót, beleértve a háttérben végzett munkákat, a $$ értéket és a $ PPID értékét

Ha egy egyszerű parancsot, mint egy beépített vagy shell függvényt kell végrehajtani, egy különálló végrehajtási környezetben hívja fel a következőket. Hacsak másképpen nem jelezzük, az értékek öröklődnek a héjból.

*

a shell nyitott fájlai, valamint a parancs átirányításai által megadott módosítások és kiegészítések

*

az aktuális munkakönyvtár

*

a fájl létrehozása maszk

*

az exportra kijelölt shell változók, valamint a parancsra exportált változók, a környezetben átadottak

*

a héj által fogott csapdák visszaállnak az örökölt értékekből a shell szülőjéből, és a shell által figyelmen kívül hagyott csapdákat figyelmen kívül hagyják

Az ebben a különálló környezetben meghívott parancs nem érinti a shell végrehajtási környezetét.

A parancs helyettesítését és az aszinkron parancsokat egy olyan alsó környezetben hívják meg, amely a shell környezet másolatát jelenti, kivéve, hogy a shell által fogott csapdák visszaállnak azokhoz az értékekhez, amelyeket a shell a szülőjétől meghíváskor örökölte. A beépített parancsokat, amelyek egy csővezeték részeként hivatkoznak, szintén végrehajtásra kerülnek alsó környezetben. A subshell környezetben végzett módosítások nem befolyásolhatják a shell végrehajtási környezetét.

Ha egy parancsot a & és a munka vezérlése nem aktív, a parancs alapértelmezett szabványos bemenete az / dev / null üres fájl. Ellenkező esetben az invokált parancs örökli a hívóhéj fájlliságait, ahogy azt átirányításokkal módosítják.

LÁSD MÉG

Bash Reference Manual , Brian Fox és Chet Ramey

A Gnu Readline könyvtár , Brian Fox és Chet Ramey

A Gnu Történeti Könyvtár , Brian Fox és Chet Ramey

Hordozható operációs rendszer interfész (POSIX) 2. rész: Shell and Utilities , IEEE

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

emacs (1), vi (1)

olvasási vonal (3)