Skip to main content

Linux - Unix Příkaz: bash

Anonim

Příkaz Linux Bash jesh-kompatibilní interpret příkazového jazyka, který provádí příkazy čtené ze standardního vstupu nebo ze souboru.Bash také obsahuje užitečné funkce z Korn a C shellů (ksh acsh).

Bash Options

Kromě jednoznačných možností shellu dokumentovaných v popisusoubor vestavěný příkaz,bash interpretuje při vyvolání následující možnosti:

  • -C řetězec: Pokud-C existuje možnost, pak se přečte příkazy řetězec . Pokud existují argumenty po řetězec , jsou přiřazeny k pozičním parametrům, počínaje hodnotou$0.
  • -i: Pokud-i existuje možnost, je shell interaktivní .
  • -l: Udělatbash se chová jako přihlašovací shell.
  • -r: Pokud-r je přítomen, shell se stává omezený.
  • -s: Pokud-s existuje možnost nebo pokud po zpracování opce nezůstávají žádné argumenty, pak se příkazy přečtou ze standardního vstupu. Tato volba umožňuje nastavit polohové parametry při vyvolání interaktivního shellu.
  • -D: Seznam všech dvojitých uvozovek, jimž předchází$ je vytištěn na standardním výstupu. Jedná se o řetězce, které podléhají jazykovému překladu, pokud aktuální lokalizace neníC neboPOSIX. To znamená,n volba; žádné příkazy nebudou spuštěny.
  • - + O shopt_option : shopt_option je jednou z možností shellu přijatýchshopt vestavěný. Li shopt_option je přítomen, nastavuje hodnotu této možnosti a+ O vymaže to. Li shopt_option není přiložena, názvy a hodnoty možností shellu akceptoványshopt jsou vytištěny na standardním výstupu. Je-li volba vyvolání + O, výstup je zobrazen ve formátu, který může být použit jako vstup.
  • --: A-- signalizuje ukončení možností a zakáže další zpracování volby. Jakékoli argumenty po-- jsou považovány za názvy souborů a argumenty. Argument z- je ekvivalentní--.

Bash také interpretuje řadu možností s více znaky. Tyto volby se musí zobrazit na příkazovém řádku před jednoznačnými volbami, které je třeba rozpoznat:

  • - dump-po-strings: Ekvivalentní-D, ale výstup je v GNU gettext po (přenosný objekt).
  • --dump-strings: Ekvivalentní-D.
  • --Pomoc: Zobrazí zprávu o použití na standardním výstupu a úspěšně se ukončí.
  • --init-soubor: soubor a --rcfile soubor : Spuštění příkazů z soubor namísto standardního osobního inicializačního souboru ~ / .bashrc pokud je shell interaktivní.
  • --přihlásit se: Ekvivalentní-l.
  • --noedit: Nepoužívejte GNUreadline Knihovna čte příkazové řádky, když je shell interaktivní.
  • - noprofile: Nečtěte systémový spouštěcí soubor / etc / profil nebo některý z osobních inicializačních souborů ~ / .bash_profile , ~ / .bash_login , nebo ~ / .profile . Ve výchozím stavu,bash čte tyto soubory při vyvolání jako přihlašovací shell.
  • - ne: Nečíst a nespouštět osobní inicializační soubor ~ / .bashrc pokud je shell interaktivní. Tato volba je ve výchozím nastavení zapnuta, pokud je shell vyvolán jakosh.
  • --posix: Změňte chováníbash kde výchozí operace se liší od standardu POSIX tak, aby odpovídala standardu ( posix režim ).
  • --omezený: Obal se stává omezen.
  • --rpm - vyžaduje: Vytvořte seznam souborů, které jsou nutné pro spuštění skriptu prostředí. To znamená '-n' a podléhá stejným omezením jako kontrolní kontrola chyby při kompilaci; Základy, testy a evals nejsou analyzovány, takže některé závislosti mohou být vynechány.
  • --verbose: Ekvivalentní-proti.
  • --verze: Zobrazit informace o verzi pro tuto instancibash na standardním výstupu a úspěšně ukončit.

Argumenty

Pokud zůstanou argumenty po zpracování volby a ani-C ani-s , byl první argument považován za název souboru obsahující příkazy shellu. Li bash je vyvolána tímto způsobem,$0 je nastaven na název souboru a polohové parametry jsou nastaveny na zbývající argumenty.Bash čte a provádí příkazy z tohoto souboru; pak opustí.BashStav ukončení je stav ukončení posledního příkazu provedeného ve skriptu. Pokud nejsou spuštěny žádné příkazy, stav ukončení je 0. Je nejdříve proveden pokus o otevření souboru v aktuálním adresáři a pokud není nalezen žádný soubor, pak shell vyhledá adresáře vCESTA pro skript.

Vyvolání

A přihlašovací shell je takový, jehož první znak argumentu nula je a-, nebo jeden začal s--přihlásit se volba.

An interaktivní shell je jeden začal bez argumentů bez možnosti a bez-C , jejichž standardní vstup a výstup jsou oba připojeny ke svorkám podle určení isatty (3), nebo jeden začal s-i volba.PS1 je nastaven a $- zahrnuje, pokud je bash interaktivní, což umožňuje skript prostředí nebo spouštěcí soubor otestovat tento stav.

Následující odstavce popisují, jakým způsobembash spustí spouštěcí soubory. Pokud některý ze souborů existuje, ale nelze je číst,bash hlásí chybu. Tildy jsou rozšiřovány v názvech souborů, jak je popsáno v Tilde Expansion.

