Skip to main content

Linux - Unix parancs: bash

15 Bash For Loop Examples for Linux / Unix / OS X Shell Scripting (Július 2025)

15 Bash For Loop Examples for Linux / Unix / OS X Shell Scripting (Július 2025)
Anonim

A Linux parancs Bash egySH-kompatibilis parancsnyelv-értelmező, amely parancsokat hajt végre a szabványos bemenetről vagy egy fájlból.Bash szintén hasznos jellemzőket tartalmaz a Korn és C kagylókból (ksh éscsh).

Bash beállítások

Amellett, hogy az egykarakteres shell opciók dokumentált a leírás akészlet beépített parancs,bash értelmezi az alábbi opciókat, amikor meghívják őket:

  • -c húr: Ha a-c opció jelen van, majd a parancsok olvashatók húr . Ha vannak érvek a húr , ezek a pozícióparaméterekhez vannak hozzárendelve, kezdve a$0.
  • -én: Ha a-én lehetőség van jelen, a shell interaktív .
  • -l: csinálbash úgy működik, mintha bejelentkezési héjként lenne meghívva.
  • -r: Ha a-r opció jelen van, a shell lesz korlátozott.
  • -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 kettős idézett sorok listája, amelyeket előz meg$ a szabványos kimenetre nyomtatódik. Ezek azok a karakterláncok, amelyekre a jelenlegi nyelv nem tartozik a nyelvfordításnakC vagyPOSIX. Ez azt jelenti,n választási lehetőség; semmilyen parancs nem kerül végrehajtásra.
  • - + O shopt_option : shopt_option az egyik elfogadott shell opcióShopT beépített. Ha shopt_option jelen van,-O beállítja az opció értékét, és+ O felszívja. Ha shopt_option nincs megadva, a shell által elfogadott nevek és értékekShopT 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ófeldolgozást. Minden érv a-- fájlnevek és érvek. Egy érv- egyenértékű--.

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 felismeri:

  • --dump-po-húrok: Egyenértékű-D, de a kimenet a GNU-ban található gettext po (hordozható objektum) fájlformátumot.
  • --dump-húrok: Egyenértékű-D.
  • --Segítség: Használati üzenet megjelenítése a szabványos kimeneten és kilépés
  • --init-fájl: fájl és --rcfile fájl : Parancsok végrehajtása fájl a szokásos személyi inicializáló fájl helyett ~ / .Bashrc ha a héj interaktív.
  • --Belépés: Egyenértékű-l.
  • --noediting: Ne használja a GNU-treadline könyvtárat, hogy olvassa el a parancssorokat, amikor a héj interaktív.
  • --noprofile: Ne olvassa el a rendszeres indítási fájlt / Etc / profile vagy bármelyik személyes inicializálási fájlt ~ / .Bash_profile , ~ / .Bash_login , vagy ~ / .Profile . Alapértelmezés szerint,bash olvassa ezeket a fájlokat, amikor bejelentkezési héjként hívja fel.
  • --norc: Ne olvassa el és hajtsa végre a személyes inicializáló fájlt ~ / .Bashrc ha a héj interaktív. Ez a beállítás alapértelmezés szerint be van kapcsolva, ha a shell meghívásra kerülSH.
  • --posix: Megváltoztatja abash ahol az alapértelmezett művelet különbözik a POSIX szabványtól, hogy megfeleljen a szabványnak ( posix módban ).
  • --korlátozott: A héj korlátozva lesz.
  • --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.
  • --bőbeszédű: Egyenértékű-v.
  • --változat: A verzió információinak megjelenítése a következő példányban:bash a szabványos kimeneten és a kimeneten.

érvek

Ha az argumentumok az opciófeldolgozás után maradnak, és sem a-c sem a-s opciót, az első argumentumot héjparancsokat tartalmazó fájl neve jelenti. Ha bash ilyen módon hivatkoznak,$0 van beállítva a fájl nevére, és a pozícióparaméterek a többi argumentumra vannak állítva.Bash elolvassa és végrehajtja a parancsokat ebből a fájlból; majd kilép.Bashkilé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 megkeresi a könyvtárakatPÁLYA a forgatókönyvhöz.

könyörgés

