Skip to main content

Linux - Unix Command: bash

Anonim

Príkaz linuxu tresnúť jesh-kompatibilný interpret príkazového jazyka, ktorý vykonáva príkazy čítané zo štandardného vstupu alebo zo súboru.tresnúť tiež obsahuje užitočné funkcie z obalov Korn a C (ksh acsh).

Bash Options

Okrem možností jednostranného znaku zdokumentovaných v popise popisusada vstavané velenie,tresnúť interpretuje nasledujúce volania, keď je vyvolané:

  • -c reťazec: Ak-c je prítomná voľba, potom sa čítajú príkazy povrázok , Ak existujú argumenty po povrázok , sú priradené k polohovým parametrom, počnúc od$0.
  • -i: Ak-i je prítomná voľba, shell je interaktívne .
  • -l: Urobiťtresnúť správať sa tak, akoby bola vyvolaná ako prihlasovací shell.
  • -r: Ak-r je prítomná možnosť, shell sa stáva obmedzené.
  • -s: Ak-s alebo ak po spracovaní voľby nezostanú žiadne argumenty, prečítajú sa príkazy zo štandardného vstupu. Táto voľba umožňuje nastavenie polohových parametrov pri vyvolaní interaktívneho shellu.
  • -D: Zoznam všetkých reťazcov s dvojitým kódom, ktorým predchádza$ je vytlačený na štandardnom výstupe. Jedná sa o reťazce, ktoré sú predmetom jazykového prekladu, keď aktuálne miestne nastavenie nie jeC aleboPOSIX, To znamená,n možnosť; nebudú vykonané žiadne príkazy.
  • - + 0 shopt_option : shopt_option je jedným z možností shell prijatýchnastavenie ShopTurn zabudovaný. ak shopt_option je prítomný,-O nastavuje hodnotu tejto možnosti a+ O Odošle ju. ak shopt_option nie je pridaná, názvy a hodnoty možností shellu akceptovanénastavenie ShopTurn sú vytlačené na štandardnom výstupe. Ak je možnosť vyvolania + O, výstup sa zobrazí vo formáte, ktorý sa môže znova použiť ako vstup.
  • --: -- signalizuje koniec možností a zakáže ďalšie spracovanie volieb. Všetky argumenty po-- sa považujú za názvy súborov a argumenty. Argument z- je ekvivalentná--.

tresnúť tiež interpretuje niekoľko možností viacerých znakov. Tieto voľby sa musia zobraziť na príkazovom riadku skôr, než budú rozpoznané jednoznakové možnosti:

  • --dump-PO-struny: Rovnocenné s-D, ale výstup je v GNU gettext PO (prenosný objekt).
  • --dump-struny: Rovnocenné s-D.
  • --Pomoc: Zobrazenie správy o používaní na štandardnom výstupe a úspešné ukončenie.
  • --init-file: súbor a --rcfile súbor : Vykonanie príkazov z súbor namiesto štandardného osobného inicializačného súboru ~ / .Bashrc ak je shell interaktívny.
  • --Prihlásiť sa: Rovnocenné s-l.
  • --noediting: Nepoužívajte GNUreadline knižnica číta príkazové riadky, keď je shell interaktívny.
  • --noprofile: Nečítajte spúšťací súbor v celom systéme / Etc / profile alebo niektorý z osobných inicializačných súborov ~ / .Bash_profile , ~ / .Bash_login , alebo ~ / .Profile , Predvolene,tresnúť číta tieto súbory, keď je vyvolaný ako prihlasovací shell.
  • --norc: Nečítajte a nevykonajte osobný inicializačný súbor ~ / .Bashrc ak je shell interaktívny. Táto možnosť je štandardne zapnutá, ak je shell vyvolaný akosh.
  • --posix: Zmeniť správanietresnúť kde sa štandardná operácia líši od štandardu POSIX tak, aby zodpovedala štandardnej ( posix režim ).
  • --restricted: Obal sa stáva obmedzený.
  • --rpm, vyžaduje: Vytvorte zoznam súborov, ktoré sú potrebné pre spúšťanie skriptu shell. To znamená "-n" a podlieha rovnakým obmedzeniam ako kontrolná kontrola chyby pri kompilácii; Základy, testy a evals nie sú analyzované, takže niektoré závislosti môžu byť vynechané.
  • --verbose: Rovnocenné s-v.
  • --version: Zobraziť informácie o verzii pre túto inštanciutresnúť na štandardnom výstupe a úspešnom ukončení.

argumenty

Ak zostávajú argumenty po spracovaní volieb a ani-c ani-s , prvý argument sa považuje za názov súboru obsahujúceho shellové príkazy. ak tresnúť je vyvolaná týmto spôsobom,$0 je nastavená na názov súboru a polohové parametre sú nastavené na zostávajúce argumenty.tresnúť číta a vykonáva príkazy z tohto súboru; potom opustí.tresnúťstav výstupu je stav ukončenia posledného príkazu vykonaného v skripte. Ak nie sú vykonané žiadne príkazy, stav ukončenia je 0. Najskôr sa vykoná pokus o otvorenie súboru v aktuálnom adresári a ak sa nenájde žiadny súbor, potom shell vyhľadá adresáre vPATH pre skript.

invokácie

prihlasovací shell je prvkom, ktorého prvým znakom argumentu nula je a-, alebo jeden začal s--Prihlásiť sa voľba.

interaktívne shell je jeden začal bez argumentov bez možnosti a bez-c možnosť, ktorej štandardný vstup a výstup sú obidva pripojené na svorky, ako je určené isatty (3), alebo jeden začal s-i voľba.PS1 je nastavené a $- zahŕňa, ak je bash interaktívny, čo umožňuje skript pre shell alebo spúšťací súbor na otestovanie tohto stavu.

Nasledujúce odstavce popisujú spôsobtresnúť spustí svoje spúšťacie súbory. Ak niektorý zo súborov existuje, ale nedá sa prečítať,tresnúť hlási chybu. Tildes sú rozšírené v názvoch súborov, ako je popísané v rozšírení Tilde.