Kdyžbash je vyvolána jako interaktivní přihlašovací shell nebo jako neinteraktivní shell s--přihlásit se volba nejprve přečte a provede příkazy ze souboru / etc / profil , pokud existuje soubor. Po přečtení tohoto souboru to hledá ~ / .bash_profile , ~ / .bash_login , a ~ / .profile , v tomto pořadí a čte a provede příkazy z prvního, který existuje a je čitelný. The- noprofile možnost může být použita, když shell začal potlačit toto chování.

Při ukončení přihlašovacího shellu,bash čte a provádí příkazy ze souboru ~ / .bash_logout , pokud existuje.

Pokud je spuštěn interaktivní shell, který není přihlašovací shell,bash čte a provádí příkazy z ~ / .bashrc , pokud existuje soubor. To může být potlačeno použitím- ne volba. The--rcfile soubor možnost vynutitbash číst a provádět příkazy z soubor namísto ~ / .bashrc .

Kdyžbash je spuštěn neinteraktivně - například spustit skript shellu - hledá proměnnouBASH_ENV v prostředí, rozšiřuje jeho hodnotu, pokud se tam zobrazuje, a používá rozšířenou hodnotu jako název souboru pro čtení a spuštění.Bash chová se, jako kdyby byl proveden následující příkaz:

pokud -n "$ BASH_ENV"; pak . "$ BASH_ENV"; fi

ale hodnotaCESTA proměnná se nepoužívá k vyhledání názvu souboru.

Libash je vyvolán s názvemsh, snaží se napodobit spouštěcí chování historických verzísh co nejtěsněji, a to i při dodržení standardu POSIX. Při vyvolání jako interaktivní přihlašovací shell nebo neinteraktivní shell s--přihlásit se , nejprve se pokusí číst a provádět příkazy z / etc / profil a ~ / .profile , v tomto pořadí. The- noprofile možnost zabránit tomuto chování. Při vyvolání jako interaktivní shell s názvem sh, bash hledá proměnnouENV, rozšiřuje svou hodnotu, pokud je definována, a používá rozšířenou hodnotu jako název souboru pro čtení a spuštění. Protože shell byl vyvolán jakosh se nepokouší číst a provádět příkazy z jiných spouštěcích souborů, např--rcfile nemá žádný vliv. Neinteraktivní shell vyvolaný jménemsh nepokouší se číst žádné další spouštěcí soubory. Při vyvolání jakosh, bash vstupuje posix po přečtení spouštěcích souborů.

Kdyžbash je spuštěn posix jako u--posix volba příkazového řádku, odpovídá standardu POSIX pro spouštěcí soubory. V tomto režimu rozšiřují interaktivní shellENV proměnná a příkazy jsou přečteny a spuštěny ze souboru, jehož jméno je rozšířená hodnota. Žádné další spouštěcí soubory nejsou čteny.

Bash se pokouší zjistit, kdy je spuštěn démonem vzdáleného shellu, obvykle rshd . Li bash určuje, že je spuštěn rshd , čte a provádí příkazy z ~ / .bashrc , pokud tento soubor existuje a je čitelný. Nebude to dělat, pokud je vyvoláno jakosh. The- ne možnost zablokovat toto chování a--rcfile volba může být použita k přinutit jiný soubor k čtení, ale rshd obecně nevyvolává shell s těmito možnostmi nebo jim neumožňuje zadání.

Pokud je shell spuštěn s faktickým uživatelem (skupinou) id se nerovná skutečnému uživateli (skupině) id a-p volba není přiložena, nejsou spuštěny žádné spouštěcí soubory, funkce shell nejsou zděděny z prostředí,SHELLOPTS proměnná, pokud se objeví v prostředí, je ignorována a efektivní ID uživatele je nastaveno na skutečné ID uživatele. Pokud-p volba je dodána při vyvolání, chování při spuštění je stejné, ale efektivní ID uživatele není resetováno.

Definice

Následující definice se používají po celý zbytek tohoto dokumentu:

  • Prázdný: Mezeru nebo kartu.
  • Slovo: Sekvence znaků, které Shell považuje za jednu jednotku. Také známý jako a žeton.
  • název: A slovo obsahující pouze alfanumerické znaky a podtržítka a začínající abecedním znakem nebo podtržítkem. Také odkazoval se na jakoidentifikátor.
  • Metacharacter: Znak, který při nekotazování odděluje slova. Jeden z následujících způsobů:| &; () <> mezeru
  • Operátor řízení: A žeton který provádí řídicí funkci. Jedná se o jeden z následujících symbolů: || & && ; ;; ( ) |

Vyhrazená slova

Vyhrazená slova jsou slova, která mají zvláštní význam pro shell. Následující slova jsou rozpoznána jako vyhrazená, pokud nejsou kótovaná, a buď první slovo jednoduchého příkazu nebo třetí slovo apřípadnebopro příkaz:

! case do proveďte elif else esac fi pro funkci jestliže ve výběru pak do dokud {} time

Shell Gramatika: Jednoduché příkazy

A jednoduchý příkaz je posloupnost volitelných proměnných přiřazeníprázdný- oddělil slova a přesměrování a ukončil a řídícího operátora . První slovo určuje příkaz, který má být proveden, a předává se jako argument nula. Zbývající slova jsou předána jako argumenty pro vyvolaný příkaz.

Návratová hodnota a jednoduchý příkaz je jeho výstupní status, nebo 128 + n pokud je příkaz ukončen signálem n .

Potrubí

A potrubí je sekvence jednoho nebo více příkazů oddělených znakem|. Formát potrubí je čas -p ! příkaz | command2 … .

Standardní výstup příkaz je připojen pomocí potrubí na standardní vstup command2 . Toto připojení se provádí před jakýmkoli přesměrováním určeným příkazem.