A bejelentkezési shell az egyik, amelynek első zavaró karaktere a-, vagy az egyik a--Belépés választási lehetőség.

egy interaktív a shell nem opcionális argumentumok nélkül indult, és nem-c opció, amely szabványos bemenete és kimenete mindkettő a terminálokhoz kapcsolódik isatty (3), vagy az egyiket a-én választási lehetőség.PS1 be van állítva és $- magában foglalja, ha a bash interaktív, lehetővé téve a shell parancsfájl vagy indítófájl tesztelését.

A következő bekezdések leírják, hogyanbash végrehajtja az indító fájlokat. Ha a fájlok bármelyike ​​létezik, de nem olvasható,bash hibát jelez. A Tildes kiterjesztése a fájlnevekben a Tilde Expansionben leírtak szerint történik.

Amikorbash interaktív bejelentkezési héjként vagy nem interaktív shellként hívja a--Belépés opciót először elolvassa és végrehajtja a parancsokat a fájlból / Etc / profile , ha létezik ilyen fájl. A fájl olvasása után keres ~ / .Bash_profile , ~ / .Bash_login , és ~ / .Profile , ebben a sorrendben, és elolvassa és végrehajtja az elsőtől elvárható és olvasható parancsokat. A--noprofile opció akkor használható, amikor a héj megakadályozza ezt a viselkedést.

Amikor egy bejelentkező shell kilép,bash olvas és végrehajt parancsokat a fájlból ~ / .Bash_logout , ha létezik.

Ha egy indító héj nélküli interaktív shell nem indul el,bash parancsot olvas és végrehajt ~ / .Bashrc , ha létezik ilyen fájl. Ezt gátolhatja a--norc választási lehetőség. A--rcfile fájl lehetőség érvényesülbash parancsok olvasása és végrehajtása fájl ahelyett ~ / .Bashrc .

Amikorbash nem interaktív módon indul - például egy shell parancsfájl futtatásához - megkeresi a változótBASH_ENV a környezetben kiterjeszti az értékét, ha ott megjelenik, és a kiterjesztett értéket használja a fájl nevének olvasásához és végrehajtásához.Bash úgy viselkedik, mintha a következő parancsot végrehajtanák:

ha -n "$ BASH_ENV"; azután . "$ BASH_ENV"; fi

de az értékePÁLYA változó nem használható a fájlnév megkereséséhez.

Habash hívják a névvelSH, megpróbálja utánozni a történelmi verziók indítási viselkedésétSH amennyire csak lehetséges, miközben megfelelnek a POSIX szabványnak is. Ha interaktív bejelentkezési shellként vagy nem interaktív shellként hívja a--Belépés opciót, először megpróbál parancsokat olvasni és végrehajtani / Etc / profile és ~ / .Profile , abban a sorrendben. A--noprofile opció használható a viselkedés gátlására. Ha interaktív héjként hívják fel a nevet SH, bash a változót keresiENV, 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 shell meghívottSH nem próbál meg olvasni és végrehajtani parancsokat más indító fájlok, a--rcfile opció nincs hatással. Nem nevesített interaktív shellSH nem próbál meg olvasni más indító fájlokat. Amikor meghívjákSH, bash belép posix módot az indítási fájlok olvasása után.

Amikorbash kezdődik posix mint a--posix parancssori opció, a POSIX szabványnak megfelelően indul el az indító fájloknál. Ebben a módban az interaktív héj bővíti aENV változó és parancsok olvashatók és hajtanak végre a fájlból, amelynek neve a kibővített érték. Nincs más indítási fájl olvasva.

Bash megpróbálja meghatározni, hogy a távoli shell démon mikor fut rshd . Ha bash meghatározza, hogy fut rshd , parancsot olvas és végrehajt ~ / .Bashrc , ha a fájl létezik és olvasható. Ezt nem fogja megtenni, ha meghívjákSH. A--norc lehetőség használható az ilyen viselkedés gátlására, és a--rcfile opció használható egy másik fájl olvasásához, de rshd általában nem hívja fel a shell-t ezekkel a beállításokkal, vagy engedélyezi azok megadását.