Kedytresnúť sa volá ako interaktívny prihlasovací shell alebo ako neinteraktický shell s--Prihlásiť sa voľba, najprv prečíta a vykonáva príkazy zo súboru / Etc / profile , ak existuje tento súbor. Po prečítaní súboru to hľadá ~ / .Bash_profile , ~ / .Bash_login , a ~ / .Profile , v tomto poradí a číta a vykonáva príkazy z prvého, ktorý existuje a je čitateľný.--noprofile môže byť použitá, keď sa začne skolabovať toto správanie.

Keď sa ukončí prihlasovací shell,tresnúť číta a vykonáva príkazy zo súboru ~ / .Bash_logout , ak existuje.

Keď sa spustí interaktívny shell, ktorý nie je prihlasovací shell,tresnúť číta a vykonáva príkazy z ~ / .Bashrc , ak existuje tento súbor. Toto môže byť zablokované použitím--norc voľba.--rcfile súbor možnosť vynútiťtresnúť čítať a vykonávať príkazy z súbor namiesto ~ / .Bashrc .

Kedytresnúť je spustený neinteraktivne - napríklad spustiť shellový skript - hľadá premennúBASH_ENV v prostredí rozširuje svoju hodnotu, ak sa tam zobrazuje, a používa rozšírenú hodnotu ako názov súboru na čítanie a vykonávanie.tresnúť správa sa, ako keby bol vykonaný nasledujúci príkaz:

ak -n "$ BASH_ENV"; potom. "$ BASH_ENV"; fi

ale hodnotaPATH premenná sa nepoužíva na vyhľadanie názvu súboru.

aktresnúť je vyvolané s menomsh, snaží sa napodobňovať štartovacie správanie historických verziísh čo najdôležitejšie, pri súčasnom dodržiavaní štandardov POSIX. Keď sa vyvolá ako interaktívny prihlasovací shell alebo neinteraktický shell s--Prihlásiť sa , najprv sa pokúša čítať a vykonávať príkazy z / Etc / profile a ~ / .Profile , v tomto poradí.--noprofile možnosť zablokovať toto správanie. Keď sa vyvolá ako interaktívny shell s menom sh, tresnúť hľadá premennúENV, rozširuje svoju hodnotu, ak je definovaná a používa rozšírenú hodnotu ako názov súboru na čítanie a vykonanie. Vzhľadom na to, že shell bol vyvolaný akosh nepokúša sa čítať a vykonávať príkazy z iných spúšťacích súborov, napr--rcfile nemá žiadny účinok. Neinterakčný shell vyvolaný názvomsh nepokúša sa čítať žiadne ďalšie spúšťacie súbory. Keď sa zobrazí akosh, tresnúť vstupuje POSIX po prečítaní spúšťacích súborov.

Kedytresnúť je spustený v POSIX ako s--posix príkazového riadku, spĺňa štandard POSIX pre spúšťacie súbory. V tomto režime interaktívne škrupiny rozširujúENV premenná a príkazy sa čítajú a spúšťajú zo súboru, ktorého názov je rozšírená hodnota. Nečítajú sa žiadne ďalšie spúšťacie súbory.

tresnúť pokúša sa zistiť, kedy to beží démonom vzdialeného shell, zvyčajne rshd , ak tresnúť určuje, že sa spúšťa rshd , číta a vykonáva príkazy z ~ / .Bashrc , ak tento súbor existuje a je čitateľný. Nebude to robiť, ak je vyvolané akosh,--norc možnosť zablokovať toto správanie a--rcfile voľba môže byť použitá na nútenie ďalšieho súboru na čítanie, ale rshd vo všeobecnosti nevyvoláva shell s týmito možnosťami, alebo im umožňuje špecifikovať.

Ak je shell spustený s efektívnym ID užívateľa (group), nie je totožné s ID reálneho užívateľa (group) a-p voľba nie je dodaná, nie sú čítané žiadne spúšťacie súbory, shell funkcie nie sú zdedené z prostredia,SHELLOPTS premenná, ak sa objaví v prostredí, je ignorovaná a efektívne ID používateľa je nastavené na skutočné ID používateľa. Ak-p je pri vyvolaní dodávané, správanie pri spustení je rovnaké, ale efektívne ID používateľa nie je obnovené.

definícia

Nasledujúce definície sa používajú po zvyšok tohto dokumentu:

  • prázdny: Priestor alebo karta.
  • slovo: Sekvencia znakov považovaná za jednotku za shell. Tiež známy ako a žetón.
  • názov: slovo pozostávajúce iba z alfanumerických znakov a podčiarkov a začínajúce abecedným znakom alebo podčiarknutím. Tiež označované akoidentifikátor.
  • metaznaky: Znak, ktorý oddeľuje slová, keď je nekótovaný. Jeden z nasledujúcich spôsobov:| &; () <> miesto
  • Operátor riadenia: A žetón ktorý vykonáva kontrolnú funkciu. Je to jeden z nasledujúcich symbolov: || & && ; ;; ( ) |

Vyhradené slová

Vyhradené slová sú slová, ktoré majú špeciálny význam pre shell. Nasledujúce slová sú rozpoznané ako rezervované, keď sú nekotované a buď prvé slovo jednoduchého príkazu alebo tretie slovo apúzdroalebopre príkaz:

! prípad urobiť elif inak esac fi pre funkciu, ak vo výberu potom dovtedy, kým {} čas

Shellová gramatika: Jednoduché príkazy

jednoduchý príkaz je postupnosť voliteľných premenných priradení, za ktorými nasledujeprázdny- oddelené slová a presmerovania a ukončené a operátorom kontroly , Prvé slovo špecifikuje príkaz, ktorý sa má vykonať, a prechádza ako argument nula. Zostávajúce slová sa prenesú ako argumenty k vyvolanému príkazu.

Výnosová hodnota a jednoduchý príkaz je jeho exit status, alebo 128 + n ak príkaz ukončí signál n .

plynovody

potrubie je sekvencia jedného alebo viacerých príkazov oddelených znakom|, Formát potrubia je čas -p ! príkaz | príkaz2 … .

Štandardný výstup príkaz je pripojený potrubím na štandardný vstup príkaz2 , Toto spojenie sa vykoná pred každým presmerovaním určeným príkazom.

Ak rezervované slovo! predchádza plynovodu, výstupný stav tohto potrubia je logickým NOT stavu výstupu posledného príkazu. V opačnom prípade je stav potrubia výstupným stavom posledného príkazu. Shell čaká, aby všetky príkazy v potrubí skončili pred vrátením hodnoty.