Pokud rezervované slovo! předchází potrubí, výstupní stav tohoto potrubí je logickým NOT stavu výstupu posledního příkazu. V opačném případě je stav potrubí stav výstupu posledního příkazu. Shell čeká na to, aby všechny příkazy v potrubí skončily před návratem hodnoty.

Pokudčas vyhrazené slovo předchází potrubí, uplynulo uplynulé, stejně jako uživatelský a systémový čas spotřebovaný jeho provedením, když se potrubí ukončí. The-p volba změní výstupní formát na formát specifikovaný serverem POSIX. TheČASOVÝ FORMÁT proměnná může být nastavena na formátovací řetězec, který určuje, jak mají být informace o časování zobrazeny.

Každý příkaz v potrubí je spuštěn jako samostatný proces (například v subshell).

Seznamy

A seznam je sekvence jednoho nebo více potrubí oddělených jedním z operátorů;, &, &&, nebo||, a volitelně ukončen jedním z nich;, &, nebo.

Z těchto provozovatelů seznamu,&& a|| mají stejnou přednost, následuje; a&, které mají stejnou přednost.

Sekvence jednoho nebo více řádků se může objevit v a seznam namísto středníkem pro vymezení příkazů.

Pokud příkaz ukončí operátor&, shell provede příkaz ve složce Pozadí v podsvuku. Shell nečeká, až příkaz skončí a stav návratu je 0. Příkazy oddělené a; jsou prováděny postupně; skořápka čeká, aby se každý příkaz ukončil. Stav návratu je stav ukončení posledního příkazu.

Řídící pracovníci&& a|| označte seznamy A a seznamy OR, resp. Seznam AND obsahuje formulář

command1 && command2

command2 je provedena, pokud a pouze tehdy, command1 vrátí stav ukončení nula.

Seznam OR obsahuje formulář

command1 || command2

command2 se provádí pouze a pouze command1 vrátí stav nenulového výstupu. Stav návratů seznamů AND a OR je stav ukončení posledního příkazu provedeného v seznamu.

Složené příkazy

A složený příkaz je jedna z následujících:

(seznam) : seznam se provádí v podsvuku. Variabilní přiřazení a vestavěné příkazy, které ovlivňují prostředí shellu, nezůstávají v platnosti po dokončení příkazu. Stav návratu je stav ukončení seznam .

{list; }} : seznam je jednoduše proveden v aktuálním shellu prostředí. seznam musí být ukončena novou čárou nebo středníkem. Toto je známé jako a skupinový příkaz . Stav návratu je stav ukončení seznam . Všimněte si, že na rozdíl od metacharacterů( a), { a} jsou vyhrazená slova a musí se vyskytnout tam, kde je dovoleno rozpoznat vyhrazené slovo. Vzhledem k tomu, že nespouštějí slovo, musí být odděleni seznam podle mezery.

((výraz)) : The výraz se vyhodnocuje podle pravidel popsaných v části Aritmetické hodnocení. Pokud je hodnota výrazu nenulová, stav návratu je 0; jinak je stav návratu 1. To je přesně stejné jakonechat ' výraz '.

výraz : V závislosti na vyhodnocení podmíněného výrazu vraťte stav 0 nebo 1 výraz . Výrazy jsou složeny z primárních prvků popsaných níže v části Podmíněné výrazy. Rozpoznávání slov a rozšíření názvů cest se neprovádí na slova mezi znaky a; rozšíření tilde, parametr a variabilní expanze, aritmetická expanze, náhrada příkazu, nahrazení procesu a odebrání citátu.

Když== a!= operátoři, řetězec napravo od operátora se považuje za vzor a odpovídá podle pravidel popsaných v částiOdpovídání vzorů. Hodnota návratu je 0, pokud řetězec odpovídá nebo nesouhlasí se vzorem a 1 jinak. Každá část vzoru může být citována tak, aby byla přiměřená jako řetězec.

Výrazy lze kombinovat pomocí následujících operátorů, jejichž seznam je uveden v sestupném pořadí:

  • (výraz): Vrací hodnotu výraz . To může být použito k překonání běžných priorit operátorů.
  • ! expressio n: Je pravda, jestli výraz je falešná.
  • výraz1 && výraz2 : Pravda, pokud obojí výraz1 a výraz2 jsou pravdivé.
  • výraz1 || výraz2 : Je pravda, jestli jeden výraz1 nebo výraz2 je pravda.