Ha a shell a tényleges felhasználó (csoport) azonosítóval kezdődik, 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 funkciók nem öröklődnek a környezetből, aSHELLOPTS 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ót az invokációban adják meg, az indítási magatartás ugyanaz, de a tényleges felhasználói azonosító nincs visszaállítva.

Definíciók

A jelen dokumentum többi részében a következő fogalommeghatározások használatosak:

  • Üres: Szóköz vagy lap.
  • Szó: A shell által egyetlen egységként tekintett karakterek sorozata. Szintén a jelképes.
  • Név: A szó amely csak alfanumerikus karakterekből és aláhúzásokból áll, és alfabetikus karakterből vagy aláhúzásból áll. Más névenazonosító.
  • metakarakter: Olyan karakter, amely, ha nincs megadva, elválasztja a szavakat. Az alábbiak egyike:| &; () <> szóköz
  • Ellenőrző: A jelképes amely ellenőrzési funkciót végez. Ez az alábbi szimbólumok egyike: || & && ; ;; ( ) |

Fenntartott szavak

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ő mondata vagy egy harmadik szóügyvagymert parancs:

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

Shell Grammar: egyszerű parancsok

A egyszerű parancs az opcionális változó hozzárendelések sorozata, amelyet követiüres- szétválasztott szavak és átirányítások és a vezérlő . 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.

A visszatérési értéke a egyszerű parancs a kilépési állapot, vagy 128+ n ha a parancs jelet vesz fel n .

csővezetékek

A csővezeték a karakterrel elválasztott egy vagy több parancs sorozata|. A csővezeték formátuma idő -p ! parancs | command2 … .

A szabványos kimenet parancs csatlakozik egy csővel a standard bemenetre command2 . Ez a kapcsolat a parancs által megadott átirányítások előtt történik.

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 aidő a lefoglalt szó előzi a csővezetéket, a végrehajtott fogyasztás és a felhasználó és a rendszer által elfogyasztott idő a csővezeték megszűnésekor jelentkezik. A-p opció megváltoztatja a kimeneti formátumot a POSIX által megadott értékre. AIDŐ FORMÁTUM változó beállítható egy olyan formátumkészletre, amely meghatározza az időzítési információk megjelenítésének módját.

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

List

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

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

Egy vagy több új vonal sorozata megjelenhet a lista helyett pontosvessző helyett parancsokat.

Ha a parancsot a vezérlő kezeli&, a shell végrehajtja a parancsot a háttér egy alsó részen. A shell nem várja meg, amíg a parancs befejeződik, és a visszatérési állapot 0; 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.

Az ellenőrző szolgáltatók&& és|| jelöli az AND listákat és az OR listákat. Az AND listának van egy űrlapja

parancs1 && command2

command2 akkor hajtódik végre, ha és csak akkor, parancs1 visszatérési érték nulla.

Az OR-listának van egy űrlapja

parancs1 || command2

command2 akkor hajtódik végre, ha és csak akkor, ha parancs1 visszatérési értéket ad ki. Az AND és az OR listák visszatérési állapota a listában végrehajtott utolsó parancs kilépési állapota.

Összetett parancsok

A összetett parancs az alábbiak egyike:

(lista) : lista végrehajtódik egy alsóbb szinten. 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 .

{list; } : lista egyszerűen végrehajtódik az aktuális shell környezetben. lista új sorral vagy pontosvesszővel kell befejezni. Ezt nevezik a csoport parancsot . A visszatérési állapot a lista . Ne feledje, hogy ellentétben a metakarakterekkel( és), { és} vannak foglalt szavak és akkor kell előfordulnia, ha a fenntartott szót el lehet ismerni. Mivel ezek nem okoznak szócsést, el kell különíteni őket lista a fehértől.

((kifejezés)) : A kifejezés az alábbiakban leírt szabályok szerint értékelik Aritmetikai értékelés. 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 megegyezikenged ' kifejezés '.