Akčas vyhradené slovo predchádza plynovodu, uplynulý čas, ako aj užívateľský a systémový čas spotrebovaný jeho vykonaním, sú hlásené, keď sa plynovod ukončí.-p voľba zmení výstupný formát na formát špecifikovaný v POSIX.FORMÁT ČASU premenná môže byť nastavená na formátový reťazec, ktorý určuje, ako by sa mali zobrazovať informácie o časovaní.

Každý príkaz v potrubí sa spúšťa ako samostatný proces (napríklad v podsúbore).

zoznamy

zoznam je postupnosť jedného alebo viacerých potrubí oddelených jedným z prevádzkovateľov;, &, &&, alebo||, a voliteľne zakončená jedným z;, &, alebo.

Z týchto prevádzkovateľov zoznamov,&& a|| majú rovnakú prioritu, za ktorou nasleduje; a&, ktoré majú rovnakú prioritu.

V a. Sa môže objaviť sekvencia jednej alebo viacerých riadkov zoznam namiesto bodkočiarky na vymedzenie príkazov.

Ak príkaz ukončí prevádzkovateľ kontroly&, shell vykoná príkaz v priečinku pozadie v podsvete. Skopec nečaká na dokončenie príkazu a stav návratu je 0. Príkazy oddelené znakom a; sú vykonávané postupne; škrupina čaká, aby každý príkaz skončil. Stav vrátenia je stav výstupu posledného vykonaného príkazu.

Ovládaní operátori&& a|| označte AND zoznamy a OR zoznamy. Zoznam AND obsahuje formulár

Command1 && príkaz2

príkaz2 sa vykoná, ak a len ak, Command1 vráti stav výstupu nulu.

Zoznam OR má formulár

Command1 || príkaz2

príkaz2 sa vykoná, ak a len ak Command1 vráti stav nenulového výstupu. Stav návratu zoznamov AND a OR je stav výstupu posledného príkazu vykonaného v zozname.

Zložené príkazy

zložený príkaz je jeden z nasledujúcich:

(Zoznam) : zoznam sa vykoná v podsúbore. Variabilné priradenia a vstavané príkazy, ktoré ovplyvňujú prostredie prostredia shell, zostanú v platnosti po dokončení príkazu. Stav návratu je stav výstupu zoznam .

{list; } : zoznam sa jednoducho vykoná v aktuálnom prostredí prostredia. zoznam musí byť ukončený novým riadkom alebo bodkočiarkou. Toto je známe ako a skupinový príkaz , Stav návratu je stav výstupu zoznam , Všimnite si, že na rozdiel od metaznačiek( a), { a} sú rezervované slová a musí sa vyskytnúť, ak je povolené rozpoznať vyhradené slovo. Keďže nespôsobujú prestávku, musia byť oddelené zoznam podľa medzery.

((Výraz)) : The vyjadrenie sa hodnotí podľa pravidiel popísaných v časti Aritmetické hodnotenie. Ak je hodnota výrazu nenulová, stav návratu je 0; inak je stav vrátenia 1. Toto je presne zodpovedajúcenechať ' vyjadrenie '.

vyjadrenie : V závislosti od hodnotenia podmieneného výrazu vráťte stav 0 alebo 1 vyjadrenie , Výrazy sa skladajú z primárnych prvkov popísaných nižšie v časti Podmienečné výrazy. Rozdelenie slov a rozšírenie názvu cesty sa nevykonávajú na slovách medzi a; rozšírenie tildu, parametrické a variabilné rozšírenie, aritmetická expanzia, substitúcia príkazu, náhrada procesu a odstránenie citácie.

Keď== a!= používajú sa reťazec vpravo od operátora sa považuje za vzor a zodpovedá sa pravidlám opísaným v častiZhoda s modelmi, Hodnota návratnosti je 0, ak reťazec zodpovedá alebo nesúhlasí so vzorom a 1 inak. Každá časť vzoru môže byť kótovaná tak, aby nútila, aby bola porovnaná ako reťazec.

Výrazy sa môžu kombinovať pomocou nasledujúcich operátorov, ktoré sú uvedené v zostupnom poradí:

  • (výraz): Vráti hodnotu vyjadrenie , Toto môže byť použité na prekonanie bežnej priority prevádzkovateľov.
  • ! expressio n: Pravda, či vyjadrenie je nepravdivé.
  • expression1 && expression2 : Pravda, ak obaja expression1 a expression2 sú pravdivé.
  • expression1 || expression2 : Pravda, ak je to jedno expression1 alebo expression2 je pravda.

