Comanda Linux bash este unSH- interpretor de limbaj de comandă compatibil care execută comenzi citite din intrarea standard sau dintr-un fișier.bash încorporează, de asemenea, caracteristici utile din cochilia Korn și C (KSH șicsh).
Bash Opțiuni
În plus față de opțiunile de caractere cu un singur caracter documentate în descrierea fișieruluia stabilit comanda construita,bash interpretează următoarele opțiuni atunci când este invocată:
- -c şir: În cazul în care-c opțiunea este prezentă, apoi se citesc comenzile de la şir . Dacă există argumente după şir , acestea sunt atribuite parametrilor poziționali, începând cu$0.
- -i: În cazul în care-i opțiunea este prezentă, shell-ul este interactiv .
- -l: Facebash acționa ca și cum ar fi fost invocată ca o coajă de conectare.
- -r: În cazul în care-r opțiunea este prezentă, shell-ul devine restricționat.
- -s: În cazul în care-s opțiunea este prezentă sau dacă nu mai există argumente după procesarea opțiunii, atunci comenzile sunt citite din intrarea standard. Această opțiune permite setarea parametrilor poziționali la invocarea unei cochilii interactive.
- -D: O listă a tuturor șirurilor cu două cifre precedate$ este imprimat pe ieșirea standard. Acestea sunt șirurile care sunt supuse traducerii limbajului atunci când localizarea curentă nu esteC sauPOSIX. Aceasta implică -n opțiune; nu vor fi executate comenzi.
- - + O shopt_option : shopt_option este una dintre opțiunile de coajă acceptate deshopt builtin. Dacă shopt_option este prezent,-O stabilește valoarea acestei opțiuni și+ O o trimite. Dacă shopt_option nu este furnizat, numele și valorile opțiunilor shell acceptate deshopt sunt imprimate pe ieșirea standard. Dacă opțiunea de invocare este + O, ieșirea este afișată într-un format care poate fi refolosit ca intrare.
- --: A-- semnalează sfârșitul opțiunilor și dezactivează procesarea suplimentară a opțiunilor. Orice argumente după-- sunt tratate ca nume de fișiere și argumente. Un argument al- este echivalent cu--.
bash interpretează și o serie de opțiuni cu mai multe caractere. Aceste opțiuni trebuie să apară pe linia de comandă înainte ca opțiunile cu un singur caracter să fie recunoscute:
- --dump-po-siruri de caractere: Echivalentă cu-D, dar ieșirea este în GNU gettext po (format obiect portabil).
- --dump-siruri de caractere: Echivalentă cu-D.
- --Ajutor: Afișați un mesaj de utilizare la ieșirea standard și ieșiți cu succes.
- --init-fișier: fişier și --rcfile fişier : Executați comenzi de la fişier în loc de fișierul inițial standard de inițializare ~ / .Bashrc dacă shell-ul este interactiv.
- --Logare: Echivalentă cu-l.
- --noediting: Nu utilizați GNUCiteste linia biblioteca pentru a citi liniile de comandă când shell-ul este interactiv.
- --noprofile: Nu citiți fișierul de pornire la nivel de sistem / Etc / profile sau oricare dintre fișierele de inițializare personale ~ / .Bash_profile , ~ / .Bash_login , sau ~ / .Profile . În mod implicit,bash citește aceste fișiere atunci când este invocată ca o coajă de conectare.
- --norc: Nu citiți și executați fișierul de inițializare personal ~ / .Bashrc dacă shell-ul este interactiv. Această opțiune este activată în mod implicit dacă shell-ul este invocat caSH.
- --posix: Schimbați comportamentulbash unde operația implicită diferă de standardul POSIX pentru a se potrivi standardului ( modul posix ).
- --restricted: Coaja devine restricționată.
- --rpm-necesită: Produceți lista fișierelor necesare pentru ca scriptul shell să se execute. Aceasta implică "-n" și este supusă acelorași limitări ca și verificarea verificării erorilor de timp de compilare; Backticks, testele și evals nu sunt analizate, astfel încât unele dependențe pot fi ratate.
- --verbose: Echivalentă cu-v.
- --versiune: Afișați informații despre versiunea pentru această instanță debash pe ieșirea standard și ieșire cu succes.
Argumente
Dacă argumentele rămân după prelucrarea opțiunii și nici nu-c nici-s opțiunea a fost furnizată, se presupune că primul argument este numele unui fișier care conține comenzi pentru shell. Dacă bash este invocată în acest mod,$0 este setată la numele fișierului, iar parametrii poziționali sunt setați la argumentele rămase.bash citește și execută comenzi din acest fișier; apoi iese.bashstarea de ieșire este starea de ieșire a ultimei comenzi executate în script. Dacă nu se execută nici o comandă, starea de ieșire este 0. O încercare este făcută mai întâi pentru a deschide fișierul în directorul curent și, dacă nu se găsește niciun fișier, atunci shell-ul caută directoarele înCALE pentru scenariu.
Invocare
A conectați coajă este unul al cărui prim caracter al argumentului zero este a-, sau unul a început cu--Logare opțiune.
Un interactiv shell este unul început fără argumente non-opțiune și fără-c opțiune a cărei intrare și ieșire standard sunt conectate la bornele determinate de isatty (3), sau una pornită cu-i opțiune.PS1 este setat și $- include dacă bash este interactiv, permițând unui script shell sau unui fișier de pornire să testeze această stare.
Următoarele paragrafe descriu cumbash execută fișierele de pornire. Dacă există vreun fișier, dar nu poate fi citit,bash raportează o eroare. Tildele sunt extinse în numele fișierelor așa cum este descris în Extensia Tilde.
Candbash este invocată ca o coajă de conectare interactivă sau ca o shell non-interactivă cu--Logare opțiune, acesta citește și execută mai întâi comenzi din fișier / Etc / profile , dacă acest fișier există. După citirea fișierului, acesta caută ~ / .Bash_profile , ~ / .Bash_login , și ~ / .Profile , în această ordine, și citește și execută comenzi de la primul care există și este lizibil.--noprofile opțiunea poate fi utilizată atunci când shell-ul este început să inhibe acest comportament.
Când o coadă de conectare iese,bash citește și execută comenzi din fișier ~ / .Bash_logout , dacă există.
Atunci când este pornită o coală interactivă care nu este o coajă de conectare,bash citește și execută comenzi de la ~ / .Bashrc , dacă acest fișier există. Acest lucru poate fi inhibat prin utilizarea--norc opțiune.--rcfile fişier opțiunea va forțabash pentru a citi și a executa comenzi de la fişier in loc de ~ / .Bashrc .
Candbash este pornit non-interactiv - pentru a rula un script shell, de exemplu - caută variabilaBASH_ENV în mediul înconjurător, își extinde valoarea dacă apare acolo și folosește valoarea extinsă ca nume de fișier pentru citire și executare.bash se comportă ca și cum ar fi executat următoarea comandă:
dacă -n "$ BASH_ENV"; atunci . "$ BASH_ENV"; Fi
dar valoarea luiCALE variabila nu este utilizată pentru a căuta numele fișierului. Dacăbash este invocat cu numeleSH, încearcă să imite comportamentul de pornire al versiunilor istorice aleSH cât mai aproape posibil, respectând în același timp și standardul POSIX. Atunci când este invocată ca o coajă de conectare interactivă sau o coajă non-interactivă cu--Logare opțiune, aceasta încearcă mai întâi să citească și să execute comenzi de la / Etc / profile și ~ / .Profile , în această ordine.--noprofile poate fi folosită pentru a inhiba acest comportament. Atunci când este invocată ca o coajă interactivă cu numele SH, bash caută variabilaENV, își mărește valoarea dacă este definită și folosește valoarea extinsă ca nume de fișier pentru citire și executare. Deoarece shell-ul a fost invocat caSH nu încercați să citiți și să executați comenzi de la alte fișiere de pornire,--rcfile opțiunea nu are efect. O cochilie non-interactivă invocată cu numeleSH nu încercați să citiți alte fișiere de pornire. Când sunt invocate caSH, bash intră POSIX după citirea fișierelor de pornire. Candbash este pornit în POSIX mod, ca și cu--posix linia de comandă, urmează standardul POSIX pentru fișierele de pornire. În acest mod, modulele interactive extindeENV variabila și comenzile sunt citite și executate din fișierul al cărui nume este valoarea extinsă. Nu sunt citite alte fișiere de pornire. bash încearcă să determine când este rulat de daemon de la distanță, de regulă rshd . Dacă bash determină că este rulat de către rshd , citește și execută comenzi de la ~ / .Bashrc , dacă acest fișier există și este lizibil. Nu va face acest lucru dacă este invocat caSH.--norc opțiunea poate fi utilizată pentru a inhiba acest comportament și--rcfile opțiunea poate fi folosită pentru a forța un alt fișier să fie citit, dar rshd nu invocă în general shell-ul cu aceste opțiuni sau le permite să fie specificate. Dacă shell-ul este pornit cu id-ul utilizatorului (grupului) efectiv nu este egal cu ID-ul real al utilizatorului (grup) și-p opțiunea nu este furnizată, nu sunt citite fișiere de pornire, funcțiile shell nu sunt moștenite din mediul înconjurător,SHELLOPTS variabila, dacă apare în mediul înconjurător, este ignorată și id-ul utilizator eficient este setat la ID-ul real al utilizatorului. În cazul în care-p opțiunea este furnizată la invocare, comportamentul de pornire este același, dar ID-ul de utilizator efectiv nu este resetat. Următoarele definiții sunt utilizate în tot restul acestui document: Cuvintele rezervate sunt cuvinte care au un înțeles special pentru coajă. Următoarele cuvinte sunt recunoscute ca fiind rezervate atunci când sunt necotate și fie primul cuvânt dintr-o comandă simplă, fie al treilea cuvânt al unuicazsaupentru comanda: ! caz se face elif altfel esac fi funcție dacă în select apoi până în timp ce {} timp A comandă simplă este o secvență de alocări opționale variabile, urmată degol- cuvintele și redirecționările separate și terminate de către operator de control . Primul cuvânt specifică comanda care trebuie executată și este trecută ca argument zero. Cuvintele rămase sunt transmise ca argumente pentru comanda invocată. Valoarea returnată a comandă simplă este statutul său de ieșire, sau 128+ n dacă comanda este terminată de semnal n . A conducte este o secvență a uneia sau mai multor comenzi separate de caracter|. Formatul pentru o conductă este timp -p ! comanda | comanda2 … . Producția standard a comanda este conectat printr-o țeavă la intrarea standard a comanda2 . Această conexiune este efectuată înainte de orice redirecționare specificată de comandă. În cazul cuvântului rezervat! precede o conductă, starea de ieșire a acelei conducte este NU logică a stării de ieșire a ultimei comenzi. În caz contrar, starea conductei este starea de ieșire a ultimei comenzi. Shell așteaptă ca toate comenzile din conducte să se termine înainte de a reveni la o valoare. În cazul în caretimp cuvântul rezervat precede o conductă, timpul scurs, precum și timpul de utilizare și de sistem consumat prin execuția sa sunt raportate când conductele se termină.-p opțiunea modifică formatul de ieșire la cel specificat de POSIX.TIMEFORMAT variabila poate fi setată la un șir de format care specifică modul în care trebuie afișate informațiile de sincronizare. Fiecare comandă dintr-o conductă este executată ca un proces separat (într-un subshell, de exemplu). A listă este o secvență a unuia sau mai multor conducte separate de unul dintre operatori;, &, &&, sau||, și opțional oprită de una dintre;, &, sau Din aceste operatori lista,&& și|| au precedență egală, urmată de; și&, care au precedență egală. O secvență de una sau mai multe linii noi poate apărea într-un listă în loc de punct și virgulă pentru a delimita comenzile. Dacă o comandă este terminată de operatorul de control&, shell-ul execută comanda în fundal într-un subshell. Shellul nu așteaptă terminarea comenzii și starea de returnare este 0. Comenzi separate prin a; sunt executate secvențial; cochila așteaptă ca fiecare comandă să se termine pe rând. Starea de returnare este starea de ieșire a ultimei comenzi executate. Operatorii de control&& și|| desemnează liste AND și liste OR, respectiv. O listă AND conține formularul command1 && comanda2 comanda2 se execută dacă și numai dacă, command1 returnează un statut de ieșire de zero. O listă OR conține formularul command1 || comanda2 comanda2 se execută dacă și numai dacă command1 returnează o stare de ieșire diferită de zero. Starea de returnare a listelor AND și OR este starea de ieșire a ultimei comenzi executate în listă. A comandă compusă este una dintre următoarele: (listă) : listă este executat într-un subshell. Atribuirile variabile și comenzile încorporate care afectează mediul shell nu rămân în vigoare după terminarea comenzii. Starea de returnare este starea de ieșire din listă . {list; } : listă este executat pur și simplu în mediul shell curent. listă trebuie să fie terminată cu o nouă linie sau cu punct și virgulă. Aceasta este cunoscută sub numele de a grup comandă . Starea de returnare este starea de ieșire din listă . Rețineți că spre deosebire de metacaracterele( și), { și} sunteți cuvinte rezervate și trebuie să apară atunci când un cuvânt rezervat este permis să fie recunoscut. Deoarece nu provoacă o pauză, trebuie să fie separate listă prin spațiul alb. ((expresie)) : The expresie se evaluează în conformitate cu normele descrise la punctul Evaluarea aritmetică. Dacă valoarea expresiei este diferită de zero, starea de returnare este 0; în caz contrar, starea de returnare este 1. Aceasta este exact echivalentă culăsa ' expresie '. expresie : Returnați o stare de 0 sau 1 în funcție de evaluarea expresiei condiționate expresie . Expresiile sunt compuse din primarele descrise mai jos la Expresii condiționate. Divizarea cuvântului și extinderea căii de cale nu se efectuează pe cuvintele dintre și; expansiunea tildei, extinderea parametrilor și a variabilelor, expansiunea aritmetică, substituția comenzilor, înlocuirea procesului și eliminarea citărilor. Cand== și!= operatorii sunt utilizați, șirul din dreapta operatorului este considerat un model și corespund regulilor descrise la punctulPotrivire de model. Valoarea returnată este 0 dacă șirul se potrivește sau nu corespunde modelului, respectiv 1, altfel. Orice parte a modelului poate fi citată pentru al forța să fie potrivită ca șir. Expresiile pot fi combinate folosind următorii operatori, listați în ordinea descrescătoare a precedenței: && și|| operatorii nu evaluează expresie2 dacă valoarea lui expresie1 este suficientă pentru a determina valoarea returnată a întregii expresii condiționate. Într-o coajă non-interactivă sau o coajă interactivă în care interactive_comments opțiune lashopt builtin este activat, un cuvânt care începe cu# face ca acest cuvânt și toate caracterele rămase de pe acea linie să fie ignorate. O coajă interactivă fărăinteractive_comments opțiunea activată nu permite comentarii. interactive_comments opțiunea este activată implicit în shell-uri interactive. Citându-l este folosit pentru a elimina semnificația specială a anumitor caractere sau cuvinte în shell. Citarea poate fi utilizată pentru a dezactiva tratamentul special pentru caracterele speciale, pentru a împiedica recunoașterea cuvintelor rezervate ca atare și pentru a preveni expansiunea parametrilor. Fiecare din metacaractere enumerate mai susDefiniții are înțeles special asupra cochiliei și trebuie citat dacă trebuie să se reprezinte. Când se utilizează facilitățile de expansiune a istoriei de comandă, extinderea istoriei caracter, de obicei!, trebuie să fie citat pentru a împiedica expansiunea istoriei. Există trei mecanisme de citare: caracter de evacuare , citate simple și ghilimele duble. O coloană inversă necorespunzătoare () este caracter de evacuare . Aceasta păstrează valoarea literală a următorului caracter care urmează, cu excepția lui Introducerea caracterelor în citate unică păstrează valoarea literală a fiecărui caracter din cadrul ghilimelor. Este posibil să nu apară nici o citare unică între citatele singulare, chiar dacă este precedată de un backslash. Introducerea caracterelor în ghilimele duble păstrează valoarea literală a tuturor caracterelor din ghilimele, cu excepția$, ', și. Personajele$ și' își păstrează semnificația lor specială în ghilimele duble. Partea din spate își păstrează semnificația specială numai atunci când este urmată de unul dintre următoarele caractere:$, ', ', , sau Parametrii specifici* și@ au înțeles special când sunt în ghilimele duble. Cuvintele din formular$' şir "sunt tratate special. Cuvântul se extinde la şir , cu caractere scoase din spate, înlocuite în conformitate cu standardul ANSI C. Secvențele de evacuare din spate, dacă sunt prezente, sunt decodate după cum urmează: Rezultatul extins este unic citat, ca și cum semnul dolarului nu ar fi fost prezent. Un șir dublu-cotat precedat de un semn de dolar ($) va determina traducerea șirului după localizarea actuală. Dacă este localizarea curentăC sauPOSIX, semnul dolarului este ignorat. Dacă șirul este tradus și înlocuit, înlocuitorul este dublu-cotat. A parametru este o entitate care stochează valori. Poate fi a Nume , un număr sau unul dintre caracterele speciale listate laParametrii specifici. Pentru scopurile shell-ului, a variabil este un parametru desemnat de a Nume . O variabilă are a valoare și zero sau mai mult atribute . Atributele sunt atribuite folosinddeclara comandă încorporată. Un parametru este setat dacă a fost atribuită o valoare. Șirul nul este o valoare validă. Odată ce o variabilă este setată, aceasta poate fi dezactivată numai prin utilizarea funcțieiunset comandă încorporată. A variabil pot fi atribuite printr-o declarație a formularului: Nume = valoare Dacă valoare nu este dată, variabilei i se atribuie șirul nul. Toate valorile suferă expansiune tilde, expansiune parametru și variabilă, substituție de comandă, expansiune aritmetică și eliminare de citare. Dacă variabila areîntreg setul de atribute, atunci valoare este supusă unei expansiuni aritmetice chiar dacă expansiunea $ ((…)) nu este utilizată. Divizarea cuvintelor nu se efectuează, cu excepția'$@' după cum se explică în secțiuneaParametrii specifici. Extinderea denumirii de cale nu este efectuată. Exemplele de declarații pot apărea, de asemenea, ca argumente pentrudeclara, typeset, export, numai citire, și local comenzi încorporate. A parametru de poziție este un parametru marcat cu una sau mai multe cifre, altele decât singura cifră. Parametrii poziționali sunt atribuiți din argumentele shell-ului atunci când sunt invocați și pot fi realocați utilizânda stabilit comandă încorporată. Parametrii poziționali nu pot fi atribuiți cu instrucțiuni de atribuire. Parametrii poziționali sunt înlocuiți temporar când se execută o funcție shell. Atunci când un parametru pozițional format din mai mult de o singură cifră este extins, acesta trebuie să fie închis în brațe. Cochilia tratează mai mult mai mulți parametri speciali. Acești parametri pot fi menționați numai; alocarea lor nu este permisă. Următoarele variabile sunt setate de shell: BASH: Extinde la numele de fișier complet folosit pentru a invoca această instanță debash. BASH_VERSINFO: O variabilă array readon a cărei membri dețin informații de versiune pentru acest exemplu de bash. Valorile atribuite membrilor matricei sunt după cum urmează: BASH_VERSION: Extinde la un șir care descrie versiunea acestei instanțe debash. COMP_CWORD: Un index în$ {COMP_WORDS} a cuvântului care conține poziția curentă a cursorului. Această variabilă este disponibilă numai în funcții de shell invocate de facilitățile programabile de completare. COMP_LINE: Linia de comandă curentă. Această variabilă este disponibilă numai în funcțiile shell și comenzile externe invocate de facilitățile programabile de completare. COMP_POINT: Indicele poziției cursorului curent față de începutul comenzii curente. Dacă poziția curentă a cursorului este la sfârșitul comenzii actuale, valoarea acestei variabile este egală cu$ {# COMP_LINE}. Această variabilă este disponibilă numai în funcțiile shell și comenzile externe invocate de facilitățile programabile de completare. COMP_WORDS: O variabilă de matrice constând din cuvintele individuale din linia de comandă curentă. Această variabilă este disponibilă numai în funcții de shell invocate de facilitățile programabile de completare. DIRSTACK: O variabilă de array care conține conținutul curent al stiva directorului. Directoarele apar în teanc în ordinea în care sunt afișate de cătredirs builtin. Atribuirea către membrii acestei matrice a variabilei poate fi utilizată pentru a modifica directoarele deja în stivă, darpushd șipopd builtins trebuie să fie utilizate pentru a adăuga și elimina directoare. Alocarea la această variabilă nu va schimba directorul curent. DacăDIRSTACK este dezactivat, își pierde proprietățile speciale, chiar dacă este resetat ulterior. EUID: Extinde la ID-ul de utilizator efectiv al utilizatorului curent, inițializat la pornirea shell-ului. Această variabilă este readonly. FUNCNAME: Numele oricărei funcții shell implicite. Această variabilă există numai atunci când se execută o funcție shell. Cesiuni laFUNCNAME nu au efect și returnează o stare de eroare. DacăFUNCNAME este dezactivat, își pierde proprietățile speciale, chiar dacă este resetat ulterior. GRUPUL: O variabilă de array care conține lista de grupuri din care membrul respectiv este utilizatorul curent. Cesiuni laGRUPUL nu au efect și returnează o stare de eroare. DacăGRUPUL este dezactivat, își pierde proprietățile speciale, chiar dacă este resetat ulterior. HISTCMD: Numărul istoricului sau indexul din lista de istoric a comenzii curente. DacăHISTCMD este dezactivat, își pierde proprietățile speciale, chiar dacă este resetat ulterior. HOSTNAME: Setarea automată la numele gazdei curente. HOSTTYPE: Setarea automată la un șir care descrie în mod unic tipul de mașină pe care se aflăbash se execută. Valoarea implicită este dependentă de sistem. LINENO: De fiecare dată când acest parametru este referit, shell-ul înlocuiește un număr zecimal reprezentând numărul liniei secvențiale actuale (începând cu 1) în cadrul unui script sau al unei funcții. Când nu este într-un script sau o funcție, valoarea substituită nu este garantată ca fiind semnificativă. DacăLINENO este dezactivat, își pierde proprietățile speciale, chiar dacă este resetat ulterior. MACHTYPE: Setarea automată la un șir care descrie pe deplin tipul de sistem pe care se aflăbash se execută în standardul GNU cpu-companie-sistem format. Valoarea implicită este dependentă de sistem. OLDPWD: Directorul de lucru anterior stabilit deCD comanda. OPTARG: Valoarea argumentului pentru ultima opțiune procesată degetopts comandă încorporată. OPTIND: Indicele următorului argument care trebuie prelucrat de cătregetopts comandă încorporată. ostype: Setarea automată la un șir care descrie sistemul de operare pe care se aflăbash se execută. Valoarea implicită este dependentă de sistem. PIPESTATUS: O variabilă de array care conține o listă de valori de stare de ieșire din procesele din conducta de primăvară cea mai recent executată, care poate conține doar o singură comandă. PPID: ID-ul de proces al părintelui shell-ului. Această variabilă este readonly. PWD: Directorul curent de lucru stabilit deCD comanda. ÎNTÂMPLĂTOR: De fiecare dată când acest parametru este referit, este generat un întreg aleator între 0 și 32767. Secvența numerelor aleatoare poate fi inițializată prin atribuirea unei valori la ÎNTÂMPLĂTOR. DacăÎNTÂMPLĂTOR este dezactivat, își pierde proprietățile speciale, chiar dacă este resetat ulterior. RĂSPUNS: Setați linia de intrare citită decitit comandă comandată când nu sunt furnizate argumente. SECUNDE: De fiecare dată când acest parametru este referit, numărul de secunde de la inversarea shell-ului este returnat. Dacă se atribuie o valoareSECUNDE, valoarea returnată la referințele ulterioare este numărul de secunde de la alocare plus valoarea atribuită. Dacă SECUNDE este dezactivat, își pierde proprietățile speciale, chiar dacă este resetat ulterior. SHELLOPTS: O listă separată de colon cu opțiuni de shell activate. Fiecare cuvânt din listă este un argument valid pentruo- opțiune laa stabilit comandă încorporată. Opțiunile care apar înSHELLOPTS sunt cele raportate ca pe deset -o. Dacă această variabilă se află în mediul în care se aflăbash , fiecare opțiune de shell din listă va fi activată înainte de a citi orice fișiere de pornire. Această variabilă este readonly. SHLVL: Creșterea cu câte un caz de fiecare datăbash este pornit. UID: Extinde la ID-ul de utilizator al utilizatorului curent, inițializat la pornirea shell-ului. Această variabilă este readonly. Următoarele variabile sunt utilizate de shell. In unele cazuri,bash atribuie o valoare implicită unei variabile; aceste cazuri sunt notate. BASH_ENV: Dacă acest parametru este setat cândbash execută un script de shell, valoarea sa este interpretată ca un nume de fișier care conține comenzi pentru a inițializa shell-ul, ca în ~ / .Bashrc . Valoarea a BASH_ENV este supusă extinderii parametrilor, înlocuirii comenzilor și expansiunii aritmetice înainte de a fi interpretată ca nume de fișier.CALE nu este folosit pentru a căuta numele de fișier rezultat. CDPATH: Calea de căutare pentruCD comanda. Aceasta este o listă de directoare separate de colon în care shell-ul caută directoarele de destinație specificate deCD comanda. O valoare a eșantionului este ".: ~: / Usr". COLOANE: Utilizat de cătreSelectați comanda încorporată pentru a determina lățimea terminalului la listarea listelor de selecție. Setarea automată la primirea unui SIGWINCH. COMPREPLY: O variabilă matrice din carebash citește posibilele completări generate de o funcție de shell invocată de facilitatea de completare programabilă. FCEDIT: Editorul implicit pentrufc comandă încorporată. FIGNORE: O listă de sufixe separate de colon pentru a fi ignorată atunci când se efectuează finalizarea numelui fișierului. Un nume de fișier al cărui sufix se potrivește cu una dintre intrările dinFIGNORE este exclus din lista de nume de fișiere potrivite. O valoare a eșantionului este ".o: ~". GLOBIGNORE: O listă de modele separate de colon care definesc setul de nume de fișiere care urmează să fie ignorate prin extinderea numelor de cale. Dacă un nume de fișier care corespunde unui model de expansiune nume de cale, se potrivește de asemenea cu unul din modelele dinGLOBIGNORE, este eliminat din lista de potriviri. HISTCONTROL: Dacă este setată la o valoare de ignorespace , linii care încep cu aspaţiu nu sunt introduse în lista de istoric. Dacă este setat la o valoare de ignoredups nu sunt introduse linii care se potrivesc cu ultima linie de istorie. O valoare de ignoreboth combină cele două opțiuni. Dacă sunt dezactivate sau dacă sunt setate la orice altă valoare decât cele de mai sus, toate liniile citite de parser sunt salvate în lista de istoric, în funcție de valoareaHISTIGNORE. Funcția acestei variabile este înlocuită de HISTIGNORE. Cea de-a doua linie și una ulterioară a unei comenzi compuse cu mai multe linii nu sunt testate și sunt adăugate istoricului indiferent de valoarea luiHISTCONTROL. HISTFILE: Numele fișierului în care se salvează istoricul comenzilor. Valoarea implicită este ~ / .Bash_history . Dacă este dezactivată, istoricul comenzilor nu este salvat când se iese o coală interactivă. HISTFILESIZE: Numărul maxim de linii conținute în fișierul istoric. Atunci când această variabilă este atribuită unei valori, fișierul istoric este trunchiat, dacă este necesar, să nu conțină mai mult decât acel număr de linii. Valoarea implicită este 500. Fișierul istoric este, de asemenea, trunchiat la această dimensiune după ce a fost scris când a ieșit o coală interactivă. HISTIGNORE: O listă a modelelor separate de colon pentru a decide care linii de comandă ar trebui salvate în lista de istoric. Fiecare model este ancorat la începutul liniei și trebuie să se potrivească liniei complete (fără implicit "*"este anexat). Fiecare model este testat în raport cu linia după verificările specificate deHISTCONTROL se aplica. În plus față de caracterele normale care se potrivesc caracterelor,&"se potrivește liniei istorice anterioare. '&"poate fi scăpat cu ajutorul unei loviri spate; backslash-ul este eliminat înainte de a încerca o potrivire. Cea de-a doua linie și una ulterioară a unei comenzi compuse cu mai multe linii nu sunt testate și sunt adăugate la istorie, indiferent de valoarea luiHISTIGNORE. HISTSIZE: Numărul comenzilor de reținut în istoricul comenzilor. Valoarea implicită este 500. ACASĂ: Directorul de acasă al utilizatorului curent; argumentul implicit pentruCD comandă încorporată. Valoarea acestei variabile este, de asemenea, utilizată atunci când se efectuează extinderea tilde. HOSTFILE: Conține numele unui fișier în același format ca și / etc / hosts care ar trebui citit când shell-ul trebuie să completeze un nume de gazdă. Lista posibilităților de completare a numelui de gazdă poate fi modificată în timp ce shell-ul rulează; următoarea completare a numelui de gazdă este încercată după modificarea valorii,bash adaugă conținutul noului fișier în lista existentă. Dacă HOSTFILE este setat, dar nu are valoare,bash încearcă să citească / etc / hosts pentru a obține lista completă a posibilelor nume de gazdă. CandHOSTFILE este dezactivat, lista cu numele de gazdă este șters. IFS: The Separator de câmp intern este folosit pentru divizarea cuvintelor după expansiune și pentru a împărți liniile în cuvinte cucitit comandă încorporată. Valoarea implicită este " IGNOREEOF: Controlează acțiunea unei cochilii interactive la primirea unui mesajEOF caracterul unic de intrare. Dacă este setat, valoarea este numărul de ordine consecutiveEOF caractere care trebuie introduse mai întâi ca primii caractere de pe o linie de intrarebash ieșiri. Dacă variabila există, dar nu are o valoare numerică sau nu are valoare, valoarea implicită este 10. Dacă nu există,EOF semnifică sfârșitul intrării în coajă. INPUTRC: Numele fișierului pentruCiteste linia fișierul de pornire, înlăturând implicit valoarea de ~ / .Inputrc . LANG: Utilizat pentru a determina categoria locală pentru orice categorie care nu este selectată în mod specific cu o variabilă care începe cuLC_. LC_ALL: Această variabilă are prioritate față de valoareaLANG și oricare altulLC_ variabilă specificând o categorie locală. LC_COLLATE: Această variabilă determină ordinea de colaționare utilizată la sortarea rezultatelor extinderii căilor de cale și determină comportamentul expresiilor de interval, al claselor de echivalență și al secvențelor de colaționare în cadrul extinderii căii de cale și al potrivirii tiparelor. LC_CTYPE: Această variabilă determină interpretarea caracterelor și a comportamentului clasei de caractere în cadrul expansiunii de nume de cale și de potrivire a modelului. LC_MESSAGES: Această variabilă determină localizarea utilizată pentru traducerea șirurilor cu două cifre precedate de a$. LC_NUMERIC: Această variabilă determină categoria locale utilizată pentru formatarea numărului. LINII: Utilizat de cătreSelectați comanda construită pentru a determina lungimea coloanei pentru listarea listelor de selecție. Setarea automată la primirea unui SIGWINCH. POȘTĂ: Dacă acest parametru este setat la un nume de fișier șiMAILPATH variabila nu este setată,bashinformează utilizatorul despre sosirea e-mailului în fișierul specificat. MAILCHECK: Specifică cât de des (în secunde)bash verifică e-mailul. Valoarea implicită este de 60 de secunde. Când este timpul să verificați mesajele, shell-ul face acest lucru înainte de a afișa promptul principal. Dacă această variabilă este dezactivată sau setată la o valoare care nu este un număr mai mare sau egal cu zero, coaja dezactivează verificarea e-mailului. MAILPATH: O listă separată de nume de fișiere care să fie verificată pentru e-mail. Mesajul care va fi tipărit atunci când e-mailul ajunge într-un anumit fișier poate fi specificat prin separarea numelui fișierului de mesajul de la mesaj cu '?'. Când este folosit în textul mesajului,$_ se extinde la numele e-mailului curent. Exemplu: MAILPATH = '/ var / mail / bfox?' Ai mail ": ~ / shell-mail?
bash furnizează o valoare implicită pentru această variabilă, dar locația fișierelor poștale de utilizator pe care le utilizează este dependentă de sistem (/ var / mail /$ USER). OPTERR: Dacă este setat la valoarea 1,bash afișează mesajele de eroare generate degetopts comandă încorporată.OPTERR este inițializată la 1 de fiecare dată când shell-ul este invocat sau este executat un script shell. CALE: Calea de căutare pentru comenzi. Este o listă de directoare separate de colon, în care shell-ul caută comenzi. Calea implicită este dependentă de sistem și este setată de administratorul care instaleazăbash. O valoare comună este "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. POSIXLY_CORRECT: Dacă această variabilă este în mediul în carebash începe, shell-ul intră modul posix înainte de a citi fișierele de pornire, ca în cazul în care--posix a fost furnizată opțiunea de invocare. Dacă este setat în timp ce shell-ul rulează,bash permite modul posix ca în cazul comenzii set -o posix fusese executat. PROMPT_COMMAND: Dacă este setat, valoarea este executată ca o comandă înainte de a emite fiecare prompt primar. PS1: Valoarea acestui parametru este extinsă și folosită ca șir de prompt primar. Valoarea implicită este " S v $''. PS2: Valoarea acestui parametru este extinsă ca și cuPS1 și folosit ca șir de prompt secundar. Valoarea implicită este "> ''. PS3: Valoarea acestui parametru este folosită ca prompt pentruSelectați comanda. PS4: Valoarea acestui parametru este extinsă ca și cuPS1, iar valoarea este imprimată înaintea fiecărei comenzibash afișează în timpul unei urmăriri de execuție. Primul caracter al luiPS4 este repetat de mai multe ori, după cum este necesar, pentru a indica mai multe nivele de indirecție. Valoarea implicită este "+ ''. TIMEFORMAT: Valoarea acestui parametru este folosită ca șir de format care specifică modul în care informațiile de sincronizare pentru conductele prefixate cutimp cuvântul rezervat trebuie afișat. % caracterul introduce o secvență de evacuare care este extinsă la o valoare de timp sau alte informații. Secvențele de evadare și semnificațiile lor sunt după cum urmează. Bretelele reprezintă porțiuni opționale. Opțional p este o cifră care specifică precizie , numărul de cifre fracționate după un punct zecimal. O valoare de 0 nu determină ieșirea punctului zecimal sau a fracțiunii. La cel mult trei locuri, după punctul zecimal, pot fi specificate; valori ale p mai mare de 3 sunt schimbate la 3. Dacă p nu este specificată, se folosește valoarea 3. OpționalL specifică un format mai lung, inclusiv minutele, al formularului MM m SS . FF s. Valoarea a p determină dacă fracțiunea este sau nu inclusă. Dacă această variabilă nu este setată,bash acționează ca și cum ar avea valoarea $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Dacă valoarea este nulă, nu este afișată nici o informație de sincronizare. O linie nouă este adăugată când se afișează șirul de format. TMOUT: Dacă este setată la o valoare mai mare decât zero,TMOUT este considerat ca fiind intervalul de timp prestabilit pentrucitit builtin.Selectați comandă se termină dacă intrarea nu ajunge dupăTMOUT secunde când intrarea vine de la un terminal.Într-un shell interactiv, valoarea este interpretată ca numărul de secunde de așteptare pentru introducere după emiterea promptului principal.bash se termină după așteptarea numărului de secunde în cazul în care intrarea nu ajunge. auto_resume: Această variabilă controlează modul în care shell-ul interacționează cu utilizatorul și controlul funcțiilor. Dacă această variabilă este setată, comenzile simple de cuvânt simple, fără redirecționări, sunt tratate ca fiind candidați pentru reluarea unei lucrări deja întrerupte. Nu este permisă nicio ambiguitate. Dacă există mai multe lucrări începând cu șirul introdus, este selectată lucrarea cea mai recentă accesată. Nume a unui loc de muncă oprit, în acest context, este linia de comandă folosită pentru ao porni. Dacă este setat la valoare exact , șirul furnizat trebuie să se potrivească exact cu numele unui job oprit; dacă este setat la subșir , șirul furnizat trebuie să se potrivească cu un substring al numelui unei lucrări oprite. subșir valoare oferă funcționalitate analogă cu%? identificator de locuri de muncă. Dacă este setat la orice altă valoare, șirul furnizat trebuie să fie un prefix al numelui unei lucrări oprite; acest lucru oferă o funcționalitate analogă cu% identificator de locuri de muncă. histchars: Cele două sau trei caractere care controlează expansiunea istoricului și tokenizarea. Primul caracter este extinderea istoriei caracterul, caracterul care semnalează începerea unei expansiuni istorice, în mod normal "!“. Al doilea caracter este înlocuire rapidă caracter, care este folosit ca stenogramă pentru reluarea comenzii anterioare introduse, înlocuind un șir cu altul în comandă. Valoarea implicită este "^“. Al treilea caracter opțional este caracterul care indică faptul că restul liniei este un comentariu când este găsit primul caracter al unui cuvânt, în mod normal "#“. Caracterul de comentariu istoric face ca înlocuirea istoriei să fie omisă pentru restul cuvintelor de pe linie. Aceasta nu determină neapărat ca parserul pentru coajă să trateze restul liniei drept comentariu. bash oferă variabile de dimensiune unidimensională. Orice variabilă poate fi folosită ca o matrice; declara builtin va declara în mod explicit o matrice. Nu există nici o limită maximă pentru dimensiunea unui tablou, nici cerința ca membrii să fie indexați sau atribuiți contiguu. Arrays sunt indexate folosind numere întregi și sunt bazate pe zero. O matrice este creată automat dacă orice variabilă este atribuită sintaxei Nume subscript = valoare . subscript este tratată ca o expresie aritmetică care trebuie evaluată la un număr mai mare sau egal cu zero. Pentru a declara în mod explicit o matrice, utilizațideclară -a Nume . declară -a Nume subscript este de asemenea acceptat; subscript este ignorată. Atributele pot fi specificate pentru o variabilă de matrice utilizânddeclara și numai citire Afi. Fiecare atribut se aplică tuturor membrilor unui matrice. Array-urile sunt atribuite utilizării atribuțiilor complexe ale formularului Nume =(valoare 1 … valoare n ), unde fiecare valoare este de forma subscript = şir . Numai şir este necesară. Dacă sunt furnizate parantezele opționale și indicele, acel index este atribuit; în caz contrar, indicele elementului atribuit este ultimul indice atribuit de instrucțiune plus unul. Indexarea începe de la zero. Această sintaxă este, de asemenea, acceptată de cătredeclara builtin. Elementele individuale de matrice pot fi atribuite utilizării Nume subscript = valoare sintaxă. Orice element al unei matrice poate fi referit folosind $ { Nume subscript }. Plăcile sunt necesare pentru a evita conflictele cu extinderea numelui de cale. Dacă subscript este@ sau*, cuvântul se extinde la toți membrii Nume . Aceste indicatori diferă numai atunci când cuvântul apare în ghilimele duble. Dacă cuvântul este dublu citat, $ { Nume *} se extinde la un singur cuvânt cu valoarea fiecărui membru al matricei separate
Definiții
Cuvinte rezervate
Shell Grammar: Comenzi simple
conducte
liste
Comenzi compuse
Comentarii
Citându-l
Parametrii
Parametrii poziționali
Parametrii specifici
Shell Variables
Arrays