kifejezés : Állítsa be a 0 vagy 1 állapotot a feltételes kifejezés értékelésétől függően kifejezés . A kifejezések az alábbiakban ismertetett algoritmusokból állnak Feltételes kifejezések. A szó felosztása és az elérési út kiterjesztése nem történik meg a és; 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 az== és!= a piaci szereplőket használják, a kezelő jobb oldalán lévő karakterlánc minta, amelyet az alábbiakban leírt szabályok szerint illesztünkMintázat illesztés. 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): értéket ad vissza kifejezés . Ezt használhatjuk az operátorok normális elsőbbségének felülbírálására.
  • ! expressio N: Igaz, ha kifejezés hamis.
  • kifejezés1 && kifejezés2 : Igaz, ha mindkettő kifejezés1 és kifejezés2 igazak.
  • kifejezés1 || kifejezés2 : Igaz, ha kifejezés1 vagy kifejezés2 igaz.

A&& és|| a piaci szereplők nem értékelik kifejezés2 ha a kifejezés1 elegendő a teljes feltételes kifejezés visszatérési értékének meghatározásához.

  • mert név ban ben szó ; csinál lista ; Kész: A következő szavak listájaban ben bővítésre kerül, létrehozva a tételek listáját. A változó név a lista minden egyes elemére sor kerül, és lista minden alkalommal végrehajtódik. Ha aban ben szó hiányzik, amert parancs végrehajtása lista minden beállított pozícióparamétert egyszer. A visszatérési állapot az utolsó végrehajtandó parancs kilépési állapota. Ha a következő tételek bővítéseban ben üres listát eredményez, nincs parancs, és a visszatérési állapot 0.
  • mert (( kif1 ; kif2 ; kif3 )) ; csinál lista ; Kész: Először is a számtani kifejezés kif1 az alábbiakban leírt szabályok szerint értékelikAritmetikai értékelés. A számtani kifejezés kif2 ezután ismételten kiértékeljük, amíg nullára nem kerül. Minden alkalommal kif2 értéket nem nulla értékre értékel, lista és a számtani kifejezést kif3 értékelik. Ha bármelyik kifejezést elhagyjuk, úgy viselkedünk, mintha értéket adna 1. A visszatérési érték az utolsó parancs kilépési státusa lista ez végrehajtásra kerül, vagy hamis, ha bármely kifejezés érvénytelen.
  • választ név ban ben szó ; csinál lista ; Kész: A következő szavak listájaban ben bővítésre kerü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 aban ben szó a pozícióparamétereket kinyomtatják. A PS3 ezután megjelenik a prompt, és egy sor olvasható le a standard bemenetről. Ha a vonal a megjelenített szavak valamelyikének megfelelő számból áll, akkor a név van beállítva erre a szóra. 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 olvasható név be kell állítani nulla értékre. A sort elolvassa a változóVÁLASZ. A lista minden kiválasztás után végrehajtódik, amíg aszünet parancs végrehajtásra kerül. A kilépés helyeválaszt az utolsó végrehajtott parancs kilépési állapota lista , vagy nulla, ha nincsenek parancsok végrehajtva.
  • ügy szó ban ben ( minta | minta : Aügy parancs elsőként bővül szó , és megpróbálja összeilleszteni mindegyikével minta viszont ugyanazokat az illeszkedési szabályokat használja, mint a pályamenet bővítéséhez. Ha talál egy mérkőzést, 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 ez az utolsó végrehajtott parancs kilépési állapota lista .
  • ha lista ; azután lista; és elif lista ; azután lista ; … más lista ; fi: Aha lista végrehajtásra kerül. Ha kilépési állapota nulla, akkor aazután lista végrehajtásra kerül. Ellenkező esetben minden elif lista és a kilépési állapot nulla, a megfelelőazután lista végrehajtódik és a parancs befejeződik. Ellenkező esetben amás lista végrehajtódik, ha van. A kilépési állapot az utolsó végrehajtott parancs kilépési állapota vagy nulla, ha egyik feltétel sem igaz.
  • míg lista ; csinál lista ; Kész és amíg lista ; csinál lista ; Kész: Amíg parancs folyamatosan végrehajtja acsinál lista mindaddig, amíg az utolsó parancsot lista visszatérési érték nulla. Aamíg parancs ugyanaz, mint amíg parancsot, kivéve, ha a tesztet elutasítják; acsinál lista amíg az utolsó parancs be nem fejeződik lista visszatérési értéket ad ki. A rendszer kilépési állapotamíg ésamíg parancsok az utolsó kilépési állapotacsinál lista végrehajtott parancs, vagy nulla, ha nem hajtották végre.
  • funkció név () { lista ; }: Ez egy megadott függvényt definiál név . A test a funkció a lista a {és} parancsok között. Ez a lista mindig végrehajtásra kerül név egy egyszerű parancs neve. Egy függvény kilépési állapota az utolsó végrehajtott parancs kilépési állapota a testben.

Hozzászólások

Nem interaktív héjban vagy interaktív héjban, amelyben a interactive_comments opció aShopT beépített engedélyezve van, egy szó kezdõdik# ez a szó figyelmen kívül hagyja az adott sor szóját és az összes többi karaktert. Interaktív héj nélkülinteractive_comments opció engedélyezve nem teszi lehetővé a megjegyzéseket. A interactive_comments opció alapértelmezés szerint be van kapcsolva az interaktív héjban.

idézve

idézve az egyes karakterek vagy szavak speciális jelentéseinek eltávolítására szolgál. 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.

Mindegyik metakaraktereket fent felsoroltDefiníciók különös jelentéssel bír a héjhoz, és kell idézni, ha önmagát képviseli.

Amikor a parancstörténeti bővítési lehetőségeket használják, a történelem bővítése karakter, általában!, 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 , egyes idézetek és kettős idézetek.

Egy nem idézett visszalépés () az a menekülési karakter . Ez megőrzi a következő karakter karakteres értékét, amely a következő kivételével megmarad . Ha egy pár jelenik meg, és a backslash nem önmagában idézett, a vonal folytatásaként kezeljük (azaz eltávolítjuk a bemeneti adatfolyamból és hatékonyan figyelmen kívül hagyjuk).

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őjelekkel ellátott karakterek befoglalása megőrzi az idézőjelek összes karakterének szó szerinti értékét, kivéve a$, ', és. A karakterek$ és' megtartják sajátos jelentését a kettős idézőjelek között. A backslash megtartja sajátos jelentését csak akkor, ha az alábbi karakterek valamelyike ​​követi:$, ', ', , 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@ A kettős idézőjeleknél különös jelentéssel bírnak.

Az űrlap szavai$' húr "speciálisan kezelik. A szó kibővül húr , az ANSI C szabvány által meghatározott helyettesítő rejtett karakterekkel. A backslash escape szekvenciák, ha jelen vannak, dekódolják az alábbiak szerint:

  • a: riasztás (harang)
  • b: backspace
  • e: escape karakter
  • f: formanyomtatvány
  • n: új sor
  • r: kocsi vissza
  • t: vízszintes fül
  • v: függőleges lap
  • \: backslash
  • ': Egyetlen idézet
  • nnn : a nyolcbites karakter, amelynek értéke az oktális érték nnn (egy-három számjegy)
  • x HH : a nyolcbites karakter, amelynek értéke a hexadecimális érték HH (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 kettős idézett karakterlánc, amelyet egy dollárjel előz meg ($) okozza a sztring lefordítását az aktuális helynek megfelelően. Ha az aktuális helyC vagyPOSIX, a dollárjelet figyelmen kívül hagyják. Ha a karakterláncot lefordították és kicserélték, a csere dupla idézőjelű.

paraméterek

A paraméter egy olyan entitás, amely értékeket tárol. Ez lehet a név , egy számot, vagy az alábbiakban felsorolt ​​különleges karakterek egyikétSpeciális paraméterek. A shell céljaira: a változó egy paraméter, amelyet a név . A változó a érték és nulla vagy több attribútumok . Az attribútumok akijelent beépített parancs.

A paraméter akkor van beállítva, ha hozzárendelt egy értéket. Az null karakterlánc érvényes érték. Ha egy változó be van állítva, akkor csak ahatástalanított beépített parancs.

A változó a formanyomtatványon lehet kijelölni: név = érték

Ha érték nincs megadva, a változó null karakterláncot kap. Minden értékeket tilde kiterjesztésen, paraméteren és változó kiterjesztésen, parancs helyettesítésen, számtani kiterjesztésen és idézet eltávolításon. Ha a változónak megvanegész szám attribútum beállítva, majd érték akkor is számítási aránnyal jár, ha a $ ((…)) bővítést nem használják. A szó felosztása nem történik, kivéve a'$@' ahogy azt az alábbiakban kifejtettükSpeciális paraméterek. A pályamenet bővítése nem történik meg. Hozzárendelési utasítások is megjelenhetnek argumentumként akijelent, szedése, export, csak olvasható, és helyi beépített parancsok.

Pozícióparaméterek

A helyzeti 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 újra felhasználhatóak akészlet beépített parancs. A pozícióparamétereket nem lehet hozzárendelni a hozzárendelési utasításokhoz. A pozícióparaméterek átmenetileg cserélődnek le, amikor a shell művelet végrehajtásra kerül.

Ha egy, több mint egy számjegyből álló pozícióparamétert bővítenek, zárójelben kell elhelyezni.

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őjelek között történik, akkor egyetlen szóra bővül, amelynek értéke a paraméter első karakterével elválasztottIFS speciális változó. Ez azt jelenti, hogy "$*"egyenértékű"$1 c $2 c ", hol c az érték első karaktereIFS változó. HaIFS nincs beállítva, a paramétereket szóközök választják el egymástól. HaIFS nulla, a paraméterek 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 nincs pozicionálási paraméter,"$@"és$@bõvítsenek semmit (eltávolítottak).
  • #: 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ákkészlet beépített parancs vagy a shell által beállított parancsok, például a-én választási lehetőség.
  • $: 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.
  • !: Kiterjeszti a legutóbb végrehajtott háttér (aszinkron) folyamatazonosítót.
  • 0: Kiterjeszti a shell vagy shell script nevét. Ezt a shell inicializálására állítja be. Habash egy parancsfájllal hivatkozik,$0 van beállítva a fájl nevére. Habash kezdődik a-c lehetőség, akkor$0 az első argumentumra van állítva a végrehajtandó karakterlánc után, ha van ilyen. Ellenkező esetben a beállított fájlnévre van állítvabash, amint azt az nullázott argumentum adja.
  • _: A héj indításakor állítsa be a parancsértelmezőhöz tartozó héj vagy shell parancs abszolút fájlnevét. 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: Kiterjeszti a teljes fájlnevet, amely ezt a példányt meghívjabash.

BASH_VERSINFO: Egy readonly tömbváltozó, amelynek tagjai rendelkeznek verzióinformációkkal a következő példányban: bash. 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 változat )
  • BASH_VERSINFO 2: A tapasz szintje
  • BASH_VERSINFO 3: A build verzió
  • BASH_VERSINFO 4: A kibocsátás állapota ( beta 1, például)
  • BASH_VERSINFO 5: aMACHTYPE

BASH_VERSION: Kiterjeszti a következő példány változatát leíró karakterláncrabash.

COMP_CWORD: Egy index$ {COMP_WORDS} az aktuális kurzor pozíciót tartalmazó szó. Ez a változó csak a programozható befejezési lehetőségek által meghívott héjfunkciókban érhető el.

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.

COMP_POINT: Az aktuális kurzorpozíció indexe az aktuális parancs kezdetéhez képest. Ha az aktuális kurzor pozíciója az aktuális parancs végén van, akkor ennek a változónak az értéke megegyezik$ {# COMP_LINE}. 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.

COMP_WORDS: Az aktuális parancssori egyéni szavakból álló tömbváltozó. Ez a változó csak a programozható befejezési lehetőségek által meghívott héjfunkciókban érhető el.

DIRSTACK: A címtárcsomag aktuális tartalmát tartalmazó tömbváltozó. A könyvtárak a veremben megjelenő sorrendben jelennek megdirs beépített. A tömbváltozó tagjainak hozzárendelése használható a már a verem könyvtárainak módosításához, de apushd éspopd beépített fájlokat kell használni a könyvtárak hozzáadásához és eltávolításához. A változó hozzárendelése nem változtatja meg az aktuális könyvtárat. HaDIRSTACK nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindul.

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

FUNCNAME: A jelenleg végrehajtott shell függvény neve. Ez a változó csak akkor létezik, ha egy shell függvény fut. Hozzárendelések a következőhöz:FUNCNAME nincs hatása és hibaállapotot ad vissza. HaFUNCNAME nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindul.

CSOPORTJAI: Olyan tömbváltozó, amely tartalmazza azon csoportok listáját, amelyeknek az aktuális felhasználó tagja. Hozzárendelések a következőhöz:CSOPORTJAI nincs hatása és hibaállapotot ad vissza. HaCSOPORTJAI 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énelemlistájában szereplő előzmények száma vagy indexe. HaHISTCMD 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 olyan karakterláncot, amely egyedileg jellemzi a gép típusátbash végrehajt. Az alapértelmezett rendszerfüggő.

LINENO: Minden alkalommal, amikor ez a paraméter hivatkozik, a shell egy decimális számot helyettesít, ami az aktuális szekvenciális sorszámot (1-től kezdődően) egy szkriptben vagy függvényben ábrázolja. Ha nincs forgatókönyvben vagy funkcióban, akkor a helyettesített érték nem garantálható értelmesnek. HaLINENO 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 a rendszer típusátbash a szabványos GNU-ban fut cpu-cég-rendszer formátum. Az alapértelmezett rendszerfüggő.

OLDPWD: Az előző munkakönyvtár, amelyet aCD parancs.

OPTARG: Az utolsó opciós argumentum értéke, amelyet agetopts beépített parancs.

OPTIND: A következő argumentum indexe, amelyet agetopts beépített parancs.

OSTYPE: Automatikusan állítson be egy olyan karakterláncot, amely leírja az operációs rendszert, amelyenbash végrehajt. Az alapértelmezett rendszerfüggő.

PIPESTATUS: Egy tömbváltozó, amely tartalmazza a kilépési állapot értékek listáját a leginkább nemrégiben végrehajtott előtér csővezeték folyamataiból, amelyek csak egyetlen parancsot tartalmazhatnak.

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

PWD: Az aktuális munkakönyvtár, amelyet aCD parancs.

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ó érték hozzáadásával VÉLETLEN. HaVÉLETLEN nincs beállítva, akkor elveszíti speciális tulajdonságait, még akkor is, ha később újraindul.

VÁLASZ: Állítsa be a bemenet bemenetére, amelyet aolvas beépített parancs, ha nem érkezik érv.

SECONDS: Minden alkalommal, amikor ez a paraméter hivatkozik, a másodpercek száma a héjhívás óta. Ha hozzárendelt egy értéketSECONDS, a későbbi referenciákkal visszaadott érték a hozzárendelés és a hozzárendelt érték másodpercek száma. Ha 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 egyes szó érvényes argumentum a-o opció akészlet beépített parancs. A megjelenő lehetőségek:SHELLOPTS azok a jelentések, mint tovább általset -o. Ha ez a változó a környezetben van, mikorbash akkor a listában minden shell opció engedélyezve lesz, mielőtt elolvasta az indító fájlokat. Ez a változó csak olvasható.

SHLVL: Minden egyes alkalommal egyenként növekszik egy példánybash elindul.

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,bash hozzárendel egy alapértelmezett értéket egy változóhoz; ezeket az eseteket meg kell jegyezni.

BASH_ENV: Ha ezt a paramétert beállítja, amikorbash parancssori parancsfájlt hajt végre, az értéket úgy értelmezi, mint egy fájlnév, amely parancsokat tartalmaz a shell shell inicializálására, mint a ~ / .Bashrc . Az értéke BASH_ENV a paraméterek kiterjesztése, a parancs helyettesítése és a számtani kiterjesztés alatt áll, mielőtt fájlnévként értelmeznék.PÁLYA nem használják az eredő fájlnév keresésére.

CDPATH: A keresési útvonal aCD parancs. Ez egy kettősponttal elválasztott listája azoknak a könyvtáraknak, amelyekben a shell aCD parancs. A mintaérték ".: ~: / Usr".

OSZLOPOK: Aválaszt beépített parancs a terminálszélesség meghatározásához a kiválasztási listák nyomtatásakor. Automatikusan beállítható a SIGWINCH beérkezésekor.

COMPREPLY: Egy tömbváltozó, amelyrőlbash elolvassa a programozható befejezési eszköz által meghívott héjfunkció által létrehozott lehetséges kiegészítéseket.

FCEDIT: Az alapértelmezett szerkesztő afc beépített parancs.

FIGNORE: A fájlnév befejezésekor figyelmen kívül hagyja az utótagok listáját. A fájlnév, amelynek utótagja megegyezik a (z)FIGNORE kizárva az illesztett fájlnevek listájából. A mintaérték ".o: ~".

GLOBIGNORE: A minták megadását meghatározó minták kettősponttal elválasztott listája, amely meghatározza a fájlnevek halmazát. Ha egy fájlnév bővítési mintához illeszkedő fájlnév is megegyezik aGLOBIGNORE, az eltávolításra kerül a mérkőzések listájáról.

HISTCONTROL: Ha értékre van állítva ignorespace , vonalak, amelyek atér karakter nem szerepel a történelem listán. Ha be van állítva a ignoredups , az utolsó sáv sorának megfelelő sorokat nem adta meg. Egy érték ignoreboth kombinálja 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 az előzmények listáján tárolja, aHISTIGNORE. Ezt a változó funkcióját felülírja HISTIGNORE. A többsoros összetett parancs második és következő sorai nem kerülnek tesztelésre, és hozzáadódnak az előzményekhez, függetlenül aHISTCONTROL.

HISTFILE: Az a fájl neve, amelyben a parancs előzményei mentésre kerülnek. Az alapértelmezett érték ~ / .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ó vonalak 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ája, melyeket használnak 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 '*csatolták). Minden egyes mintát az ellenőrzések után ellenőrizni kell a vonal ellenHISTCONTROL alkalmazzák. A szokásos héjminta-illesztési karaktereken kívül a "&'megegyezik az előző sora sorában. '&'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 hozzáadódnak a történethez, függetlenül aHISTIGNORE.

HISTSIZE: A parancs-előzményekben megjegyezendő parancsok száma. Az alapértelmezett érték 500.

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

HOSTFILE: A fájl neve ugyanabban a formátumban van, mint a / Etc / hosts amelyet el kell olvasni, amikor a héjnak egy gazdagépnek kell lennie. A lehetséges gazdanév-kiegészítések listája módosítható a shell futása közben; ha az érték megváltoztatása után a következő alkalommal próbálkozik a gépnév befejezése,bash hozzáadja az új fájl tartalmát a meglévő listához. Ha HOSTFILE beállítva, de nincs értéke,bash megpróbálja olvasni / Etc / hosts hogy megkapja a lehetséges gazdanév-kiegészítések listáját. AmikorHOSTFILE nincs beállítva, a gazdanév-lista törlődik.

IFS: A Belső mezőkiválasztó kifejezést használják szóbeli felosztás után a bővítés és osztott vonalakat a szavakat aolvas beépített parancs. Az alapértelmezett érték "''.

IGNOREEOF: Beállítja az interaktív shell műveletét aEOF karaktert. Ha be van állítva, az érték az egymást követő számEOF karaktereket, amelyeket a bemeneti sor első karaktereként kell beírnibash kilép. Ha a változó létezik, de nincs numerikus érték, vagy nincs értéke, akkor az alapértelmezett érték 10. Ha nem létezik,EOF jelzi a hurok bemenetének végét.

INPUTRC: A fájlnév areadline indító fájl, felülbírálja az alapértelmezett ~ / .Inputrc .

LANG: A helyszín kategóriájának meghatározása minden olyan kategóriához, amelyet nem különítettek el egy változóval kezdődőenLC_.

LC_ALL: Ez a változó felülírja aLANG és bármely másLC_ változó megadja a helyszínkategóriát.

LC_COLLATE: Ez a változó határozza meg az ösvény-kiterjeszté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 minta-illesztés közötti sorrendet.

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ése és a mintázat illesztése között.

LC_MESSAGES: Ez a változó meghatározza a kettős idézett stringek lefordításához használt helyet, amelyet a$.

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

VONALAK: Aválaszt beépített parancs a oszlophossz meghatározásához a kiválasztási listák nyomtatásához. Automatikusan beállítható a SIGWINCH beérkezésekor.

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

MAILCHECK: Megadja, hogy milyen gyakran (másodpercben)bash 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: Az e-mailen ellenőrizendő fájlnevek kettősponttal elválasztott listája. Az üzenet, amelyet az adott fájlban érkező levelek nyomtatásakor lehet nyomtatni, a fájl nevének elválasztása 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!" "

Bash megadja az ala