&& a|| prevádzkovatelia nehodnotili expression2 ak hodnota expression1 je dostatočná na určenie návratovej hodnoty celého podmieneného výrazu.

  • pre názov v slovo ; robiť zoznam ; hotový: Nasledujúci zoznam slovv je rozšírená a generuje zoznam položiek. Premenná názov je nastavený na každý prvok tohto zoznamu postupne a zoznam sa vykoná vždy. Akv slovo je vynechané,pre príkaz vykoná zoznam raz pre každý nastavený pozicový parameter. Stav vrátenia je stav výstupu posledného príkazu, ktorý sa vykoná. Ak rozšírenie položiek nasledujev výsledkom je prázdny zoznam, nevykonávajú sa žiadne príkazy a stav vrátenia je 0.
  • pre (( expr1 ; expr2 ; expr3 )) ; robiť zoznam ; hotový: Po prvé, aritmetický výraz expr1 sa hodnotí podľa pravidiel popísaných v častiAritmetické hodnotenie. Aritmetický výraz expr2 sa potom vyhodnocuje opakovane, kým sa vyhodnotí na nulu. Zakaždým expr2 hodnotí na nenulovú hodnotu, zoznam je vykonaný a aritmetický výraz expr3 sa hodnotí. Ak sa niektorý výraz vynechá, správa sa tak, akoby ho vyhodnotila na hodnotu 1. Vrátená hodnota je stav výstupu posledného príkazu v zoznam ktorý je spustený alebo nepravdivý, ak je niektorý z výrazov neplatný.
  • vybrať názov v slovo ; robiť zoznam ; hotový: Zoznam nasledujúcich slovv je rozšírená a generuje zoznam položiek. Sada rozšírených slov sa vytlačí na štandardnú chybu, z ktorej každá predchádza číslo. Akv slovo sa vynechajú, vytlačia sa polohové parametre. PS3 potom sa zobrazí výzva a čítaj riadok zo štandardného vstupu. Ak sa riadok skladá z čísla zodpovedajúceho jednému z zobrazených slov, potom hodnota názov je nastavené na toto slovo. Ak je riadok prázdny, zobrazia sa znovu slová a výzva. Ak sa číta EOF, príkaz sa ukončí. Akékoľvek iné príčiny čítania príčin názov nastaviť na nulu. Prečítaná čiarka sa uloží do premennejODPOVEĎ, zoznam sa vykoná po každom výbere až do aprestávka príkaz sa vykoná. Stav výstupuvybrať je stav výstupu posledného príkazu vykonaného v zoznam , alebo nula, ak neboli vykonané žiadne príkazy.
  • púzdro slovo v ( vzor | vzor : Apúzdro príkaz sa najprv rozširuje slovo , a pokúša sa to porovnať s každým vzor zase pomocou rovnakých pravidiel na prispôsobenie sa ako pri rozšírení názvu cesty. Keď sa nájde zhoda, odpovedá zoznam je vykonaná. Po prvom zápase sa nepokúšajú žiadne ďalšie zápasy. Stav ukončenia je nulový, ak sa nezhoduje so vzorom. V opačnom prípade ide o stav výstupu posledného príkazu vykonaného v zoznam .
  • ak zoznam ; potom zoznam povolených; a Elif zoznam ; potom zoznam ; … inak zoznam ; fi: ak zoznam je vykonaná. Ak je stav výstupu nulový,potom zoznam je vykonaná. V opačnom prípade každý Elif zoznam sa vykoná postupne a ak je jeho výstupný stav nulový, zodpovedajúcipotom zoznam sa vykoná a príkaz sa ukončí. V opačnom prípadeinak zoznam sa vykoná, ak je k dispozícii. Stav ukončenia je stav výstupu posledného spusteného príkazu alebo nula, ak nie je podmienka testovaná pravdivá.
  • zatiaľ čo zoznam ; robiť zoznam ; hotový a kým zoznam ; robiť zoznam ; hotový: Thezatiaľ čo príkaz nepretržite vykonávarobiť zoznam ako posledný príkaz v zoznam vráti stav výstupu nulu.kým príkaz je totožný szatiaľ čo príkaz, s výnimkou toho, že test je negovaný;robiť zoznam je vykonaná tak dlho, ako posledný príkaz v zoznam vráti stav nenulového výstupu. Stav výstupuzatiaľ čo akým príkazy je stav výstupu poslednéhorobiť zoznam príkaz vykonaný alebo nula, ak žiadny nebol vykonaný.
  • funkcie názov () { zoznam ; }: Definuje funkciu s názvom názov , telo funkcie je funkcia zoznam príkazov medzi {a}. Tento zoznam sa vykonáva vždy názov je zadané ako názov jednoduchého príkazu. Stav ukončenia funkcie je výstupný stav posledného príkazu vykonaného v tele.

Komentáre

V neinteraktivnom shell alebo interaktívnom shelle, v ktorom je interactive_comments možnosť nanastavenie ShopTurn je povolené vstavané slovo, začínajúce slovom# spôsobí ignorovanie tohto slova a všetkých zostávajúcich znakov na tomto riadku. Interaktívny shell bezinteractive_comments povolená možnosť nepovoľuje komentáre. interactive_comments je predvolene zapnutá v interaktívnych shelloch.

citovať

citovať sa používa na odstránenie špeciálneho významu určitých znakov alebo slov do shellu. Citácia sa môže použiť na vypnutie špeciálneho spracovania špeciálnych znakov, zabránenie uznania vyhradených slov ako takých a zabránenie rozšírenia parametrov.

Každý z nich metacharacters uvedené vyššie v častidefinícia má osobitný význam pre shell a musí byť citovaný, ak sa má reprezentovať.

Keď sa používajú zariadenia na rozšírenie histórie príkazov, rozšírenie histórie charakter, zvyčajne!, aby sa zabránilo rozšíreniu histórie.

Existujú tri mechanizmy citovania: únikový znak , jednoduché úvodzovky a dvojité úvodzovky.

Nezávislé spätné lomítko () je únikový znak , Zachová sa doslovná hodnota nasledujúceho znaku, ktorý nasleduje s výnimkou , Ak pár sa objaví a spätné lomítko nie je samo o sebe citované sa považuje za kontinuitu linky (to znamená, že je odstránená zo vstupného prúdu a účinne ignorovaná).

Zapísanie znakov do jednotlivých úvodzoviek zachováva literálnu hodnotu každého znaku v úvodzovkách. Jedna cenová ponuka sa nesmie vyskytnúť medzi jednotlivými úvodzovkami, a to ani vtedy, ak ich predchádza spätné lomítko.

Uzatvorenie znakov v dvojitých úvodzovkách zachováva doslovnú hodnotu všetkých znakov v úvodzovkách s výnimkou znakov$, ', a, Povahy$ a' si zachovávajú svoj špeciálny význam v rámci dvojitých úvodzoviek. Spätné lomítko si zachováva svoj zvláštny význam iba vtedy, ak nasleduje jeden z nasledujúcich znakov:$, ', ', , alebo, Dvojitá citácia sa môže uviesť v rámci dvojitých úvodzoviek tak, že ju zadáte spätným lomítkom.

Špeciálne parametre* a@ majú zvláštny význam v dvojitých úvodzovkách.

Slová z formulára$' povrázok "sa zaobchádza osobitne. Slovo sa rozširuje na povrázok , pričom znaky, ktoré unikli spätným lomikom, boli nahradené podľa špecifikácie normy ANSI C. Sekvencie úniku lomítka, ak sú prítomné, sa dekódujú nasledovne:

  • a: upozornenie (zvon)
  • b: backspace
  • e: únikový znak
  • f: formulár feed
  • n: Nový riadok
  • r: návrat vozíka
  • t: vodorovná záložka
  • v: vertikálna karta
  • \: spätné lomítko
  • ': jednoduchá cenová ponuka
  • nnn : osembitový znak, ktorého hodnota je osemčlenná hodnota nnn (jedno až tri číslice)
  • X HH : osembitový znak, ktorého hodnota je hexadecimálna hodnota HH (jeden alebo dva hexadecimálne znaky)
  • c X : riadiaca jednotka, X znak

Rozšírený výsledok je jednočinný, akoby nebol prítomný znak dolára.

Dvojciferný reťazec, ktorému predchádza znak dolára ($) spôsobí, že reťazec sa preloží podľa aktuálneho národného prostredia. Ak je aktuálne miestne nastavenieC aleboPOSIX, znak dolára sa ignoruje. Ak je reťazec preložený a nahradený, náhrada je dvojitá.

parametre

parameter je jednotka, ktorá ukladá hodnoty. Môže to byť a názov , číslo alebo jednu zo špeciálnych znakov uvedených podŠpeciálne parametre, Na účely škrupiny, a premenlivý je parameter označený a názov , Premenná má a hodnota a nula alebo viac atribúty , Atribúty sú priradené pomocouvyhlásiť vstavaný príkaz.

Ak je priradená hodnota, nastaví sa parameter. Nulový reťazec je platná hodnota. Akonáhle je premenná nastavená, môže byť deaktivovaná iba pomocouunset vstavaný príkaz.

premenlivý môže byť priradená formulárom formulára: názov = hodnota

ak hodnota nie je daná, premennej je priradený nulový reťazec. všetko hodnoty prechádza expanzia tilde, parametrov a variabilné rozšírenie, substitúcia príkazov, aritmetická expanzia a odstránenie citátov. Ak má premenná svojucelé číslo atribút set, potom hodnota je predmetom aritmetickej expanzie, aj keď sa nepoužije rozšírenie $ ((…)). Rozdelenie slov nie je vykonané, s výnimkou'$@' ako je vysvetlené v častiŠpeciálne parametre, Rozšírenie názvu cesty sa nevykoná. Príkazy priradenia sa môžu tiež zobraziť ako argumenty prevyhlásiť, vysádzať, export, iba na čítanie, a miestna vstavané príkazy.

Polohové parametre

polohový parameter je parameter označený jedným alebo viacerými číslicami, inými ako jeden číslica 0. Pozície parametre sú priradené z argumentov shellu pri jeho vyvolaní a môžu byť priradené pomocousada vstavaný príkaz. Polohové parametre nemusia byť priradené k údajom o priradení. Polohové parametre sa dočasne vymenia, keď sa vykoná funkcia shellu.

Ak sa rozširuje polohový parameter pozostávajúci z viac ako jednej číslice, musí byť priložený do závor.

Špeciálne parametre

Plášť spracováva špeciálne niekoľko parametrov. Tieto parametre možno odkazovať iba; priradenie k nim nie je povolené.

  • *: Rozbaľuje sa na polohové parametre, počnúc jedným. Keď sa rozšírenie objaví v rámci dvojitých úvodzoviek, rozširuje sa na jedno slovo s hodnotou každého parametra oddeleného prvým znakomIFS špeciálna premenná. To znamená, že "$*"je ekvivalentom"$1 C $2 C ", kde C je prvý znak hodnotyIFS variabilné. akIFS je neaktívne, parametre sú oddelené medzerami. akIFS je null, parametre sa spájajú bez zasahujúcich separátorov.
  • @: Rozbaľuje sa na polohové parametre, počnúc jedným. Keď sa rozšírenie vyskytne v rámci dvojitých úvodzoviek, každý parameter sa rozširuje na samostatné slovo. To znamená, že "$@"je ekvivalentom"$1' '$2"… Ak nie sú žiadne polohové parametre,"$@"a$@rozšíriť na nič (sú odstránené).
  • #: Rozbalí sa na počet polohových parametrov v desatinných číslach.
  • ?: Rozbalí sa na stav posledne vykonaného potrubia popredia.
  • -: Rozbalí sa na príznaky aktuálnej voľby, ako je uvedené pri vyvolaní, pomocousada zabudovaný príkaz alebo tie nastavené samotným shellom, ako je napr-i voľba.
  • $: Rozbaľuje sa na ID procesu shell. V subshell () sa rozšíri na ID procesu aktuálneho shell, nie na podsúbor.
  • !: Rozbalí sa na ID procesu posledného vykonaného príkazu na pozadí (asynchrónne).
  • 0: Rozbalí sa na názov shellového alebo shellového skriptu. Toto je nastavené na inicializáciu shellu. aktresnúť je vyvolaný súborom príkazov,$0 je nastavený na názov súboru. aktresnúť je spustený s-c možnosť, potom$0 je nastavený na prvý argument po vykonaní reťazca, ak je prítomný. V opačnom prípade je nastavený na názov súboru, ktorý sa používa na vyvolanietresnúť, ako je uvedené nultým argumentom.
  • _: Pri spustení shellu nastavte na absolútny názov súboru shellu alebo shell skriptu, ktorý sa vykoná ako prešiel v zozname argumentov. Následne sa po rozšírení rozšíri na posledný príkaz na predchádzajúci príkaz. Tiež nastaviť na plný názov súboru každého príkazu vykonaného a umiestneného do prostredia exportovaného do tohto príkazu. Pri kontrole pošty obsahuje tento parameter názov aktuálne kontrolovaného poštového súboru.

Premenné Shell

Nasledujúce premenné sú nastavené shellom:

BASH: Rozbalí sa na celý názov súboru, ktorý sa používa na vyvolanie tejto inštancietresnúť.

BASH_VERSINFO: Premenná čitateľného poľa, ktorej členovia obsahujú informácie o verzii pre túto inštanciu tresnúť, Hodnoty priradené k členom poľa sú nasledovné:

  • BASH_VERSINFO 0: Hlavné číslo verzie ( uvoľnenie )
  • BASH_VERSINFO 1: Menšie číslo verzie ( verzia )
  • BASH_VERSINFO 2: Úroveň patche
  • BASH_VERSINFO 3: verzia zostavy
  • BASH_VERSINFO 4: Stav uvoľnenia ( beta1, napríklad)
  • BASH_VERSINFO 5: HodnotaMACHTYPE

BASH_VERSIONRozbalí sa na reťazec popisujúci verziu tejto inštancietresnúť.

COMP_CWORD: Index do$ {COMP_WORDS} slova obsahujúceho aktuálnu pozíciu kurzora. Táto premenná je k dispozícii iba v funkciách škrupín vyvolaných programovateľnými zariadeniami na dokončenie.

COMP_LINE: Aktuálny príkazový riadok. Táto premenná je k dispozícii iba vo funkciách shell a externých príkazov vyvolaných programovateľnými zariadeniami na dokončenie.

COMP_POINT: Index aktuálnej pozície kurzora vzhľadom na začiatok aktuálneho príkazu. Ak je aktuálna pozícia kurzora na konci aktuálneho príkazu, hodnota tejto premennej sa rovná$ {#} COMP_LINE, Táto premenná je k dispozícii iba vo funkciách shell a externých príkazov vyvolaných programovateľnými zariadeniami na dokončenie.

COMP_WORDS: Premenná poľa pozostávajúca z jednotlivých slov v aktuálnom príkazovom riadku. Táto premenná je k dispozícii iba v funkciách škrupín vyvolaných programovateľnými zariadeniami na dokončenie.

DIRSTACK: Premenná poľa obsahujúca aktuálny obsah zásobníka adresárov. Adresáre sa v zásobníku objavia v poradí, v akom sú zobrazenédirs zabudovaný. Priradenie k členom tohto poľa môže byť použitá na zmenu adresárov už v zásobníku, alePUSHD apopd Vstavané súbory musia byť použité na pridanie a odstránenie adresárov. Priradenie tejto premennej nezmení aktuálny adresár. akDIRSTACK je nenastavený, stráca svoje špeciálne vlastnosti, aj keď sa následne vynuluje.

EUID: Rozbaľuje sa na efektívne ID používateľa aktuálneho používateľa, inicializované pri štarte shellu. Táto premenná je readonly.

FUNCNAME: Názov všetkých funkcií, ktoré sa momentálne vykonávajú. Táto premenná existuje len vtedy, keď sa vykonáva funkcia shell. Priradenia kFUNCNAME nemá žiadny účinok a vráti chybový stav. akFUNCNAME je nenastavený, stráca svoje špeciálne vlastnosti, aj keď sa následne vynuluje.

SKUPINY: Premenná poľa obsahujúca zoznam skupín, z ktorých je súčasný používateľ členom. Priradenia kSKUPINY nemá žiadny účinok a vráti chybový stav. akSKUPINY je nenastavený, stráca svoje špeciálne vlastnosti, aj keď sa následne vynuluje.

HISTCMD: Číslo histórie alebo index v zozname histórie aktuálneho príkazu. akHISTCMD je nenastavený, stráca svoje špeciálne vlastnosti, aj keď sa následne vynuluje.

MENO HOSŤA: Automatické nastavenie názvu aktuálneho hostiteľa.

HOSTTYPE: Automaticky nastaviť na reťazec, ktorý jednoznačne popisuje typ stroja, na ktorom jetresnúť je vykonávanie. Predvolená hodnota závisí od systému.

linen: Pokaždé, keď je tento parameter odkazovaný, shell nahrádza desiatkové číslo predstavujúce aktuálne poradové číslo (začínajúce 1) v rámci skriptu alebo funkcie. Ak nie je v skripte alebo funkcii, nie je zaručená zmysluplná náhrada. aklinen je nenastavený, stráca svoje špeciálne vlastnosti, aj keď sa následne vynuluje.

MACHTYPE: Automaticky nastaviť na reťazec, ktorý úplne opisuje typ systému, na ktorom sa nachádzatresnúť sa vykonáva v štandardnom GNU cpu-spoločnosť-system Formát. Predvolená hodnota závisí od systému.

OLDPWD: Predchádzajúci pracovný adresár nastavený pomocouCD Príkaz.

OPTARG: Hodnota argumentu poslednej voľby spracovanej znakomgetopts vstavaný príkaz.

OPTIND: Index ďalšieho argumentu, ktorý má spracovaťgetopts vstavaný príkaz.

OSTYPE: Automaticky nastaviť na reťazec, ktorý popisuje operačný systém, na ktorom sa nachádzatresnúť je vykonávanie. Predvolená hodnota závisí od systému.

PIPESTATUS: Premenná poľa obsahujúca zoznam hodnôt stavu výstupu z procesov v nedávno spustenom potrubí popredia, ktorý môže obsahovať iba jeden príkaz.

PPID: ID procesu rodiča shellu. Táto premenná je readonly.

PWD: Aktuálny pracovný adresár nastavený pomocouCD Príkaz.

RANDOM: Pri každom odkazovaní na tento parameter sa generuje náhodné celé číslo medzi 0 a 32767. Sekvencia náhodných čísel môže byť inicializovaná priradením hodnoty RANDOM, akRANDOM je nenastavený, stráca svoje špeciálne vlastnosti, aj keď sa následne vynuluje.

ODPOVEĎ: Nastavte riadok vstupu, ktorý si prečítajteprečítať vstavaný príkaz, ak nie sú dodané žiadne argumenty.

SECONDS: Pri každom odkazovaní na tento parameter sa vráti počet sekúnd po vyvolaní funkcie shell. Ak je priradená hodnotaSECONDS, hodnota vrátená pri nasledujúcich referenciách je počet sekúnd od priradenia plus priradená hodnota. ak SECONDS je nenastavený, stráca svoje špeciálne vlastnosti, aj keď sa následne vynuluje.

SHELLOPTS: Zoznam oddelených hrubých častí povolených možností shell. Každé slovo v zozname je platným argumentom pre-o možnosť nasada vstavaný príkaz. Možnosti zobrazené vSHELLOPTS sú tie, ktoré sú uvedené ako na podľaset -o, Ak je táto premenná v prostredí, keď jetresnúť spustí sa, každá možnosť shell v zozname bude zapnutá predtým, než budete čítať všetky spúšťacie súbory. Táto premenná je readonly.

SHLVL: Zvýšená o jeden pri každej inštanciitresnúť je spustený.

UID: Rozbalí sa na užívateľské ID aktuálneho používateľa, inicializované pri štarte shell. Táto premenná je readonly.

Nasledujúce premenné sa používajú v shell. V niektorých prípadoch,tresnúť priradí predvolenú hodnotu premennej; tieto prípady sú zaznamenané.

BASH_ENV: Ak je tento parameter nastavený vtedytresnúť spúšťa skript pre shell, jeho hodnota sa interpretuje ako názov súboru obsahujúci príkazy na inicializáciu shell, ako v ~ / .Bashrc , Hodnota BASH_ENV je podrobený rozšíreniu parametrov, substitúcii príkazov a aritmetickej expanzii pred tým, ako sa interpretuje ako názov súboru.PATH sa nepoužíva na vyhľadávanie výsledného názvu súboru.

CDPATH: Vyhľadávacia cesta preCD Príkaz. Toto je zoznam s adresami oddelených dvojbodkami, v ktorom shell hľadá cieľové adresáre špecifikovanéCD Príkaz. Hodnota vzorky je ".: /: Usr".

COLUMNS: Používa savybrať vstavaný príkaz na určenie šírky koncovky pri tlači výberových zoznamov. Automaticky nastaviť po prijatí SIGWINCH.

COMPREPLY: Pole premennej, z ktorejtresnúť číta možné komplexy generované funkciou shellu vyvolanej programovateľným dokončovacím zariadením.

FCEDIT: Predvolený editor prefc vstavaný príkaz.

FIGNORE: Zoznam prípon oddelených hrubým čiarom, ktorý sa má ignorovať pri vykonávaní dokončovania názvu súboru. Názov súboru, ktorého prípona zodpovedá jednej z položiek v priečinkuFIGNORE je vylúčený zo zoznamu zodpovedajúcich názvov súborov. Hodnota vzorky je ".o: ~".

GLOBIGNORE: Zoznam vzorov oddelených dvojbodkou, ktorý definuje súbor názvov súborov, ktoré sa majú ignorovať rozšírením názvu cesty. Ak sa názov súboru, ktorý zodpovedá vzoru rozšírenia cesty, zhoduje s jedným zo vzorov vGLOBIGNORE, je odstránený zo zoznamu zápasov.

HISTCONTROL: Ak je nastavená hodnota ignorespace , čiary začínajúce napriestor v zozname histórie. Ak je nastavená hodnota ignoredups , nie sú zadané riadky zodpovedajúce poslednej línii histórie. Hodnota ignoreboth kombinuje dve možnosti. Ak je nastavená alebo ak je nastavená na inú hodnotu ako vyššie, všetky riadky prečítané analyzátorom sú uložené v zozname histórie podľa hodnotyHISTIGNORE, Funkcia tejto premennej je nahradená funkciou HISTIGNORE, Druhý a nasledujúci riadok zloženého príkazu s viacerými riadkami nie je testovaný a pridáva sa do histórie bez ohľadu na hodnotuHISTCONTROL.

HISTFILE: Názov súboru, v ktorom je uložená história príkazov. Predvolená hodnota je ~ / .Bash_history , Ak je vypnutá, história príkazov sa neuloží po ukončení interaktívneho shellu.

HISTFILESIZE: Maximálny počet riadkov obsiahnutých v súbore histórie. Keď je tejto premennej priradená hodnota, súbor histórie je v prípade potreby skrátený, aby obsahoval viac ako tento počet riadkov. Predvolená hodnota je 500. Súbor histórie je taktiež skrátený na túto veľkosť po jeho zapísaní, keď sa ukončí interaktívny shell.

HISTIGNORE: Zoznam oddelených hrubých čiar, ktorý sa používa na určenie toho, ktoré príkazové riadky by sa mali uložiť do zoznamu histórie. Každý vzor je zakotvený na začiatku riadku a musí zodpovedať úplnej línii (bez implicitného '*"je pripojený). Každý vzor je testovaný na čiaru po kontrolách špecifikovanýchHISTCONTROL sú uplatnené. Okrem bežných znakov typu "shell"&"sa zhoduje s predchádzajúcou líniou histórie. '&'môže uniknúť pomocou spätného lomka; spätné lomítko sa odstráni pred pokusom o zápas. Druhý a nasledujúci riadok zloženého príkazu s viacerými riadkami sa netestuje a pridáva sa do histórie bez ohľadu na hodnotuHISTIGNORE.

HISTSIZE: Počet príkazov na zapamätanie v histórii príkazov. Predvolená hodnota je 500.

DOMOV: Domovský adresár aktuálneho používateľa; predvolený argument preCD vstavaný príkaz. Hodnota tejto premennej sa používa aj pri vykonávaní rozšírenia tilde.

HOSTFILE: Obsahuje názov súboru v rovnakom formáte ako / Etc / hosts ktoré by sa mali čítať, keď shell potrebuje dokončiť názov hostiteľa. Zoznam možných dokončení názvu hostiteľa sa môže zmeniť počas spustenia shellu; pri ďalšom pokuse o dokončenie názvu hostiteľa po zmene hodnoty,tresnúť pridá obsah nového súboru do existujúceho zoznamu. ak HOSTFILE je nastavená, ale nemá žiadnu hodnotu,tresnúť pokúša sa čítať / Etc / hosts získate zoznam možných dokončení názvu hostiteľa. KedyHOSTFILE je zrušené, zoznam hostiteľov sa vymaže.

IFS: The Interný oddeľovač polí sa používa na rozdelenie slov po rozšírení a na rozdelenie riadkov na slová sprečítať vstavaný príkaz. Predvolená hodnota je "''.

IGNOREEOFOvláda akciu interaktívneho shellu po prijatí súboruEOF ako jediný vstup. Ak je hodnota nastavená, je hodnota po sebe idúcaEOF znaky, ktoré musia byť zadané ako prvé znaky na vstupnom riadku predtýmtresnúť východy. Ak premenná existuje, ale nemá číselnú hodnotu alebo nemá žiadnu hodnotu, predvolená hodnota je 10. Ak ju neexistuje,EOF znamená koniec vstupu do shellu.

INPUTRC: Názov súboru prereadline spúšťacieho súboru, ktorý má predvolenú hodnotu ~ / .Inputrc .

LANG: Používa sa na určenie kategórie lokality pre každú kategóriu, ktorá nie je špecificky vybraná s premennou začínajúcou naLC_.

LC_ALL: Táto premenná má prednosť pred hodnotouLANG a akékoľvek inéLC_ premenná špecifikujúca kategóriu lokality.

LC_COLLATE: Táto premenná určuje poradie zoradenia, ktoré sa používa pri triedení výsledkov rozšírenia cesty a určuje správanie výrazov rozsahu, tried ekvivalencie a sekvencií zoradenia v rámci rozšírenia cesty a porovnania vzorov.

LC_CTYPE: Táto premenná určuje interpretáciu znakov a správanie tried znakov v rámci rozšírenia cesty a porovnávania vzorov.

LC_MESSAGES: Táto premenná určuje lokalizáciu použitú na preklad dvojitých reťazcov, ktoré predchádza a$.

LC_NUMERIC: Táto premenná určuje kategóriu lokality použitú na formátovanie čísel.

LINKY: Používa savybrať vstavaný príkaz na určenie dĺžky stĺpca pre tlač výberových zoznamov. Automaticky nastaviť po prijatí SIGWINCH.

MAIL: Ak je tento parameter nastavený na názov súboru aMAILPATH premenná nie je nastavená,tresnúťinformuje používateľa o príchode pošty do zadaného súboru.

MAILCHECK: Určuje, ako často (v sekundách)tresnúť kontroly poštou. Predvolená hodnota je 60 sekúnd. Keď je čas na kontrolu pošty, shell to urobí pred zobrazením primárneho výzvy. Ak je táto premenná nenastavená alebo nastavená na hodnotu, ktorá nie je číslo väčšie alebo rovné nule, shell zakáže kontrolu pošty.

MAILPATH: Zoznam názvov súborov oddelených dvojbodkou, ktorý sa má skontrolovať pre poštu. Správa, ktorá sa má vytlačiť po príchode pošty do určitého súboru, môže byť zadaná oddelením názvu súboru od správy pomocou znaku '?'. Keď sa použije v texte správy,$_ sa rozširuje na názov aktuálneho poštového súboru. Príklad:

MAILPATH = '/ var / mail / bfox?' Máte poštu ': ~ / shell-mail?' $ _ Má poštu!

tresnúť poskytuje predvolenú hodnotu pre túto premennú, ale umiestnenie používateľských poštových súborov, ktoré používa, závisí od systému (/ var / mail /$ USER).

OPTERR: Ak je nastavená hodnota 1,tresnúť zobrazuje chybové hlásenia generovanégetopts vstavaný príkaz.OPTERR sa inicializuje na 1 vždy, keď sa vyvolá shell alebo sa vykoná shell skript.

PATH: Vyhľadávacia cesta pre príkazy. Jedná sa o zoznam adresárov oddelených dvojbodkami, v ktorých shell hľadá príkazy. Predvolená cesta závisí od systému a je nastavená správcom, ktorý sa nainštalujetresnúť, Bežná hodnota je "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :.

POSIXLY_CORRECT: Ak je táto premenná v prostredí, keď jetresnúť spustí sa shell posix režim pred čítaním spúšťacích súborov, ako keby to bolo--posix bola poskytnutá možnosť vyvolania. Ak je nastavená počas spustenia shellu,tresnúť umožňuje posix režim ako keby bol príkaz set -o posix bol popravený.

PROMPT_COMMAND: Ak je hodnota nastavená, hodnota sa vykoná ako príkaz pred vydaním každého primárneho výzvy.

PS1: Hodnota tohto parametra sa rozbalí a použije ako hlavný reťazec výzvy. Predvolená hodnota je " S- v $''.

PS2: Hodnota tohto parametra sa rozširuje ako uPS1 a používa sa ako sekundárny prompt. Predvolená hodnota je "> ''.

PS3: Hodnota tohto parametra sa používa ako výzva prevybrať Príkaz.

PS4: Hodnota tohto parametra sa rozširuje ako uPS1, a hodnota sa vytlačí pred každým príkazomtresnúť zobrazuje počas sledovania spúšťania. Prvý znak znakuPS4 sa replikuje niekoľkokrát, ak je to potrebné, na označenie viacerých úrovní nepriamej orientácie. Predvolená hodnota je "+ ''.

FORMÁT ČASU: Hodnota tohto parametra sa používa ako formátový reťazec, ktorý špecifikuje, ako sa majú informácie o časovaní pre potrubia s predponoučas rezervované slovo by sa malo zobraziť. % znak zavádza escape sekvenciu, ktorá je rozšírená na časovú hodnotu alebo iné informácie. Únikové sekvencie a ich významy sú nasledovné. Výstuhy označujú voliteľné časti.

  • %%: Doslovný%
  • % p l R: Uplynulý čas v sekundách
  • % p l U: Počet sekúnd CPU strávených v užívateľskom režime
  • % p l S: Počet CPU sekúnd strávených v režime systému
  • % P: Percento CPU vypočítané ako (% U +% S) /% R

Voliteľné p je číslica určujúca presnosť , počet zlomok za desatinnou čiarou. Hodnota 0 spôsobí, že sa nezobrazí žiadna desatinná čiara. Môžeme špecifikovať najviac tri miesta za desatinnou čiarkou; hodnoty p väčšia ako 3 sa zmení na 3. Ak p nie je zadaná, použije sa hodnota 3.

Voliteľnél určuje dlhší formát, vrátane minút, formulára MM m SS . FF s. Hodnota p určuje, či je frakcia zahrnutá alebo nie.

Ak táto premenná nie je nastavená,tresnúť akoby mal hodnotu $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS', Ak je hodnota null, nebudú zobrazené žiadne informácie o časovaní. Nasledujúci riadok sa pridá, keď sa zobrazí formátový reťazec.

TMOUT: Ak je nastavená hodnota väčšia ako nula,TMOUT sa považuje za predvolený časový limit preprečítať zabudovaný.vybrať príkaz ukončí, ak vstup nepríde poTMOUT sekundy, keď vstup pochádza z terminálu.V interaktívnom systéme sa hodnota interpretuje ako počet sekúnd na čakanie na zadanie po vydaní primárneho výzvy.tresnúť ukončí sa po čakaní na tento počet sekúnd, ak vstup nepríde.

auto_resume: Táto premenná riadi spô