The&& a|| provozovatelé nehodnotí výraz2 pokud hodnota výraz1 stačí k určení návratové hodnoty celého podmíněného výrazu.

  • pro název v slovo ; dělat seznam ; Hotovo: Následující seznam slovv je rozšířen a generuje seznam položek. Proměnná název je nastaven na každý prvek tohoto seznamu v pořadí a seznam se provádí pokaždé. Pokudv slovo je vynechána,pro příkaz spustí seznam jednou pro každý poziční parametr, který je nastaven. Stav návratu je stav ukončení posledního příkazu, který se provede. Pokud se rozšiřují následující položkyv výsledkem je prázdný seznam, nejsou provedeny žádné příkazy a stav návratu je 0.
  • pro (( expr1 ; expr2 ; expr3 )) ; dělat seznam ; Hotovo: Za prvé, aritmetický výraz expr1 se vyhodnocuje podle pravidel popsaných v částiAritmetické hodnocení. Aritmetický výraz expr2 je pak vyhodnocován opakovaně, dokud nebude vyhodnocen na nulu. Pokaždé expr2 hodnotí se na nenulovou hodnotu, seznam je proveden a aritmetický výraz expr3 je vyhodnocena. Je-li některý výraz vynechán, chová se tak, jako kdyby byl vyhodnocen 1. Zpětná hodnota je stav ukončení posledního příkazu v seznam který je spuštěn nebo nepravdivý, pokud některý z výrazů je neplatný.
  • vybrat název v slovo ; dělat seznam ; Hotovo: Seznam slov následujícíchv je rozšířen a generuje seznam položek. Sada rozšířených slov je vytištěna na standardní chybě, z nichž každá předchází číslo. Pokudv slovo je vynecháno, jsou vytištěny polohové parametry. The PS3 zobrazí se výzva a čte řádku ze standardního vstupu. Pokud se řádek skládá z čísla odpovídající jednomu z zobrazených slov, pak hodnota název je nastaveno na toto slovo. Je-li řádek prázdný, zobrazí se znovu slova a výzva. Pokud se čte EOF, příkaz se dokončí. Jakékoliv jiné příčiny čtení hodnot název nastavit na hodnotu null. Čtená čára je uložena v proměnnéODPOVĚĎ. The seznam se provádí po každém výběru do apřestávka příkaz je spuštěn. Stav výstupuvybrat je stav ukončení posledního příkazu provedeného v seznam , nebo nula, pokud nebyly provedeny žádné příkazy.
  • případ slovo v ( vzor | vzor : Apřípad příkaz se nejprve rozbalí slovo , a snaží se s ním odpovídat vzor postupně pomocí stejných pravidel pro shodu s cestami. Když je shoda nalezena, odpovídá seznam je spuštěn. Po prvním utkání se neprovádějí žádné další zápasy. Stav ukončení je nulový, pokud se nezobrazí žádný vzor. Jinak je to stav ukončení posledního příkazu provedeného v seznam .
  • -li seznam ; pak seznam; a elif seznam ; pak seznam ; … jiný seznam ; fi: The-li seznam je spuštěn. Pokud je stav výstupu nulový, pakpak seznam je spuštěn. Jinak každý elif seznam je provedena postupně, a pokud je jeho stav výstupu nulový, odpovídajícípak seznam a příkaz se dokončí. V opačném případějiný seznam je provedena, pokud je k dispozici. Stav ukončení je stav ukončení posledního příkazu, nebo nula, pokud není podmínka testována pravdivá.
  • zatímco seznam ; dělat seznam ; Hotovo a dokud seznam ; dělat seznam ; Hotovo: Thezatímco příkaz nepřetržitě provádí příkazdělat seznam tak dlouho, dokud poslední příkaz v seznam vrátí stav ukončení nula. Thedokud příkaz je totožný s příkazemzatímco příkaz, s výjimkou toho, že test je negován;dělat seznam je vykonán tak dlouho, dokud poslední příkaz v seznam vrátí stav nenulového výstupu. Stav výstupuzatímco adokud příkazy je stav ukončení poslednídělat seznam příkazu proveden, nebo nula, pokud žádný nebyl proveden.
  • funkce název () { seznam ; }: Definuje funkci s názvem název . The tělo funkce je funkce seznam příkazů mezi {a}. Tento seznam se provádí kdykoli název je zadán jako název jednoduchého příkazu. Stav ukončení funkce je stav ukončení posledního příkazu provedeného v těle.

Komentáře

V neinteraktivním shellu nebo interaktivním shellu, ve kterém je interactive_comments možnost nashopt vestavěný je povolen, slovo začínající# způsobí ignorování tohoto slova a všech zbývajících znaků na tomto řádku. Interaktivní shell bezinteractive_comments povolena možnost nepovoluje komentáře. The interactive_comments je ve výchozím nastavení zapnuto v interaktivních shellů.

Citace

Citace se používá k odstranění zvláštního významu některých znaků nebo slov do shellu. Citace lze použít k vypnutí speciálního zpracování zvláštních znaků, k zabránění rozpoznání vyhrazených slov jako takových a k zabránění rozšíření parametrů.

Každý z metacharaktery uvedené výše v částiDefinice má zvláštní význam shell a musí být citován, pokud se má reprezentovat.

Když se používají zařízení pro rozšiřování historie příkazů, rozšíření historie charakter, obvykle!, musí být citováno, aby se zabránilo rozšíření historie.

Existují tři mechanismy citování: escape character , jednoduché uvozovky a dvojité uvozovky.

Nekotované zpětné lomítko () je escape character . Zachovává se doslovná hodnota následujícího znaku s výjimkou . Pokud pár se objeví a zpětné lomítko není samo o sobě citováno je považováno za pokračování v řádku (to znamená, že je odebrán ze vstupního proudu a efektivně ignorován).

Uložení znaků v jednoduchých uvozovkách zachovává literární hodnotu každého znaku v uvozovkách. Jedna citace nemusí nastat mezi jednotlivými uvozovkami, a to i v případě, že předchází zpětné lomítko.

Uložení znaků v dvojitých uvozovkách zachovává doslovnou hodnotu všech znaků v uvozovkách, s výjimkou$, ', a. Postavy$ a' zachovat jejich zvláštní význam v rámci dvojitých uvozovek. Zpětné lomítko si zachovává svůj zvláštní význam pouze tehdy, když následuje jeden z následujících znaků:$, ', ', , nebo. Dvojitá citace může být uvedena v rámci dvojitých uvozovek předcházejícím zpětným lomítkem.

Zvláštní parametry* a@ mají zvláštní význam, pokud jsou v uvozovkách.

Slova formuláře$' řetězec "se zachází speciálně. Slovo se rozšiřuje na řetězec , přičemž znaky, které unikly zpětným lomem, byly nahrazeny podle normy ANSI C. Sekvence únikového lomítka, pokud jsou přítomny, jsou dekódovány následovně:

  • A: varování (zvonek)
  • b: backspace
  • E: únikový znak
  • F: podávání formuláře
  • n: nový řádek
  • r: návrat vozíku
  • t: horizontální záložka
  • proti: vertikální záložka
  • \: zpětné lomítko
  • ': jednoduchá citace
  • nnn : osmibitový znak, jehož hodnota je osmičková hodnota nnn (jedna až tři číslice)
  • X HH : osmibitový znak, jehož hodnota je hexadecimální hodnota HH (jeden nebo dva hexadecimální číslice)
  • C X : kontrolní- X charakter

Rozšířený výsledek je jednočinný, jako by nebyl přítomen dolarový znak.

Dvojitý řetězec, jehož znakem je dolar ($) způsobí překlad řetězce podle aktuálního národního prostředí. Je-li aktuální localeC neboPOSIX, dolarová značka je ignorována. Je-li řetězec přeložen a nahrazen, nahrazení je dvakrát citováno.

Parametry

A parametr je jednotka, která ukládá hodnoty. Může to být a název , číslo nebo jeden ze zvláštních znaků uvedených v částiZvláštní parametry. Pro účely shellu, a proměnná je parametr označený a název . Proměnná má a hodnota a nula nebo více atributy . Atributy jsou přiřazeny pomocíprohlásit vestavěný příkaz.

Pokud je přiřazena hodnota, je nastaven parametr. Nulový řetězec je platná hodnota. Jakmile je nastavena proměnná, může být deaktivována pouze pomocíunset vestavěný příkaz.

A proměnná může být přiděleno prohlášením formuláře: název = hodnota

Li hodnota není zadána, proměnná je přiřazena nulovému řetězci. Všechno hodnoty podstoupí expanzi tilde, parametr a variabilní expanzi, náhradu příkazu, aritmetickou expanzi a odebrání citátu. Má-li proměnnácelé číslo atribut set, pak hodnota podléhá aritmetické expanzi, i když není použito rozšíření $ ((…)). Rozdělení slov se neprovádí, s výjimkou'$@' jak je vysvětleno v částiZvláštní parametry. Rozšíření cesty není provedeno. Příkazy přiřazení se mohou také zobrazovat jako argumenty proprohlásit, sázejte, vývozní, pouze ke čtení, a místní vestavěné příkazy.

Polohové parametry

A polohový parametr je parametr označený jednou nebo více číslicemi, s výjimkou jednoho číslice 0. Pozicionální parametry jsou při vyvolání argumentů shellu přiřazeny a mohou být znovu přiřazeny pomocísoubor vestavěný příkaz. Polohové parametry nesmí být přiřazeny příkazům přiřazení. Pozicionální parametry jsou dočasně nahrazeny, když je provedena funkce shellu.

Pokud se rozšiřuje polohový parametr, který se skládá z více než jedné číslice, musí být přiložen do závor.

Zvláštní parametry

Skořepina zvlášť zpracovává několik parametrů. Tyto parametry lze odkazovat pouze; jejich přidělení není povoleno.

  • *: Rozbalí se na polohové parametry, počínaje jedním. Když expanze nastane v rámci dvojitých uvozovek, rozšiřuje se na jedno slovo s hodnotou každého parametru odděleného prvním znakemIFS speciální proměnná. To je, "$*"je ekvivalentní"$1 C $2 C ", kde C je první znak hodnotyIFS proměnná. LiIFS je zrušeno, parametry jsou odděleny mezerami. LiIFS je null, parametry jsou spojeny bez zasahujících separátorů.
  • @: Rozbalí se na polohové parametry, počínaje jedním. Když expanze nastane v rámci dvojitých uvozovek, každý parametr se rozbalí na samostatné slovo. To je, "$@"je ekvivalentní"$1' '$2"… Pokud neexistují žádné poziční parametry,"$@" a$@rozšiřují se na nic (jsou odstraněny).
  • #: Rozbalí se na počet polohových parametrů v desítkové soustavě.
  • ?: Rozbalí se na stav posledně provedeného potrubí popředí.
  • -: Rozbalí se na příznaky aktuální volby, jak je uvedeno při vyvolání, pomocí příkazusoubor vestavěný příkaz nebo příkazy nastavené samotným shellem, jako je například-i volba.
  • $: Rozbalí se do ID procesu shellu. V subshell () se rozšíří na ID procesu aktuálního shellu, nikoliv na subshell.
  • !: Rozbalí se na ID procesu posledního příkazu na pozadí (asynchronní).
  • 0: Rozbalí se na název skriptu shell nebo shellu. Toto je nastaveno na inicializaci shellu. Libash je vyvolána se souborem příkazů,$0 je nastaven na název daného souboru. Libash je spuštěn s-C možnost, pak$0 je nastaven na první argument po provedení řetězce, pokud je přítomen. V opačném případě je nastavena na název souboru použitý k vyvoláníbash, jak je uvedeno argumentem nula.
  • _: Při spuštění shellu nastavte na absolutní název souboru shellu nebo shell skriptu, který se provede jako předaný v seznamu argumentů. Následně se rozšíří na poslední argument předchozího příkazu. Také nastavte úplný název každého příkazu provedeného a umístěného do prostředí exportovaného do tohoto příkazu. Při kontrole pošty obsahuje tento parametr název aktuálně kontrolovaného souboru pošty.

Shell proměnné

Následující proměnné jsou nastaveny pomocí shellu:

BASH: Rozbalí se na úplný název souboru použitý pro vyvolání této instancebash.

BASH_VERSINFO: Čtecí proměnná pole, jejíž členové obsahují informace o verzi pro tuto instanci bash. Hodnoty přiřazené členům pole jsou následující:

  • BASH_VERSINFO 0: Hlavní číslo verze ( uvolnění )
  • BASH_VERSINFO 1: Drobné číslo verze ( verze )
  • BASH_VERSINFO 2: Úroveň patchů
  • BASH_VERSINFO 3: Verze sestavení
  • BASH_VERSINFO 4: Stav uvolnění ( beta1, například)
  • BASH_VERSINFO 5: HodnotaMACHTYPE

BASH_VERSION: Rozbalí se na řetězec popisující verzi této instancebash.

COMP_CWORD: Index do$ {COMP_WORDS} slova obsahující aktuální pozici kurzoru. Tato proměnná je dostupná pouze ve funkcích shellu vyvolaných programovatelnými zařízeními pro dokončení.

COMP_LINE: Aktuální příkazový řádek. Tato proměnná je dostupná pouze ve funkcích shell a externích příkazech vyvolaných programovatelnými zařízeními pro dokončení.

COMP_POINT: Index aktuální pozice kurzoru vzhledem k počátku aktuálního příkazu. Pokud je aktuální pozice kurzoru na konci aktuálního příkazu, hodnota této proměnné se rovná$ {# COMP_LINE}. Tato proměnná je dostupná pouze ve funkcích shell a externích příkazech vyvolaných programovatelnými zařízeními pro dokončení.

COMP_WORDS: Proměnná pole sestávající z jednotlivých slov v aktuálním příkazovém řádku. Tato proměnná je dostupná pouze ve funkcích shellu vyvolaných programovatelnými zařízeními pro dokončení.

DIRSTACK: Proměnná pole obsahující aktuální obsah zásobníku adresářů. Adresáře se zobrazí v zásobníku v pořadí, v jakém jsou zobrazenydirs vestavěný. Přiřazení členů této pole může být použito k úpravě adresářů již v zásobníku, alepushd apopd vestavěné soubory musí být použity k přidávání a odebírání adresářů. Přiřazení této proměnné nezmění aktuální adresář. LiDIRSTACK je zrušena, ztrácí své speciální vlastnosti, i když je následně resetována.

EUID: Rozbalí se na skutečné ID uživatele aktuálního uživatele, inicializované při spuštění shellu. Tato proměnná je readonly.

FUNCNAME: Název kterékoli aktuálně spouštějící funkce shellu. Tato proměnná existuje pouze při spuštění funkce shellu. Přiřazení kFUNCNAME nemá žádný vliv a vrátí chybový stav. LiFUNCNAME je zrušena, ztrácí své speciální vlastnosti, i když je následně resetována.

SKUPINY: Proměnná pole obsahující seznam skupin, jejichž členem je aktuální uživatel. Přiřazení kSKUPINY nemá žádný vliv a vrátí chybový stav. LiSKUPINY je zrušena, ztrácí své speciální vlastnosti, i když je následně resetována.

HISTCMD: Číslo historie nebo index v seznamu historie aktuálního příkazu. LiHISTCMD je zrušena, ztrácí své speciální vlastnosti, i když je následně resetována.

HOSTNAME: Automaticky nastaveno na název aktuálního hostitele.

HOSTTYPE: Automaticky nastavit na řetězec, který jednoznačně popisuje typ stroje, na kterém jebash se provádí. Výchozí nastavení je závislé na systému.

LINENO: Pokaždé, když je tento parametr odkazován, shell nahrazuje desetinné číslo reprezentující aktuální sekvenční číslo (od 1) v rámci skriptu nebo funkce. Pokud není ve skriptu nebo v funkci, nenahrazuje záměna substituovaná hodnota. LiLINENO je zrušena, ztrácí své speciální vlastnosti, i když je následně resetována.

MACHTYPE: Automaticky nastavit na řetězec, který plně popisuje typ systému, na kterém jebash se provádí ve standardním GNU cpu-company-system formát. Výchozí nastavení je závislé na systému.

OLDPWD: Předchozí pracovní adresář nastavený příkazemCD příkaz.

OPTARG: Hodnota argumentu poslední možnosti zpracované příkazemgetopts vestavěný příkaz.

OPTIND: Index dalšího argumentu, který má zpracovatgetopts vestavěný příkaz.

OSTYPE: Automaticky nastavena na řetězec, který popisuje operační systém, na kterém jebash se provádí. Výchozí nastavení je závislé na systému.

PIPESTATUS: Proměnná pole obsahující seznam hodnot stavu ukončení z procesů v nejvíce nedávno provedeném potrubí popředí, který může obsahovat pouze jeden příkaz.

PPID: ID procesu nadřazeného shellu. Tato proměnná je readonly.

PWD: Aktuální pracovní adresář nastavený vCD příkaz.

NÁHODNÝ: Při každém odkazu na tento parametr se generuje náhodné celé číslo mezi 0 a 32767. Sekvence náhodných čísel může být inicializována přidělením hodnoty NÁHODNÝ. LiNÁHODNÝ je zrušena, ztrácí své speciální vlastnosti, i když je následně resetována.

ODPOVĚĎ: Nastavte řádek vstupu, který čtetečíst vestavěný příkaz, pokud nejsou dodány žádné argumenty.

SEKUNDY: Při každém odkazu na tento parametr se vrátí počet sekund od vyvolání shellu. Je-li přiřazena hodnotaSEKUNDY, hodnota vrácená v následujících referencích je počet sekund od přiřazení plus přiřazená hodnota. Li SEKUNDY je zrušena, ztrácí své speciální vlastnosti, i když je následně resetována.

SHELLOPTS: Seznam oddělených dvojteček povolených možností shellu. Každé slovo v seznamu je platným argumentem pro možnost nasoubor vestavěný příkaz. Možnosti zobrazené vSHELLOPTS jsou uvedeny jako na podleset -o. Pokud je tato proměnná v prostředí, když jebash spustí se, každá možnost shellu v seznamu bude povolena před čtením všech spouštěcích souborů. Tato proměnná je readonly.

SHLVL: Zvýšeno o jeden při každém instancibash je spuštěn.

UID: Rozbalí se na uživatelské ID aktuálního uživatele, inicializované při spuštění shellu. Tato proměnná je readonly.

Následující proměnné používá shell. V některých případech,bash přiřadí proměnné výchozí hodnotu; tyto případy jsou zaznamenány.

BASH_ENV: Je-li nastaven tento parametrbash je spuštěn shell skript, jeho hodnota je interpretována jako název souboru obsahující příkazy k inicializaci shell, jako v ~ / .bashrc . Hodnota BASH_ENV je podroben expanzi parametrů, nahrazení příkazu a aritmetické rozšíření před tím, než bude interpretován jako název souboru.CESTA se nepoužívá k vyhledání výsledného názvu souboru.

CDPATH: Cesta hledání proCD příkaz. Jedná se o seznam adresářů oddělených dvojtečkami, ve kterém shell vyhledává adresáře cílů zadané příkazemCD příkaz. Hodnota vzorku je ".: ~: / Usr".

Sloupce: Používá sevybrat vestavěný příkaz pro určení šířky terminálu při tisku výběrových seznamů. Automaticky nastavit po obdržení SIGWINCH.

COMPREPLY: Proměnná pole, ze kterého jebash čte možné dokončení generované funkcí shellu vyvolanou programovatelným zařízením pro dokončení.

FCEDIT: Výchozí editor profc vestavěný příkaz.

FIGNORE: Seznam přípon oddělených dvojtečkou, který chcete ignorovat při dokončení názvu souboru. Název souboru, jehož přípona odpovídá jednomu z položek v souboruFIGNORE je vyloučen ze seznamu shodných názvů souborů. Hodnota vzorku je ".o: ~".

GLOBIGNORE: Seznam vzorců oddělených dvojtečkami definující soubor názvů souborů, který má být ignorován rozšířením cesty. Pokud název souboru odpovídající vzoru rozšíření cesty odpovídá i některému vzoru vGLOBIGNORE, je odstraněn ze seznamu zápasů.

HISTCONTROL: Je-li nastavena hodnota ignorespace , řádky začínající písmenem aprostor nejsou v seznamu historie zadány. Pokud je nastavena hodnota ignoredups , nejsou zadány řádky, které odpovídají poslednímu řádku historie. Hodnota ignoreboth kombinuje dvě možnosti. Pokud je tato hodnota zrušena nebo pokud je nastavena na jinou hodnotu než výše, všechny řádky přečtené analyzátorem jsou uloženy v seznamu historie podle hodnotyHISTIGNORE. Funkci této proměnné nahrazuje HISTIGNORE. Druhý a následující řádky složeného příkazu pro více řádků nejsou testovány a jsou přidány do historie bez ohledu na hodnotuHISTCONTROL.

HISTFILE: Název souboru, ve kterém je uložena historie příkazu. Výchozí hodnota je ~ / .bash_history . Pokud je tato volba zrušena, historie příkazů není uložena při ukončení interaktivního shellu.

HISTFILESIZE: Maximální počet řádků obsažených v souboru historie. Pokud je této proměnné přiřazena hodnota, soubor historie je v případě potřeby zkrácen, aby obsahoval více než tento počet řádků. Výchozí hodnota je 500. Soubor historie je také zkrácen na tuto velikost po zápisu při ukončení interaktivního shellu.

HISTIGNORE: Seznam vzorců oddělených dvojtečkami, který se používá k určení, které příkazové řádky mají být uloženy v seznamu historie. Každý vzorek je ukotven na začátku řádku a musí odpovídat úplnému řádku (žádné implicitní "*'je připojen). Každý vzor je testován na linii po kontrolách specifikovaných vHISTCONTROL jsou použity. Kromě obvyklých znaků odpovídajících znakům skořepiny "&'odpovídá předchozímu řádku historie. "&'může uniknout zpětným lomítkem; zpětné lomítko je před pokusem o zápas odstraněno. Druhý a následující řádky složeného příkazu s více řádky nejsou testovány a přidány do historie bez ohledu na hodnotuHISTIGNORE.

HISTSIZE: Počet příkazů zapamatovatelných v historii příkazů. Výchozí hodnota je 500.

DOMOV: Domovský adresář aktuálního uživatele; výchozí argument proCD vestavěný příkaz. Hodnota této proměnné je také použita při provádění rozšíření tilde.

HOSTFILE: Obsahuje název souboru ve stejném formátu jako / etc / hosts který by měl být čten, když shell potřebuje dokončit název hostitele. Seznam možných dokončení názvu hostitele může být změněn během spouštění shellu; při dalším pokusu o dokončení názvu hostitele po změně hodnoty,bash přidá obsah nového souboru do existujícího seznamu. Li HOSTFILE je nastavena, ale nemá žádnou hodnotu,bash pokusy o čtení / etc / hosts pro získání seznamu možných dokončení názvu hostitele. KdyžHOSTFILE je zrušeno, seznam hostitelů je vymazán.

IFS: The Interní oddělovač polí se používá pro rozdělení slov po rozšíření a pro rozdělení řádků do slov sčíst vestavěný příkaz. Výchozí hodnota je "''.

IGNOREEOF: Ovládá činnost interaktivního shellu při přijetíEOF jako jediný vstup. Pokud je hodnota nastavena, je hodnota po sobě jdoucíEOF znaky, které musí být zadány jako první znaky na vstupním řádku dřívebash výstupy. Pokud je proměnná k dispozici, ale nemá číselnou hodnotu nebo nemá žádnou hodnotu, je výchozí hodnota 10. Pokud neexistuje,EOF znamená konec vstupu do shellu.

INPUTRC: Název souboru proreadline spouštěcí soubor, přepsání výchozí hodnoty ~ / .inputrc .

LANG: Určuje kategorii národního prostředí pro libovolnou kategorii, která není specificky vybrána s proměnnou začínající naLC_.

LC_ALL: Tato proměnná přepsá hodnotuLANG a dalšíLC_ proměnná určující kategorii národního prostředí.

LC_COLLATE: Tato proměnná určuje pořadí řazení použité při třídění výsledků rozšíření cesty a určuje chování rozsahových výrazů, tříd ekvivalence a sekvencí řazení v rámci rozšíření cesty a porovnání vzoru.

LC_CTYPE: Tato proměnná určuje interpretaci znaků a chování tříd znaků v rámci rozšíření cesty a porovnání vzoru.

LC_MESSAGES: Tato proměnná určuje národní prostředí použité k překládání řetězců s dvojitým označením, kterým předchází a$.

LC_NUMERIC: Tato proměnná určuje kategorii národního prostředí použitou pro formátování čísel.

LINKY: Používá sevybrat vestavěný příkaz pro určení délky sloupce pro tisk výběrových seznamů. Automaticky nastavit po obdržení SIGWINCH.

POŠTA: Pokud je tento parametr nastaven na název souboru aMAILPATH proměnná není nastavena,bashinformuje uživatele o příchodu pošty do zadaného souboru.

MAILCHECK: Určuje, jak často (v sekundách)bash kontroly poštou. Výchozí hodnota je 60 sekund. Když je čas zkontrolovat poštu, shell to provede před zobrazením primárního dotazu. Pokud je tato proměnná zrušena nebo je nastavena na hodnotu, která není větší nebo rovna nule, pak shell zakázá kontrolu pošty.

MAILPATH: Seznam názvů souborů oddělených dvojtečkami, které mají být zkontrolovány pro poštu. Zpráva, která má být vytištěna při příchodu pošty do určitého souboru, může být zadána oddělením názvu souboru ze zprávy pomocí znaku '?'. Pokud je použito v textu zprávy,$_ rozbalí se na název aktuálního mailového souboru. Příklad:

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

Bash dodává výchozí hodnotu pro tuto proměnnou, ale umístění uživatelských poštovních souborů, které používá, závisí na systému (/ var / mail /$ USER).

OPTERR: Pokud je nastavena hodnota 1,bash zobrazuje chybové zprávy generované příkazemgetopts vestavěný příkaz.OPTERR je inicializován na 1 pokaždé, když je vyvolán shell nebo je spuštěn skript shell.

CESTA: Vyhledávací cesta pro příkazy. Jedná se o seznam adresářů oddělených dvojtečkami, ve kterých shell hledá příkazy. Výchozí cesta je závislá na systému a je nastavena správcem, který nainstalujebash. Společná hodnota je "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :.

POSIXLY_CORRECT: Pokud je tato proměnná v prostředí, kdyžbash začíná, shell vstoupí posix režim před přečtením spouštěcích souborů, jako by to bylo--posix byla předložena možnost vyvolání. Je-li nastaven, když je shell spuštěn,bash umožňuje posix režim jako by příkaz set -o posix byl popraven.

PROMPT_COMMAND: Je-li nastaven, je hodnota provedena jako příkaz před vydáním každé primární výzvy.

PS1: Hodnota tohoto parametru se rozbalí a použije jako primární výzvu řetězec. Výchozí hodnota je " s- v $''.

PS2: Hodnota tohoto parametru se rozbalí jako uPS1 a používá se jako sekundární výzva řetězec. Výchozí hodnota je "> ''.

PS3: Hodnota tohoto parametru se používá jako výzva provybrat příkaz.

PS4: Hodnota tohoto parametru se rozbalí jako uPS1, a hodnota je vytištěna před každým příkazembash zobrazuje během sledování spuštění. První znakPS4 je opakovaně opakovaně opakovaně označen několika úrovněmi. Výchozí hodnota je "+ ''.

ČASOVÝ FORMÁT: Hodnota tohoto parametru se používá jako formátovací řetězec, který specifikuje, jak informace o časování pro potrubí předčíslíčas vyhrazené slovo by mělo být zobrazeno. The % znak zavádí sekvenci escape, která je rozšířena na časovou hodnotu nebo jiné informace. Únikové sekvence a jejich významy jsou následující. Stojky označují volitelné části.

  • %%: Doslovný%
  • % str l R: Uplynulý čas v sekundách
  • % str l U: Počet sekund CPU strávených v uživatelském režimu
  • % str l S: Počet sekund CPU strávených v režimu systému
  • % P: Procento CPU, vypočteno jako (% U +% S) /% R

Volitelný str je číslice určující hodnotu přesnost , počet zlomkových číslic za desetinnou čárkou. Hodnota 0 způsobí, že se neprodukuje žádná desetinná tečka nebo zlomek. Mohou být uvedeny nejvýše tři místa za desetinnou čárkou; hodnoty str větší než 3 jsou změněny na 3. Pokud str není zadán, použije se hodnota 3.

Volitelnýl určuje delší formát, včetně minut, formuláře MM m SS . FF s. Hodnota str určuje, zda je frakce zahrnutá.

Pokud tato proměnná není nastavena,bash se chová jako by měla hodnotu $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Je-li hodnota null, nebudou zobrazeny žádné informace o časování. Při zobrazení řetězce formátu se přidá nový řádek.

TMOUT: Pokud je hodnota nastavena na hodnotu větší než nula,TMOUT je považován za výchozí časový limit pročíst vestavěný. Thevybrat příkaz se ukončí, pokud vstup nepocházíTMOUT