EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

bash - Online în cloud

Rulați bash în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda bash care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


bash - GNU Bourne-Again SHell

REZUMAT


pocni [opțiuni] [șir_comandă | fişier]

DREPTURI DE AUTOR


Bash este Copyright (C) 1989-2013 de către Free Software Foundation, Inc.

DESCRIERE


Bash este o sh-interpret de limbaj de comandă compatibil care execută comenzi citite din
intrare standard sau dintr-un fișier. Bash include, de asemenea, funcții utile din Korn și C
scoici (ksh și csh).

Bash se dorește a fi o implementare conformă a porțiunii Shell și Utilități a
specificația IEEE POSIX (IEEE Standard 1003.1). Bash poate fi configurat să fie POSIX-
conform implicit.

OPŢIUNI


Toate opțiunile de shell cu un singur caracter documentate în descrierea set
comanda încorporată poate fi folosită ca opțiuni atunci când shell-ul este invocat. În plus, pocni
interpretează următoarele opțiuni atunci când este invocat:

-c În cazul în care -c opțiunea este prezentă, apoi comenzile sunt citite de la prima non-opțiune
argument șir de comandă. Dacă există argumente după șir de comandă, Ele
sunt atribuite parametrilor poziționali, începând cu $0.
-i În cazul în care -i opțiunea este prezentă, shell-ul este interactiv.
-l Faceți suporterii vedetele spectacolului, evidențiați contribuțiile noilor veniți și distrați-vă! Nu vă fie teamă să colaborați și să acordați credit altor grupuri care se ocupă de probleme similare. Prezentați-vă la cauzele lor, karma este reală! pocni acționează ca și cum ar fi fost invocat ca un shell de conectare (vezi INVOCARE de mai jos).
-r În cazul în care -r opțiunea este prezentă, carcasa devine limitat (A se vedea RESTRICTAT COAJĂ
de mai jos).
-s În cazul în care -s opțiunea este prezentă sau dacă nu rămân argumente după procesarea opțiunii,
apoi comenzile sunt citite de la intrarea standard. Această opțiune permite
parametrii poziționali care trebuie setați la invocarea unui shell interactiv.
-D O listă cu toate șirurile duble ghilimele precedate de $ este tipărită pe standard
ieșire. Acestea sunt șirurile care sunt supuse traducerii în limbă atunci când
localitatea actuală nu este C or POSIX. Aceasta implică -n opțiune; nicio comandă nu va
fi executat.
[-+]O [shopt_option]
shopt_option este una dintre opțiunile shell acceptate de magazin încorporat (vezi
COAJĂ INCORPORAT COMANDE de mai jos). Dacă shopt_option este prezent, -O stabilește valoarea lui
acea opțiune; +O îl dezactivează. Dacă shopt_option nu este furnizat, numele și
valorile opțiunilor shell acceptate de magazin sunt tipărite pe standard
ieșire. Dacă opțiunea de invocare este +O, rezultatul este afișat într-un format
care pot fi reutilizate ca intrare.
-- A -- semnalează sfârșitul opțiunilor și dezactivează procesarea ulterioară a opțiunilor. Orice
argumente după -- sunt tratate ca nume de fișiere și argumente. Un argument al -
este echivalent cu --.

Bash interpretează, de asemenea, o serie de opțiuni cu mai multe caractere. Aceste opțiuni trebuie să apară pe
linia de comandă înaintea opțiunilor cu un singur caracter pentru a fi recunoscute.

--depanator
Aranjați ca profilul de depanare să fie executat înainte de a începe shell-ul. Se aprinde
modul extins de depanare (consultați descrierea extdebug opțiune la magazin
încorporat mai jos).
--dump-po-strings
Echivalentă cu -D, dar rezultatul este în GNU gettext po (obiect portabil) fișier
format.
--dump-strings
Echivalentă cu -D.
--Ajutor Afișați un mesaj de utilizare pe ieșirea standard și ieșiți cu succes.
--init-file fişier
--rcfile fişier
Executați comenzi de la fişier în locul fișierului de inițializare la nivel de sistem
/etc/bash.bashrc și fișierul standard de inițializare personală ~ / .bashrc dacă
Shell este interactiv (vezi INVOCARE de mai jos).

--Autentificare
Echivalentă cu -l.

--noeditare
Nu utilizați GNU Citeste linia bibliotecă pentru a citi liniile de comandă atunci când shell-ul este
interactiv.

--noprofile
Nu citiți nici fișierul de pornire la nivel de sistem / etc / profile sau oricare dintre cele personale
fișiere de inițializare ~ / .bash_profile, ~/.bash_login, Sau ~ / .profil. În mod implicit,
pocni citește aceste fișiere atunci când este invocat ca shell de conectare (vezi INVOCARE de mai jos).

--norc Nu citiți și nu executați fișierul de inițializare la nivel de sistem /etc/bash.bashrc și
fișierul personal de inițializare ~ / .bashrc dacă shell-ul este interactiv. Acest
opțiunea este activată în mod implicit dacă shell-ul este invocat ca sh.

--posix
Schimbați comportamentul lui pocni unde operațiunea implicită diferă de POSIX
standard pentru a se potrivi cu standardul (POSIX mod). Vedea VEZI SAU mai jos pentru o referire la
un document care detaliază modul în care modul posix afectează comportamentul lui bash.

--restricționat
Învelișul devine restricționat (vezi RESTRICTAT COAJĂ de mai jos).

--verbos
Echivalentă cu -v.

--versiune
Afișați informațiile despre versiune pentru această instanță de pocni pe ieșirea și ieșirea standard
cu succes.

ARGUMENTE


Dacă argumentele rămân după procesarea opțiunii și nici nu -c nici -s opțiunea a fost
furnizat, primul argument se presupune a fi numele unui fișier care conține shell
comenzi. Dacă pocni este invocat în acest mod, $0 este setat la numele fișierului și
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 a lui este starea de ieșire a ultimului
comanda executată în script. Dacă nu sunt executate comenzi, starea de ieșire este 0. An
se încearcă mai întâi să deschideți fișierul în directorul curent și, dacă nu este găsit niciun fișier,
apoi shell-ul caută directoarele în PATH pentru scenariu.

INVOCARE


A Logare coajă este unul al cărui prim caracter al argumentului zero este a -, sau unul început cu
il --Autentificare opțiune.

An interactiv Shell este unul pornit fără argumente non-opțiune și fără -c opțiune
a căror intrare standard și eroare sunt ambele conectate la terminale (după cum este determinat de
isatty(3)), sau unul început cu -i opțiune. PS1 este setat și $- include i if pocni is
interactiv, permițând unui script shell sau unui fișier de pornire să testeze această stare.

Următoarele paragrafe descriu cum pocni își execută fișierele de pornire. Dacă oricare dintre
fișierele există, dar nu pot fi citite, pocni raportează o eroare. Tildele sunt extinse în nume de fișiere
așa cum este descris mai jos, mai jos Tildă Expansiune în EXPANSIUNE secţiune.

Cand pocni este invocat ca un shell de conectare interactiv sau ca un shell non-interactiv cu
--Autentificare opțiunea, mai întâi citește și execută comenzi din fișier / etc / profile, În cazul în care
fisierul exista. După ce a citit acel fișier, caută ~ / .bash_profile, ~/.bash_login, și
~ / .profil, în acea ordine, și citește și execută comenzi de la prima care există
și este lizibil. The --noprofile opțiunea poate fi utilizată atunci când shell-ul începe să inhibe
acest comportament.

Când un shell de conectare iese, pocni citește și execută comenzi din fișier ~/.bash_logout,
dacă există.

Când se pornește un shell interactiv care nu este un shell de conectare, pocni citește și execută
comenzi de la /etc/bash.bashrc și ~ / .bashrc, dacă aceste fișiere există. Acest lucru poate fi inhibat
folosind --norc opțiune. --rcfile fişier opțiunea va forța pocni să citească și să execute
comenzi de la fişier în loc de /etc/bash.bashrc și ~ / .bashrc.

Cand pocni este pornit non-interactiv, pentru a rula un script shell, de exemplu, îl caută
variabila BASH_ENV în mediu, își extinde valoarea dacă apare acolo și folosește
valoarea extinsă ca numele unui fișier de citit și executat. Bash se comportă de parcă
au fost executate următoarele comenzi:
dacă [ -n "$BASH_ENV" ]; atunci . „$BASH_ENV”; fi
dar valoarea lui PATH variabila nu este folosită pentru a căuta numele fișierului.

If pocni este invocat cu numele sh, încearcă să imite comportamentul de pornire al istoricului
versiuni de sh cât mai aproape posibil, conformându-se și cu standardul POSIX.
Când este invocat ca un shell de conectare interactiv sau un shell non-interactiv cu --Autentificare
opțiunea, încearcă mai întâi să citească și să execute comenzi de la / etc / profile și ~ / .profil,
în acea ordine. The --noprofile opțiunea poate fi utilizată pentru a inhiba acest comportament. Când este invocat
ca un shell interactiv cu numele sh, pocni caută variabila ENV, își extinde
valoare dacă este definită și folosește valoarea extinsă ca nume al fișierului de citit și
a executa. Din moment ce un shell invocat ca sh nu încearcă să citească și să execute comenzi de la
orice alte fișiere de pornire, the --rcfile opțiunea nu are efect. Un shell non-interactiv
invocat cu numele sh nu încearcă să citească alte fișiere de pornire. Când este invocat
as sh, pocni intră POSIX după ce fișierele de pornire sunt citite.

Cand pocni este început în POSIX modul, ca și în cazul --posix opțiunea de linie de comandă, urmează
standardul POSIX pentru fișierele de pornire. În acest mod, shell-urile interactive extind ENV
variabilele și comenzile sunt citite și executate din fișierul al cărui nume este extins
valoare. Nu sunt citite alte fișiere de pornire.

Bash încearcă să determine când este rulat cu intrarea sa standard conectată la a
conexiune la rețea, ca atunci când este executată de demonul shell la distanță, de obicei rshd, Sau
daemon shell securizat ssh. Dacă pocni determină că este condus în acest mod, se citește
și execută comenzi de la ~ / .bashrc și ~ / .bashrc, dacă aceste fișiere există și pot fi citite.
Nu va face acest lucru dacă este invocat ca sh. --norc opțiunea poate fi utilizată pentru a inhiba acest lucru
comportamentul, iar --rcfile opțiunea poate fi folosită pentru a forța citirea unui alt fișier, dar
nici rshd nici ssh în general, invocă shell-ul cu acele opțiuni sau le permite să fie
specificat.

Dacă shell-ul este pornit cu ID-ul utilizatorului (grupului) efectiv nu este egal cu utilizatorul real
(grup) id și -p opțiunea nu este furnizată, nu sunt citite fișiere de pornire, funcții shell
nu sunt moștenite din mediu, cel SHELLOPTS, BASHOPTS, CDPATH, și GLOBIGNORE
variabilele, dacă apar în mediu, sunt ignorate, iar ID-ul de utilizator efectiv este
setat la ID-ul de utilizator real. Dacă -p opțiunea este furnizată la invocare, comportamentul de pornire
este același, dar id-ul de utilizator efectiv nu este resetat.

DEFINIȚII


Următoarele definiții sunt utilizate în restul acestui document.
necompletat Un spațiu sau o filă.
cuvânt O secvență de caractere considerată ca o singură unitate de către shell. Cunoscut și ca a
semn.
nume A cuvânt constând numai din caractere alfanumerice și liniuțe de subliniere și început
cu un caracter alfabetic sau un caracter de subliniere. Denumit și ca un identificator.
metacaracter
Un personaj care, atunci când nu este citat, separă cuvintele. Una dintre următoarele:
| & ; ( ) < > spaţiu fila
Control operator
A semn care îndeplinește o funcție de control. Este unul dintre următoarele simboluri:
|| & && ; ;; ( ) | |&

REZERVAT CUVINTE


Rezervat cuvinte sunt cuvinte care au o semnificație specială pentru coajă. Următoarele cuvinte
sunt recunoscute ca rezervate atunci când nu sunt ghilimele și fie primul cuvânt al unei comenzi simple
(A se vedea COAJĂ GRAMATICĂ de mai jos) sau al treilea cuvânt din a caz or pentru comanda:

! caz coproc do făcut Elif altfel ESAC fi pentru funcţie if in selecta apoi până la în timp ce { }
timp [[ ]]

COAJĂ GRAMATICĂ


simplu Comenzi
A simplu comandă este o secvență de atribuiri opționale de variabile urmate de necompletat-
cuvinte separate și redirecționări și terminate cu a Control operator. Primul cuvânt
specifică comanda care trebuie executată și este transmisă ca argument zero. Cuvintele rămase
sunt transmise ca argumente la comanda invocată.

Valoarea de returnare a lui a simplu comandă este starea de ieșire sau 128+n dacă comanda este
terminat prin semnal n.

Conducte
A conducte este o succesiune de una sau mai multe comenzi separate de unul dintre operatorii de control
| or |&. Formatul pentru o conductă este:

[timp [-p]] [ ! ] comandă [ [||&] command2 ... ]

Ieșirea standard a comandă este conectat printr-o conductă la intrarea standard a command2.
Această conexiune se realizează înaintea oricăror redirecționări specificate de comandă (vezi
REDIRECȚIE de mai jos). Dacă |& este folosit, comandăeroare standard a lui, pe lângă standardul său
ieșire, este conectată la command2intrarea standard a lui prin conductă; este prescurtarea pentru
2> & 1 |. Această redirecționare implicită a erorii standard către ieșirea standard este
efectuate după orice redirecționări specificate de comandă.

Starea de returnare a unei conducte este starea de ieșire a ultimei comenzi, cu excepția cazului în care
eşecul conductei opțiunea este activată. Dacă eşecul conductei este activat, starea de returnare a conductei este
valoarea ultimei comenzi (cel mai din dreapta) pentru a ieși cu o stare diferită de zero sau zero, dacă toate
comenzile ies cu succes. Dacă cuvântul rezervat ! precede o conductă, starea de ieșire
a acelei conducte este negația logică a stării de ieșire așa cum este descris mai sus. Cochilia
așteaptă ca toate comenzile din conductă să se termine înainte de a returna o valoare.

În cazul în care timp cuvântul rezervat precede o conductă, timpul scurs, precum și timpul utilizatorului și al sistemului
consumate de executarea acesteia sunt raportate la terminarea conductei. The -p opțiune
schimbă formatul de ieșire în cel specificat de POSIX. Când coaja este înăuntru POSIX mod, Aceasta
nu recunoaște timp ca cuvânt rezervat dacă următorul simbol începe cu un `-'. The
TIMEFORMAT variabila poate fi setată la un șir de format care specifică modul de sincronizare
informațiile ar trebui să fie afișate; vezi descrierea TIMEFORMAT în Coajă Variabile
de mai jos.

Când coaja este înăuntru POSIX mod, timp poate fi urmată de o nouă linie. În acest caz,
shell-ul afișează timpul total de utilizator și sistem consumat de shell și copiii săi. The
TIMEFORMAT variabila poate fi utilizată pentru a specifica formatul informațiilor de timp.

Fiecare comandă dintr-o conductă este executată ca un proces separat (adică într-un subshell).

liste
A listă este o secvență de una sau mai multe conducte separate de unul dintre operatori ;, &, &&,
or ||, și opțional încheiat de unul dintre ;, &, Sau .

Dintre acești operatori de listă, && și || au prioritate egală, urmată de ; și &, care are
prioritate 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
comenzi.

Dacă o comandă este terminată de către operatorul de control &, shell-ul execută comanda în
il fundal într-un subshell. Shell nu așteaptă ca comanda să se termine, iar
starea de returnare este 0. Comenzi separate prin a ; sunt executate secvenţial; carapacea asteapta
pentru ca fiecare comandă să se termine pe rând. Starea de întoarcere este starea de ieșire a ultimului
comanda executata.

Listele AND și SAU sunt secvențe ale uneia sau mai multor conducte separate de && și || Control
operatori, respectiv. Listele AND și SAU sunt executate cu asociativitate la stânga. Un ȘI
lista are forma

command1 && command2

command2 se execută dacă și numai dacă, command1 returnează o stare de ieșire zero.

O listă SAU are forma

command1 || command2

command2 se execută dacă și numai dacă command1 returnează o stare de ieșire diferită de zero. Întoarcerea
starea listelor AND și SAU este starea de ieșire a ultimei comenzi executate din listă.

Compus Comenzi
A compus comandă este una dintre următoarele. În majoritatea cazurilor a listă într-o comandă
descrierea poate fi separată de restul comenzii printr-una sau mai multe linii noi și poate
să fie urmată de o nouă linie în loc de punct și virgulă.

(listă) listă este executat într-un mediu subshell (vezi COMMAND EXECUŢIE MEDIUL
de mai jos). Atribuții variabile și comenzi încorporate care afectează shell-ul
mediu nu rămân în vigoare după finalizarea comenzii. Starea returului
este starea de ieșire a listă.

{ listă;}
listă este pur și simplu executat în mediul shell curent. listă trebuie terminat
cu o linie nouă sau punct și virgulă. Aceasta este cunoscută ca a grup comandă. Starea returului
este starea de ieșire a listă. Rețineți că, spre deosebire de metacaractere ( și ), { și }
sunt rezervat cuvinte și trebuie să apară acolo unde este permis să existe un cuvânt rezervat
recunoscut. Deoarece nu provoacă o ruptură de cuvânt, ele trebuie separate de listă
prin spații albe sau alt metacaracter shell.

((expresie))
expresie se evaluează conform regulilor descrise mai jos la capitolul ARITMETIC
EVALUARE. Dacă valoarea expresiei este diferită de zero, starea returnată este 0;
în caz contrar, starea de returnare este 1. Aceasta este exact echivalentă cu lăsa "expresie".

[[ expresie ]]
Returnează o stare de 0 sau 1, în funcție de evaluarea expresiei condiționate
expresie. Expresiile sunt compuse din elementele primare descrise mai jos
CONDIŢIONAL EXPRESII. Împărțirea cuvintelor și extinderea numelor de cale nu sunt efectuate
asupra cuvintelor dintre [[ și ]]; expansiune tilde, parametru și variabilă
expansiune, extindere aritmetică, substituție de comandă, înlocuire de proces și
se efectuează eliminarea cotațiilor. Operatori condiționali precum -f trebuie să fie necotate
să fie recunoscute ca primare.

Când este utilizat cu [[, < și > operatorii sortează lexicografic folosind curentul
Local.

Vezi descrierea test comandă încorporată (secțiunea COMANDĂ ÎN SHELL BUILTIN de mai jos) pentru
manipularea parametrilor (adică parametrii lipsă).

Cand == și != sunt utilizați operatori, șirul din dreapta operatorului este
considerat un tipar și asortat conform regulilor descrise mai jos la Model
De potrivire, de parcă extglob opțiunea shell a fost activată. The = operator este echivalent cu
==. Dacă opțiunea shell nocasematch este activat, potrivirea se efectuează fără a ține cont de
cazul caracterelor alfabetice. Valoarea returnată este 0 dacă șirul se potrivește (==) Sau
nu se potrivește (!=) modelul, iar 1 altfel. Orice parte a modelului poate fi citată
pentru a forța porțiunea citată să fie potrivită ca șir.

Un operator binar suplimentar, =~, este disponibil, cu aceeași prioritate ca == și !=.
Când este utilizat, șirul din dreapta operatorului este considerat un obișnuit extins
expresie și potrivite în consecință (ca în regex(3)). Valoarea returnată este 0 dacă șirul
se potrivește cu modelul, iar 1 altfel. Dacă expresia regulată este sintactic
incorectă, valoarea returnată a expresiei condiționale este 2. Dacă opțiunea shell
nocasematch este activată, potrivirea se efectuează fără a ține cont de cazul alfabetic
personaje. Orice parte a modelului poate fi citată pentru a forța porțiunea citată să fie
potrivită ca un şir. Expresiile paranteze din expresiile regulate trebuie tratate
cu atenție, deoarece caracterele normale care citează își pierd semnificația între paranteze. Dacă
modelul este stocat într-o variabilă shell, cotând variabila de expansiune forțează întregul
model care urmează să fie asortat ca șir. Subșiruri potrivite prin subexpresii între paranteze
în cadrul expresiei regulate sunt salvate în variabila matrice BASH_REMATCH. Elementul
of BASH_REMATCH cu indicele 0 este porțiunea șirului care se potrivește întregului regulat
expresie. Elementul de BASH_REMATCH cu index n este porțiunea șirului
potrivire cu na-a subexpresie între paranteze.

Expresiile pot fi combinate folosind următorii operatori, enumerați în ordinea descrescătoare a
precedenta:

( expresie )
Returnează valoarea lui expresie. Aceasta poate fi folosită pentru a depăși normalul
prioritate a operatorilor.
! expresie
Adevărat dacă expresie este fals.
expresie1 && expresie2
Adevărat dacă ambele expresie1 și expresie2 sunt adevărate.
expresie1 || expresie2
Adevărat dacă oricare expresie1 or expresie2 este adevarat.

&& și || operatorii nu evaluează expresie2 dacă valoarea de expresie1 is
suficient pentru a determina valoarea returnată a întregii expresii condiționate.

pentru nume [ [ in [ cuvânt ... ] ] ; ] do listă ; făcut
Lista cuvintelor care urmează in este extinsă, generând o listă de articole. The
variabil nume este setat pe rând la fiecare element din această listă și listă este executat
de fiecare data. Dacă in cuvânt este omis, the pentru comanda se execută listă o dată pentru fiecare
parametrul de poziție care este setat (vezi PARAMETRI de mai jos). Starea de retur este
starea de ieșire a ultimei comenzi care se execută. Dacă extinderea articolelor
următor in rezultă o listă goală, nu se execută nicio comandă și returnarea
starea este 0.

pentru (( expr1 ; expr2 ; expr3 )) ; do listă ; făcut
În primul rând, expresia aritmetică expr1 este evaluat conform regulilor
descris mai jos sub ARITMETIC EVALUARE. Expresia aritmetică expr2 is
apoi evaluat în mod repetat până când se evaluează la zero. De fiecare data expr2 evaluează la
o valoare diferită de zero, listă se execută şi expresia aritmetică expr3 is
evaluat. Dacă orice expresie este omisă, se comportă ca și cum ar fi evaluat la 1. The
valoarea returnată este starea de ieșire a ultimei comenzi din listă care se execută, sau
false dacă oricare dintre expresii este invalidă.

selecta nume [ in cuvânt ]; do listă ; făcut
Lista cuvintelor care urmează in este extinsă, generând o listă de articole. Setul de
cuvintele extinse sunt tipărite pe eroarea standard, fiecare precedată de un număr. Dacă
in cuvânt este omis, parametrii de poziție sunt imprimați (vezi PARAMETRI de mai jos).
PS3 este apoi afișat prompt și o linie citită de la intrarea standard. Dacă
linia constă dintr-un număr corespunzător unuia dintre cuvintele afișate, apoi
Valoarea nume este setat la acel cuvânt. Dacă linia este goală, cuvintele și promptul sunt
afișat din nou. Dacă este citit EOF, comanda se finalizează. Orice altă valoare citită
cauze nume să fie setat la nul. Linia citită este salvată în variabilă RĂSPUNS.
listă se execută după fiecare selecție până la a rupe comanda este executată. Ieșirea
starea selecta este starea de ieșire a ultimei comenzi executate în listă, sau zero
dacă nu au fost executate comenzi.

caz cuvânt in [[(] model [ | model ] ... ) listă ;; ] ... ESAC
A caz comanda se extinde mai întâi cuvânt, și încearcă să-l egaleze cu fiecare model in
turn, folosind aceleași reguli de potrivire ca și pentru extinderea numelui de cale (vezi Nume cale
Expansiune de mai jos). The cuvânt este extins folosind tilde expansion, parametru și
expansiune variabilă, substituție aritmetică, substituție comenzi, proces
înlocuirea și eliminarea cotațiilor. Fiecare model examinat este extins folosind tilde
expansiune, extindere a parametrilor și variabilelor, substituție aritmetică, comandă
substituție și substituție de proces. Dacă opțiunea shell nocasematch is
activată, potrivirea se efectuează fără a ține cont de cazul alfabetic
personaje. Când se găsește o potrivire, cea corespunzătoare listă este executat. Dacă ;;
este utilizat operator, nu se încearcă potriviri ulterioare după primul model
Meci. Folosind ;& în loc de ;; face ca execuția să continue cu listă
asociate cu următorul set de modele. Folosind ;;& în loc de ;; provoacă
shell pentru a testa următoarea listă de modele din instrucțiune, dacă există, și pentru a executa oricare
asociate listă la un meci reușit. Starea de ieșire este zero dacă nu există un model
chibrituri. În caz contrar, este starea de ieșire a ultimei comenzi executate în listă.

if listă; apoi listă; [ Elif listă; apoi listă; ] ... [ altfel listă; ] fi
if listă este executat. Dacă starea de ieșire este zero, apoi listă este executat.
Altfel, fiecare Elif listă este executat la rândul său, iar dacă starea sa de ieșire este zero,
corespunzător apoi listă este executat și comanda se completează. În caz contrar, cel altfel
listă este executat, dacă este prezent. Starea de ieșire este starea de ieșire a ultimului
comanda executată sau zero dacă nicio condiție nu a fost testată adevărată.

în timp ce lista-1; do lista-2; făcut
până la lista-1; do lista-2; făcut
în timp ce comanda execută în mod continuu lista lista-2 atâta timp cât ultima comandă
În listă lista-1 returnează o stare de ieșire zero. The până la comanda este identică
la în timp ce comanda, cu excepția faptului că testul este anulat; lista-2 se execută cât timp
ca ultima comandă în lista-1 returnează o stare de ieșire diferită de zero. Starea de ieșire a
il în timp ce și până la comenzi este starea de ieșire a ultimei comenzi executate în
lista-2, sau zero dacă nu a fost executat niciunul.

Coprocesele
A coproces este o comandă shell precedată de coproc cuvânt rezervat. Un coproces este
executat asincron într-un subshell, ca și cum comanda ar fi fost terminată cu &
operator de control, cu o conductă cu două sensuri stabilită între carcasa de execuție și
coproces.

Formatul unui coproces este:

coproc [NUME] comandă [redirecționări]

Aceasta creează un coproces numit NUME. Dacă NUME nu este furnizat, numele implicit este COPROC.
NUME nu trebuie furnizat dacă comandă este simplu comandă (Vezi deasupra); altfel, este
interpretat ca primul cuvânt al comenzii simple. Când coprocesul este executat,
shell creează o variabilă matrice (vezi Arrays mai jos) numit NUME în contextul
shell de executare. Ieșirea standard a comandă este conectat printr-o conductă la un fișier
descriptor în shell-ul de execuție, iar acel descriptor de fișier este alocat NUME[0]. The
intrare standard de comandă este conectat printr-o conductă la un descriptor de fișier în execuție
shell, iar acel descriptor de fișier este alocat NUME[1]. Această conductă este stabilită înainte
orice redirecționări specificate de comandă (vezi REDIRECȚIE de mai jos). Descriptorii de fișiere
poate fi folosit ca argumente pentru comenzile și redirecționările shell folosind cuvântul standard
expansiuni. Descriptorii de fișiere nu sunt disponibili în subshell-uri. ID-ul procesului al
Shell generat pentru a executa coprocesul este disponibil ca valoare a variabilei NUME_PID.
aștepta comanda încorporată poate fi folosită pentru a aștepta terminarea coprocesului.

Deoarece coprocesul este creat ca o comandă asincronă, coproc comanda mereu
întoarce succesul. Starea de returnare a unui coproces este starea de ieșire a comandă.

Coajă Funcţie Definiții
O funcție shell este un obiect care este numit ca o comandă simplă și execută un compus
comandă cu un nou set de parametri de poziție. Funcțiile Shell sunt declarate după cum urmează:

nume () compus-comandă [redirecționare]
funcţie nume [()] compus-comandă [redirecționare]
Aceasta definește o funcție numită nume. Cuvântul rezervat funcţie este optional. Dacă
il funcţie cuvântul rezervat este furnizat, parantezele sunt opționale. The corp of
funcția este comanda compusă compus-comandă (A se vedea Compus Comenzi
de mai sus). Acea comandă este de obicei a listă de comenzi între { și }, dar poate fi oricare
comanda listată sub Compus Comenzi de mai sus. compus-comandă este executat
oricând nume este specificat ca numele unei comenzi simple. Când în POSIX mod,
nume poate să nu fie numele unuia dintre POSIX special încorporate. Orice redirecționări
(A se vedea REDIRECȚIE de mai jos) specificate când este definită o funcție sunt efectuate când
funcția este executată. Starea de ieșire a unei definiții de funcție este zero, cu excepția cazului în care a
Apare o eroare de sintaxă sau există deja o funcție numai în citire cu același nume. Cand
executat, starea de ieșire a unei funcții este starea de ieșire a ultimei comenzi
executat în corp. (Vedea FUNCȚII de mai jos.)

MESAJ


Într-un shell non-interactiv sau într-un shell interactiv în care comentarii_interactive
opțiune la magazin builtin este activat (vezi COAJĂ INCORPORAT COMANDE mai jos), un cuvânt
incepand cu # face ca acel cuvânt și toate caracterele rămase pe acea linie să fie ignorate.
Un shell interactiv fără comentarii_interactive opțiunea activată nu permite
comentarii. comentarii_interactive opțiunea este activată implicit în shell-urile interactive.

CITAREA


Citându-l este folosit pentru a elimina semnificația specială a anumitor caractere sau cuvinte pe coajă.
Citarea poate fi folosită pentru a dezactiva tratamentul special pentru caracterele speciale, pentru a preveni
cuvintele rezervate să fie recunoscute ca atare și pentru a preveni extinderea parametrilor.

Fiecare din metacaracterele enumerate mai sus sub DEFINIȚII are o semnificație specială pentru coajă
și trebuie citat dacă este să se reprezinte.

Când sunt utilizate facilitățile de extindere a istoricului comenzilor (vezi ISTORIE EXPANSIUNE
sub istorie expansiune caracter, de obicei !, trebuie citat pentru a preveni istoria
expansiune.

Există trei mecanisme de cotare: the scăpa caracter, ghilimele simple și duble
citate.

O bară oblică inversă necotată (\) este scăpa caracter. Păstrează valoarea literală a
următorul caracter care urmează, cu excepția . În cazul în care o \pereche
apare, iar bara oblică inversă nu este ea însăși citată \este tratată ca o linie
continuare (adică este eliminat din fluxul de intrare și efectiv ignorat).

Introducerea caracterelor între ghilimele simple păstrează valoarea literală a fiecărui caracter din interior
ghilimelele. Este posibil să nu apară ghilimele simple între ghilimele simple, chiar dacă sunt precedate de a
backslash.

Închiderea caracterelor între ghilimele duble păstrează valoarea literală a tuturor caracterelor din interior
ghilimele, cu excepția $, `, \și, când extinderea istoricului este activată, !.
caractere $ și ` își păstrează sensul special între ghilimele duble. Bara oblică inversă
își păstrează semnificația specială numai atunci când este urmată de unul dintre următoarele caractere: $, `,
", \, Sau . Un ghilimele dublu poate fi citat între ghilimele duble precedându-l
cu o bară oblică inversă. Dacă este activată, extinderea istoricului va fi efectuată, cu excepția cazului în care un ! care apare
între ghilimele duble este scăpat folosind o bară oblică inversă. Bara oblică inversă care precede ! nu este
îndepărtat.

Parametrii speciali * și @ au o semnificație specială atunci când sunt între ghilimele duble (vezi PARAMETRI
de mai jos).

Cuvinte de formă $'şir' sunt tratate special. Cuvântul se extinde la şir, Cu
Caracterele cu escape backslash înlocuite conform specificațiilor de standardul ANSI C. Backslash
secvențele de evacuare, dacă sunt prezente, sunt decodificate după cum urmează:
\a alertă (clopot)
\b spate spate
\e
\E un personaj de evadare
\f furaj de formulare
\n linie nouă
\r retur transport
\t filă orizontală
\v filă verticală
\\ backslash
\' ghilimele unice
\" citat dublu
\NNN caracterul de opt biți a cărui valoare este valoarea octală NNN (unu până la trei
cifre)
\xHH caracterul de opt biți a cărui valoare este valoarea hexazecimală HH (unul sau doi
cifre hexadecimale)
\uHHHH caracterul Unicode (ISO/IEC 10646) a cărui valoare este valoarea hexazecimală
HHHH (una până la patru cifre hexadecimale)
\UHHHHHHHH
caracterul Unicode (ISO/IEC 10646) a cărui valoare este valoarea hexazecimală
HHHHHHHH (una până la opt cifre hexadecimale)
\cx un control-x caracter

Rezultatul extins este unic, ca și cum semnul dolarului nu ar fi fost prezent.

Un șir de ghilimele duble precedat de un semn dolar ($"şir") va face ca șirul să fie
tradus conform localizării curente. Dacă localitatea curentă este C or POSIX,
semnul dolarului este ignorat. Dacă șirul este tradus și înlocuit, înlocuirea este
ghilimele duble.

PARAMETRI


A parametru este o entitate care stochează valori. Poate fi o nume, un număr sau unul dintre
caracterele speciale enumerate mai jos sub Special parametrii. O variabil este un parametru
notat cu a nume. O variabilă are a valoare și zero sau mai mult atribute. Atributele sunt
atribuit folosind declara comandă încorporată (vezi declara mai jos în COAJĂ INCORPORAT COMANDE).

Un parametru este setat dacă i s-a atribuit o valoare. Șirul nul este o valoare validă.
Odată ce o variabilă este setată, aceasta poate fi dezactivată numai folosind dezactivat comandă încorporată (vezi COAJĂ
INCORPORAT COMANDE de mai jos).

A variabil poate fi atribuit printr-o declarație de formular

nume=[valoare]

If valoare nu este dat, variabilei i se atribuie șirul nul. Toate Valorile suferă tilde
extindere, extindere a parametrilor și variabilelor, înlocuirea comenzilor, extinderea aritmetică,
și eliminarea citatului (vezi EXPANSIUNE de mai jos). Dacă variabila are întreg set de atribute,
apoi valoare este evaluată ca expresie aritmetică chiar dacă expansiunea $((...)) nu este
folosit (vezi Aritmetică Expansiune de mai jos). Împărțirea cuvintelor nu se realizează, cu
excepție de „$@” după cum se explică mai jos sub Special parametrii. Extinderea numelui de cale nu este
efectuat. Declarațiile de atribuire pot apărea și ca argumente pentru alias, declara,
tipărit, exporturile, numai în citire, și local comenzi încorporate. Când în POSIX mod, aceste integrate
poate apărea într-o comandă după una sau mai multe instanțe ale comandă încorporat și păstrat
aceste proprietăți ale instrucțiunii de atribuire.

În contextul în care o instrucțiune de atribuire atribuie o valoare unei variabile shell sau
indexul matricei, operatorul += poate fi folosit pentru a adăuga sau adăuga la anterioară variabilei
valoare. Când += este aplicat unei variabile pentru care întreg atributul a fost setat,
valoare este evaluată ca expresie aritmetică și adăugată la valoarea curentă a variabilei,
care este de asemenea evaluat. Când += este aplicat unei variabile matrice folosind compus
sarcina (vezi Arrays mai jos), valoarea variabilei nu este nesetată (așa cum este atunci când utilizați =),
iar valorile noi sunt atașate matricei începând cu unul mai mare decât maximul matricei
index (pentru matrice indexate) sau adăugat ca perechi cheie-valoare suplimentare într-o matrice asociativă.
Când se aplică unei variabile cu valori de șir, valoare este extinsă și atașată la variabilei
valoare.

O variabilă poate fi atribuită numeref atributul folosind -n opțiune la declara or
local comenzi încorporate (consultați descrierile pentru declara și local de mai jos) pentru a crea un
numeref, sau o referire la o altă variabilă. Acest lucru permite manipularea variabilelor
indirect. Ori de câte ori variabila nameref este referită sau atribuită, operația este
efectuate efectiv asupra variabilei specificate de valoarea variabilei nameref. Un numeref
este folosit în mod obișnuit în cadrul funcțiilor shell pentru a se referi la o variabilă al cărei nume este transmis ca un
argument al funcției. De exemplu, dacă un nume de variabilă este transmis unei funcții shell
ca prim argument, alergarea
declară -n ref=$1
în interiorul funcției creează o variabilă nameref ref a cărui valoare este numele variabilei transmis
ca prim argument. Referințe și sarcini la ref sunt tratate ca referinţe şi
atribuiri variabilei al cărei nume a fost transmis ca $1. Dacă variabila de control din a pentru
bucla are atributul nameref, lista de cuvinte poate fi o listă de variabile shell și a
referința numelui va fi stabilită pentru fiecare cuvânt din listă, la rândul său, când bucla este
executat. Variabilele matrice nu pot fi date -n atribut. Cu toate acestea, variabile nameref
poate face referire la variabile matrice și variabile matrice subindice. Numele pot fi anulate
folosind -n opțiune la dezactivat incorporat. Altfel, dacă dezactivat se execută cu numele
a unei variabile nameref ca argument, variabila la care face referire variabila nameref va fi
fi neasezat.

Pozițional parametrii
A pozitional parametru este un parametru notat cu una sau mai multe cifre, altele decât cele unice
cifra 0. Parametrii poziționali sunt alocați din argumentele shell-ului atunci când este
invocat și poate fi reatribuit folosind set comandă încorporată. Parametrii de poziție pot
nu va fi atribuit cu instrucțiuni de atribuire. Parametrii de poziție sunt temporar
înlocuit atunci când o funcție shell este executată (vezi FUNCȚII de mai jos).

Atunci când un parametru de poziție format din mai mult de o singură cifră este extins, trebuie să fie
închis între bretele (vezi EXPANSIUNE de mai jos).

Special parametrii
Învelișul tratează mai mulți parametri în mod special. Acești parametri pot fi doar referiți;
atribuirea acestora nu este permisă.
* Se extinde la parametrii poziționali, pornind de la unul. Când expansiunea nu este
între ghilimele duble, fiecare parametru de poziție se extinde la un cuvânt separat. În
contextele în care este efectuată, acele cuvinte sunt supuse unei împărțiri ulterioare a cuvintelor
și extinderea numelui de cale. Când extinderea are loc între ghilimele duble, se extinde
la un singur cuvânt cu valoarea fiecărui parametru separată de primul caracter
a IFS variabilă specială. Acesta este, "$*" este echivalent cu "$1c$2c...", Unde c
este primul caracter al valorii lui IFS variabil. Dacă IFS este nesetat, the
parametrii sunt separați prin spații. Dacă IFS este nul, parametrii sunt uniți
fără separatoare intermediare.
@ Se extinde la parametrii poziționali, pornind de la unul. Când are loc expansiunea
între ghilimele duble, fiecare parametru se extinde la un cuvânt separat. Acesta este, "$@„este
echivalentă cu "$1""$2„... Dacă expansiunea cu ghilimele duble are loc într-un cuvânt,
extinderea primului parametru este unită cu partea de început a
cuvântul original, iar extinderea ultimului parametru este unită cu ultima parte
a cuvântului original. Când nu există parametri de poziție, "$@" și $@ extinde
la nimic (adică sunt eliminate).
# Se extinde la numărul de parametri de poziție în zecimală.
? Se extinde la starea de ieșire a conductei din prim plan executată cel mai recent.
- Se extinde la steaguri de opțiune curentă, așa cum este specificat la invocare, de către set
comandă încorporată sau cele setate de shell în sine (cum ar fi -i opțiune).
$ Se extinde la ID-ul de proces al shell-ului. Într-un subshell (), se extinde la
ID-ul de proces al shell-ului curent, nu al subshell-ului.
! Se extinde la ID-ul de proces al jobului cel mai recent plasat în fundal,
indiferent dacă este executat ca o comandă asincronă sau folosind bg încorporat (vezi JOB
CONTROL de mai jos).
0 Se extinde la numele shell-ului sau al script-ului shell. Acesta este setat la shell
initializare. Dacă pocni este invocat cu un fișier de comenzi, $0 este setat la nume
a acelui dosar. Dacă pocni este început cu -c opțiune, atunci $0 este setat la primul
argument după șirul care urmează să fie executat, dacă există unul. În caz contrar, este setat
la numele fișierului folosit pentru a invoca pocni, așa cum este dat de argumentul zero.
_ La pornirea shell-ului, setați la calea absolută folosită pentru a invoca shell-ul sau shell-ul
scriptul fiind executat așa cum a fost transmis în mediu sau în lista de argumente. Ulterior,
se extinde la ultimul argument la comanda anterioară, după extindere. De asemenea, setat la
calea completă folosită pentru a invoca fiecare comandă executată și plasată în
mediu exportat la acea comandă. Când verificați e-mailul, acest parametru deține
numele fișierului e-mail care este verificat în prezent.

Coajă Variabile
Următoarele variabile sunt stabilite de shell:

BASH Se extinde la numele complet al fișierului folosit pentru a invoca această instanță de pocni.
BASHOPTS
O listă separată de două puncte de opțiuni de shell activate. Fiecare cuvânt din listă este valid
argument pentru -s opțiune la magazin comandă încorporată (vezi COAJĂ INCORPORAT COMANDE
de mai jos). Opțiunile care apar în BASHOPTS sunt cele raportate ca on by magazin. Dacă
această variabilă se află în mediu când pocni pornește, fiecare opțiune de shell din
lista va fi activată înainte de a citi orice fișiere de pornire. Această variabilă este doar pentru citire.
BASHPID
Se extinde la ID-ul de proces al curentului pocni proces. Aceasta diferă de $$ în
anumite circumstanțe, cum ar fi subshell-uri care nu necesită pocni a fi re-
initializat.
BASH_ALIASES
O variabilă matrice asociativă ai cărei membri corespund listei interne de
pseudonimele menținute de alias incorporat. Elementele adăugate la această matrice apar în
lista de alias; dezactivarea elementelor matricei cauzează eliminarea aliasurilor din alias
listă.
BASH_ARGC
O variabilă matrice ale cărei valori sunt numărul de parametri din fiecare cadru al
curent pocni stiva de apeluri de execuție. Numărul de parametri la curent
subrutină (funcție shell sau script executat cu . or sursă) este în vârful
teancul. Când se execută o subrutină, numărul de parametri trecuți este
împins pe BASH_ARGC. Cochilia se așează BASH_ARGC numai când se află în depanare extinsă
modul (vezi descrierea extdebug opțiune la magazin încorporat mai jos)
BASH_ARGV
O variabilă matrice care conține toți parametrii din curent pocni execuție
stiva de apeluri. Parametrul final al ultimului apel de subrutină se află în partea de sus a
grămadă; primul parametru al apelului inițial este în partea de jos. Când o subrutină
este executat, parametrii furnizați sunt împinși pe BASH_ARGV. Cochilia se așează
BASH_ARGV numai când se află în modul de depanare extins (consultați descrierea extdebug
opțiune la magazin încorporat mai jos)
BASH_CMDS
O variabilă matrice asociativă ai cărei membri corespund tabelului hash intern
de comenzi menținute de către hașiș incorporat. Apar elementele adăugate la această matrice
în tabelul hash; dezactivarea elementelor matricei face ca comenzile să fie eliminate din
masa hash.
BASH_COMMAND
Comanda în curs de executare sau pe cale de a fi executată, cu excepția cazului în care shell-ul este
executarea unei comenzi ca rezultat al unei capcane, caz în care este comanda
executând în momentul capcanei.
BASH_EXECUTION_STRING
Argumentul comenzii pentru -c opțiunea de invocare.
BASH_LINENU
O variabilă matrice ai cărei membri sunt numerele de linie din fișierele sursă unde fiecare
membru corespondent al FUNCNAME a fost invocat. ${BASH_LINENO[$i]} este linia
numărul din fișierul sursă (${BASH_SOURCE[$i+1]}) Unde ${FUNCNAME[$i]} a fost chemat
(Sau ${BASH_LINENO[$i-1]} dacă se face referire în cadrul unei alte funcții shell). Utilizare LINENO
pentru a obține numărul curent al liniei.
BASH_REMATCH
O variabilă matrice ai cărei membri sunt alocați de către =~ operator binar la [[
comanda condiționată. Elementul cu indicele 0 este porțiunea șirului
potrivirea întregii expresii regulate. Elementul cu index n este porțiunea din
șirul care se potrivește cu na-a subexpresie între paranteze. Această variabilă este citită-
numai.
BASH_SOURCE
O variabilă de tip matrice ai cărei membri sunt numele fișierelor sursă unde corespunde
numele funcțiilor shell în FUNCNAME sunt definite variabile matrice. Cochilia
funcţie ${FUNCNAME[$i]} este definită în fișier ${BASH_SOURCE[$i]} și a sunat de la
${BASH_SOURCE[$i+1]}.
BASH_SUBSHELL
Creștet cu unul în fiecare subshell sau mediu subshell atunci când shell
începe să se execute în acel mediu. Valoarea inițială este 0.
BASH_VERSINFO
O variabilă matrice numai în citire ai cărei membri dețin informații despre versiune pentru această instanță
of pocni. Valorile atribuite membrilor matricei sunt următoarele:
BASH_VERSINFO[0] Numărul major al versiunii ( eliberaţi).
BASH_VERSINFO[1] Numărul versiunii minore (the versiune).
BASH_VERSINFO[2] Nivelul patch-ului.
BASH_VERSINFO[3] Versiunea de compilare.
BASH_VERSINFO[4] Starea eliberării (de exemplu, beta1).
BASH_VERSINFO[5] Valoarea a MACHTYPE.
BASH_VERSION
Se extinde la un șir care descrie versiunea acestei instanțe de pocni.
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țiile shell invocate de programabil
facilitati de finalizare (vezi Programabile Finalizare tranzactiei de mai jos).
COMP_KEY
Cheia (sau cheia finală a unei secvențe de taste) folosită pentru a invoca completarea curentă
Funcția.
COMP_LINE
Linia de comandă curentă. Această variabilă este disponibilă numai în funcțiile shell și
comenzi externe invocate de facilitatile de completare programabile (vezi
Programabile Finalizare tranzactiei de mai jos).
COMP_POINT
Indicele poziției curente a cursorului relativ la începutul curentului
comanda. Dacă poziția curentă a cursorului se află la sfârșitul comenzii curente,
valoarea acestei variabile este egală cu ${#COMP_LINE}. Această variabilă este disponibilă numai
în funcții shell și comenzi externe invocate de completarea programabilă
facilităţi (vezi Programabile Finalizare tranzactiei de mai jos).
COMP_TYPE
Setați la o valoare întreagă corespunzătoare tipului de finalizare încercat
a determinat apelarea unei funcții de finalizare: TAB, pentru finalizare normală, ?, Pentru
listarea completărilor după file succesive, !, pentru listarea alternativelor pe parțial
completarea cuvintelor, @, pentru a enumera completările dacă cuvântul nu este nemodificat sau %, Pentru
completarea meniului. Această variabilă este disponibilă numai în funcțiile shell și externe
comenzile invocate de facilitatile de completare programabile (vezi Programabile
Finalizare tranzactiei de mai jos).
COMP_WORDBREAKS
Setul de personaje pe care Citeste linia biblioteca tratează ca separatori de cuvinte când
efectuarea completării cuvintelor. Dacă COMP_WORDBREAKS este nesetat, își pierde specialitatea
proprietăți, chiar dacă este resetat ulterior.
COMP_WORDS
O variabilă matrice (vezi Arrays de mai jos) constând din cuvintele individuale din
linia de comandă curentă. Linia este împărțită în cuvinte ca Citeste linia l-ar împărți,
folosind COMP_WORDBREAKS așa cum este descris mai sus. Această variabilă este disponibilă numai în shell
funcțiile invocate de facilitățile de completare programabile (vezi Programabile
Finalizare tranzactiei de mai jos).
COPROC O variabilă matrice (vezi Arrays de mai jos) creat pentru a deține descriptorii de fișier pentru
ieșire și intrare într-un coproces fără nume (a se vedea Coprocesele de mai sus).
DIRSTACK
O variabilă matrice (vezi Arrays de mai jos) care conțin conținutul actual al
stiva de directoare. Directoarele apar în stivă în ordinea în care sunt afișate
langa dirs incorporat. Atribuirea membrilor acestei variabile matrice poate fi folosită pentru
modifica directoarele aflate deja în stivă, dar pushd și popd încorporate trebuie să fie
folosit pentru a adăuga și elimina directoare. Atribuirea acestei variabile nu se va modifica
directorul curent. Dacă DIRSTACK este neasezat, isi pierde proprietatile speciale, chiar
dacă ulterior este resetat.
EUID Se extinde la ID-ul de utilizator efectiv al utilizatorului curent, inițializat la pornirea shell-ului.
Această variabilă este doar în citire.
FUNCNAME
O variabilă matrice care conține numele tuturor funcțiilor shell în prezent în
stiva de apeluri de execuție. Elementul cu indicele 0 este numele oricărei în prezent-
executând funcția shell. Elementul cel mai de jos (cel cu cel mai mare indice)
este „principal”. Această variabilă există numai atunci când se execută o funcție shell.
Misiuni către FUNCNAME nu au niciun efect și returnează o stare de eroare. Dacă FUNCNAME is
nesetat, își pierde proprietățile speciale, chiar dacă este resetat ulterior.

Această variabilă poate fi folosită cu BASH_LINENU și BASH_SOURCE. Fiecare element al
FUNCNAME are elemente corespunzătoare în BASH_LINENU și BASH_SOURCE pentru a descrie
stiva de apeluri. De exemplu, ${FUNCNAME[$i]} a fost chemat din dosar
${BASH_SOURCE[$i+1]} la numărul rândului ${BASH_LINENO[$i]}. apelantului builtin
afișează stiva de apeluri curentă folosind aceste informații.
GRUPURI O variabilă matrice care conține lista de grupuri din care utilizatorul curent este a
membru. Misiuni către GRUPURI nu au niciun efect și returnează o stare de eroare. Dacă
GRUPURI este nesetat, își pierde proprietățile speciale, chiar dacă este resetat ulterior.
HISTCMD
Numărul istoric sau indexul din lista istoricului comenzii curente. Dacă
HISTCMD este nesetat, își pierde proprietățile speciale, chiar dacă este ulterior
resetați.
NOMUL DE GĂȘTARE
Setat automat la numele gazdei curente.
HOSTTYPE
Setat automat la un șir care descrie în mod unic tipul de mașină pe care
pocni se execută. Valoarea implicită este dependentă de sistem.
LINENO De fiecare dată când se face referire la acest parametru, shell-ul înlocuiește un număr zecimal
reprezentând numărul curent de linie secvenţială (începând cu 1) într-un script
sau funcție. Când nu este într-un script sau o funcție, valoarea substituită nu este
garantat a fi semnificative. Dacă LINENO este nesetat, își pierde proprietățile speciale,
chiar dacă ulterior este resetat.
MACHTYPE
Setat automat la un șir care descrie complet tipul de sistem pe care pocni is
executând, în standardul GNU procesor-companie-sistem format. Valoarea implicită este sistem-
dependent.
MAPFILE
O variabilă matrice (vezi Arrays de mai jos) creat pentru a reține textul citit de către mapfile
încorporat atunci când nu este furnizat niciun nume de variabilă.
OLDPWD Directorul de lucru anterior, așa cum este stabilit de cd comanda.
OPTARG Valoarea ultimului argument de opțiune procesat de getopts comandă încorporată (vezi
COAJĂ INCORPORAT COMANDE de mai jos).
OPTIND Indexul următorului argument care urmează să fie procesat de getopts comandă încorporată (vezi
COAJĂ INCORPORAT COMANDE de mai jos).
OSTYPE Setat automat la un șir care descrie sistemul de operare pe care pocni is
executând. Valoarea implicită este dependentă de sistem.
PIPESTATUS
O variabilă matrice (vezi Arrays de mai jos) conținând o listă cu valorile stării de ieșire din
procesele din conducta de prim plan executată cel mai recent (care poate conține
doar o singură comandă).
PPID ID-ul de proces al părintelui shell-ului. Această variabilă este doar în citire.
PWD Directorul de lucru curent, așa cum este setat de cd comanda.
ÎNTÂMPLĂTOR De fiecare dată când se face referire la acest parametru, este un număr întreg aleatoriu între 0 și 32767
generate. Secvența de numere aleatoare poate fi inițializată prin alocarea unei valori
la ÎNTÂMPLĂTOR. Dacă ÎNTÂMPLĂTOR este nesetat, își pierde proprietățile speciale, chiar dacă este
resetati ulterior.
READLINE_LINE
Conținutul documentului Citeste linia buffer de linie, pentru utilizare cu „bind -x” (vezi COAJĂ INCORPORAT
COMANDE de mai jos).
READLINE_POINT
Poziția punctului de inserare în Citeste linia buffer de linie, pentru utilizare cu „bind
-x" (vezi COAJĂ INCORPORAT COMANDE de mai jos).
RĂSPUNS Setați la linia de intrare citită de citit comandă încorporată când nu există argumente
furnizat.
SECUNDE
De fiecare dată când se face referire la acest parametru, numărul de secunde de la shell
invocarea este returnată. Dacă i se atribuie o valoare SECUNDE, valoarea returnată
referințe ulterioare este numărul de secunde de la atribuire plus valoarea
atribuit. Dacă SECUNDE este nesetat, își pierde proprietățile speciale, chiar dacă este
resetati ulterior.
SHELLOPTS
O listă separată de două puncte de opțiuni de shell activate. Fiecare cuvânt din listă este valid
argument pentru -o opțiune la set comandă încorporată (vezi COAJĂ INCORPORAT COMANDE
de mai jos). Opțiunile care apar în SHELLOPTS sunt cele raportate ca on by set -o. Dacă
această variabilă se află în mediu când pocni pornește, fiecare opțiune de shell din
lista va fi activată înainte de a citi orice fișiere de pornire. Această variabilă este doar pentru citire.
Extensie SHLV Crește cu unul de fiecare dată când o instanță de pocni este început.
UID Se extinde la ID-ul utilizatorului curent, inițializat la pornirea shell-ului. Acest
variabila este doar citire.

Următoarele variabile sunt utilizate de shell. In unele cazuri, pocni atribuie un implicit
valoarea unei variabile; aceste cazuri sunt notate mai jos.

BASH_COMPAT
Valoarea este folosită pentru a seta nivelul de compatibilitate al shell-ului. Vezi descrierea lui
il magazin încorporat mai jos sub COAJĂ INCORPORAT COMANDE pentru o descriere a
diferite niveluri de compatibilitate și efectele acestora. Valoarea poate fi un număr zecimal
(de exemplu, 4.2) sau un număr întreg (de exemplu, 42) corespunzător compatibilității dorite
nivel. Dacă BASH_COMPAT este dezactivat sau setat la șirul gol, nivelul de compatibilitate
este setat la valoarea implicită pentru versiunea curentă. Dacă BASH_COMPAT este setat la o valoare
acesta nu este unul dintre nivelurile de compatibilitate valide, shell-ul afișează o eroare
mesaj și setează nivelul de compatibilitate la valoarea implicită pentru versiunea curentă.
Nivelurile de compatibilitate valide corespund opțiunilor de compatibilitate acceptate de
il magazin încorporat descris mai jos (de exemplu, compat42 înseamnă că 4.2 și 42 sunt
valori valide). Versiunea actuală este, de asemenea, o valoare validă.
BASH_ENV
Dacă acest parametru este setat când pocni execută un script shell, valoarea acestuia 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, comandă
înlocuire și extindere aritmetică înainte de a fi interpretate ca un nume de fișier.
PATH nu este folosit pentru a căuta numele de fișier rezultat.
BASH_XTRACEFD
Dacă este setat la un număr întreg corespunzător unui descriptor de fișier valid, pocni va scrie
ieșire de urmărire generată când set -x este activat pentru acel descriptor de fișier. Fișierul
descriptorul este închis când BASH_XTRACEFD este nesetat sau i se atribuie o nouă valoare.
Dezactivarea BASH_XTRACEFD sau atribuirea șirului gol determină ieșirea urmăririi
fie trimis la eroarea standard. Rețineți că setarea BASH_XTRACEFD la 2 (standardul
descriptor de fișier de eroare) și apoi dezactivarea acestuia va duce la eroarea standard
fiind închisă.
CDPATH Calea de căutare pentru cd comanda. Aceasta este o listă de directoare separate prin puncte
în care shell-ul caută directoarele de destinație specificate de cd comanda.
O valoare eșantion este „.:~:/ usr".
CHILD_MAX
Setați numărul de valori ale stării copilului ieșite pentru ca shell-ul să le rețină. Bash va
nu permiteți ca această valoare să fie scăzută sub un minim impus de POSIX și există o
valoare maximă (în prezent 8192) pe care aceasta nu o poate depăși. Valoarea minimă este
dependent de sistem.
COLOANE
Folosit de către selecta comandă compusă pentru a determina lățimea terminalului la imprimare
liste de selecție. Setați automat dacă checkwinsize opțiunea este activată sau într-un
shell interactiv la primirea unui SIGWINCH.
COMPREPLY
O variabilă matrice din care pocni citește posibilele completări generate de a
Funcția shell invocată de facilitatea de completare programabilă (vezi Programabile
Finalizare tranzactiei de mai jos). Fiecare element de matrice conține o posibilă completare.
EMACS If pocni găsește această variabilă în mediu când shell-ul începe cu valoare
„t”, presupune că shell-ul rulează într-un buffer de shell Emacs și se dezactivează
editarea liniilor.
ENV similar BASH_ENV; folosit când shell-ul este invocat în modul POSIX.
FCEDIT Editorul implicit pentru fc comandă încorporată.
FIGNORE
O listă de sufixe separate prin două puncte de ignorat atunci când se realizează completarea numelui de fișier
(A se vedea CITESTE LINIA de mai jos). Un nume de fișier al cărui sufix se potrivește cu una dintre intrările din
FIGNORE este exclus din lista de nume de fișiere potrivite. O valoare eșantion este „.o:~”
(Este necesară citarea când se atribuie o valoare acestei variabile, care conține tilde).
FUNCNEST
Dacă este setată la o valoare numerică mai mare de 0, definește un nivel maxim de imbricare a funcției.
Invocările de funcții care depășesc acest nivel de imbricare vor provoca comanda curentă
a abandona.
GLOBIGNORE
O listă de modele, separate prin două puncte, care definesc setul de nume de fișiere de care trebuie ignorate
extinderea numelui de cale. Dacă un nume de fișier se potrivește și cu un model de extindere a căii
se potrivește cu unul dintre modelele din GLOBIGNORE, este eliminat din lista de potriviri.
HISTCONTROL
O listă de valori separate prin două puncte care controlează modul în care comenzile sunt salvate în istoric
listă. Dacă lista de valori include ignora spatiul, linii care încep cu a spaţiu
caracterele nu sunt salvate în lista istorică. O valoare de ignorate cauzează linii
care se potrivește cu intrarea anterioară din istoric pentru a nu fi salvată. O valoare de ignora pe amândouă is
stenografie pentru ignora spatiul și ignorate. O valoare de sterse cauzele toate anterioare
linii care se potrivesc cu linia curentă pentru a fi eliminate din lista istorică înainte de aceasta
linia este salvată. Orice valoare care nu este în lista de mai sus este ignorată. Dacă HISTCONTROL is
nesetate sau nu include o valoare validă, toate liniile citite de parserul shell sunt
salvate pe lista istorică, sub rezerva valorii de HISTIGNORE. Al doilea și
liniile ulterioare ale unei comenzi compuse cu mai multe linii nu sunt testate și sunt adăugate la
istoria indiferent de valoarea HISTCONTROL.
HISTFILE
Numele fișierului în care este salvat istoricul comenzilor (vezi ISTORIE de mai jos). The
valoarea implicită este ~ / .bash_history. Dacă este nesetat, istoricul comenzilor nu este salvat când
iese un obuz.
HISTFILESIZE
Numărul maxim de linii conținute în fișierul istoric. Când această variabilă este
atribuită o valoare, fișierul istoric este trunchiat, dacă este necesar, pentru a nu mai conține
decât acel număr de rânduri prin eliminarea celor mai vechi intrări. Fișierul istoric este de asemenea
trunchiat la această dimensiune după ce îl scrie când iese un shell. Dacă valoarea este 0, atunci
fișierul istoric este trunchiat la dimensiunea zero. Valori nenumerice și valori numerice mai puțin
decât zero inhibă trunchierea. Shell-ul setează valoarea implicită la valoarea lui
HISTSIZE după citirea oricăror fișiere de pornire.
HISTIGNORE
O listă de modele separate prin două puncte, folosită pentru a decide ce linii de comandă ar trebui să fie
salvate pe lista istoricului. Fiecare model este ancorat la începutul liniei
și trebuie să se potrivească cu linia completă (fără `*' se anexează). Fiecare model este
testat pe linie după verificările specificate de HISTCONTROL se aplica. În
în plus față de caracterele de potrivire a modelului shell normal, `&' se potrivește cu precedentul
linia istoriei. `&' poate fi scăpat folosind o bară oblică inversă; bara oblică inversă este eliminată
înainte de a încerca un meci. A doua și rândurile ulterioare ale unei linii multiple
comandele compuse nu sunt testate și sunt adăugate la istoric, indiferent de
Valoarea HISTIGNORE.
HISTSIZE
Numărul de comenzi de reținut în istoricul comenzilor (vezi ISTORIE de mai jos). Dacă
valoarea este 0, comenzile nu sunt salvate în lista istorică. Valori numerice mai puțin
decât zero are ca rezultat salvarea fiecărei comenzi în lista istorică (nu există nr
limită). Shell-ul setează valoarea implicită la 500 după citirea oricăror fișiere de pornire.
HIST FORMAT ORĂ
Dacă această variabilă este setată și nu nulă, valoarea ei este folosită ca șir de format pentru
strftime(3) pentru a tipări marca temporală asociată fiecărei intrări din istoric afișată de
il istorie incorporat. Dacă această variabilă este setată, marcajele de timp sunt scrise în
istoric, astfel încât acestea să poată fi păstrate în sesiunile shell. Aceasta folosește istoria
caracter de comentariu pentru a distinge marcajele de timp de alte linii istorice.
ACASA Directorul principal al utilizatorului curent; argumentul implicit pentru cd builtin
comanda. Valoarea acestei variabile este folosită și atunci când se efectuează extinderea tildei.
HOSTFILE
Conține numele unui fișier în același format ca / Etc / hosts asta ar trebui citit
când shell-ul trebuie să completeze un nume de gazdă. Lista cu posibile nume de gazdă
completările pot fi modificate în timp ce shell-ul rulează; data viitoare nume de gazdă
se încearcă finalizarea după modificarea valorii, pocni adaugă conținutul
fișier nou în lista existentă. Dacă HOSTFILE este setat, dar nu are valoare sau nu are
denumește un fișier care poate fi citit, pocni încercări de a citi / Etc / hosts pentru a obține lista de
posibile completări ale numelui de gazdă. Când HOSTFILE este nesetat, lista de nume de gazdă este
curățat.
IFS Intern Câmp Separator care este folosit pentru împărțirea cuvintelor după extindere și la
împărțiți liniile în cuvinte cu citit comandă încorporată. Valoarea implicită este
`` ''.
IGNOREOF
Controlează acțiunea unui shell interactiv la primirea unui EOF personaj ca
singura intrare. Dacă este setată, valoarea este numărul de consecutive EOF personaje care
trebuie introduse ca primele caractere pe o linie de introducere înainte pocni iesirile. Dacă
variabila există, dar nu are o valoare numerică sau nu are valoare, implicit
valoarea este 10. Dacă nu există, EOF semnifică sfârșitul intrării în shell.
INPUTRC
Numele fișierului pentru Citeste linia fișier de pornire, suprascriind valoarea implicită a ~ / .inputrc
(A se vedea CITESTE LINIA de mai jos).
LIMBA Folosit pentru a determina categoria locală pentru orice categorie care nu este selectată în mod specific
cu o variabilă care începe cu LC_.
LC_ALL Această variabilă înlocuiește valoarea lui LIMBA și oricare altul LC_ variabilă care specifică a
categorie locală.
LC_COLLATE
Această variabilă determină ordinea de colare utilizată la sortarea rezultatelor
extinderea numelui de cale și determină comportamentul expresiilor de interval, echivalența
clase și colatarea secvențe în cadrul extinderii numelor de cale și potrivirii modelelor.
LC_CTYPE
Această variabilă determină interpretarea personajelor și comportamentul
clase de caractere din extinderea numelor de cale și potrivirea modelelor.
LC_MESSAGES
Această variabilă determină localitatea utilizată pentru a traduce șirurile duble ghilimele
precedat de un $.
LC_NUMERIC
Această variabilă determină categoria locală utilizată pentru formatarea numerelor.
LINII Folosit de către selecta comandă compusă pentru a determina lungimea coloanei pentru imprimare
liste de selecție. Setați automat dacă checkwinsize opțiunea este activată sau într-un
shell interactiv la primirea unui SIGWINCH.
MAIL Dacă acest parametru este setat la un nume de fișier sau director și MAILCATH variabilă este
nu setat, pocni informează utilizatorul cu privire la sosirea corespondenței în fișierul specificat sau
Director în format Maildir.
VERIFICARE POSTA
Specifică cât de des (în secunde) pocni verificări pentru corespondență. Valoarea implicită este de 60 de secunde.
Când este timpul să verificați corespondența, shell-ul face acest lucru înainte de a afișa primarul
prompt. Dacă această variabilă nu este setată sau setată la o valoare care nu este un număr mai mare
decât sau egal cu zero, shell-ul dezactivează verificarea e-mailului.
MAILCATH
O listă de nume de fișiere separate prin două puncte de verificat pentru e-mail. Mesajul să fie
tipărite atunci când e-mailul sosește într-un anumit fișier poate fi specificat prin separarea
numele fișierului din mesaj cu un „?”. Când este folosit în textul mesajului, $_
se extinde la numele fișierului de e-mail curent. Exemplu:
MAILCATH='/var/mail/bfox?"Ai mail":~/shell-mail?"$_ are mail!"'
Bash furnizează o valoare implicită pentru această variabilă, dar locația e-mailului utilizatorului
fișierele pe care le folosește depind de sistem (de exemplu, /var/mail/$ USER).
OPTERR Dacă este setată la valoarea 1, pocni afișează mesajele de eroare generate de getopts
comandă încorporată (vezi COAJĂ INCORPORAT COMANDE de mai jos). OPTERR este inițializată la 1
de fiecare dată când shell-ul este invocat sau este executat un script shell.
PATH Calea de căutare pentru comenzi. Este o listă de directoare separate prin puncte în care
shell-ul caută comenzi (vezi COMMAND EXECUŢIE de mai jos). O lungime zero (nulă)
numele directorului în valoarea de PATH indică directorul curent. Un nul
numele directorului poate apărea ca două puncte adiacente sau ca inițială sau finală
colon. Calea implicită depinde de sistem și este setată de administrator care
instalează pocni. O valoare comună este ``/ / Local / bin usr:/ usr / local / sbin:/ usr / bin:
/ usr / sbin:/ cos:/ sbin''.
POSIXLY_CORRECT
Dacă această variabilă se află în mediu când pocni începe, intră cochilia POSIX
mod înainte de a citi fișierele de pornire, ca și cum ar fi --posix opțiunea de invocare fusese
furnizate. Dacă este setat în timp ce shell-ul rulează, pocni permite POSIX mod, de parca
comanda set -o POSIX fusese executat.
PROMPT_COMMAND
Dacă este setată, valoarea este executată ca o comandă înainte de lansarea fiecărui prompt primar.
PROMPT_DIRTRIM
Dacă este setată la un număr mai mare decât zero, valoarea este utilizată ca număr de final
Componentele directorului de păstrat la extinderea \w și \W șirul prompt scapă
(A se vedea FAPT CARE I-A DETERMINAT de mai jos). Caracterele eliminate sunt înlocuite cu puncte de suspensie.
PS1 Valoarea acestui parametru este extinsă (vezi FAPT CARE I-A DETERMINAT de mai jos) și folosit ca
șirul prompt primar. Valoarea implicită este ``\s-\v\$ ''.
PS2 Valoarea acestui parametru este extinsă ca și cu PS1 și folosit ca secundar
șir prompt. Valoarea implicită este ``> ''.
PS3 Valoarea acestui parametru este folosită ca prompt pentru selecta comanda (vezi COAJĂ
GRAMATICĂ de mai sus).
PS4 Valoarea acestui parametru este extinsă ca și cu PS1 iar valoarea este tipărită înainte
fiecare comandă pocni se afișează în timpul unei urmăriri de execuție. Primul personaj al PS4
este replicat de mai multe ori, după cum este necesar, pentru a indica mai multe niveluri de
indirectă. Valoarea implicită este ``+ ''.
COAJĂ Calea completă către shell este păstrată în această variabilă de mediu. Daca nu este
setat când pornește shell-ul, pocni îi atribuie calea completă a curentului
shell-ul de conectare al utilizatorului.
TIMEFORMAT
Valoarea acestui parametru este folosită ca șir de format care specifică modul de sincronizare
informații pentru conducte prefixate cu timp cuvântul rezervat ar trebui să fie afișat.
% caracterul introduce o secvență de evadare care este extinsă la o valoare de timp sau
alte informații. Secvențele de evadare și semnificațiile lor sunt următoarele; cel
bretele denotă porțiuni opționale.
%% Un literal %.
%[p][l]R Timpul scurs în secunde.
%[p][lu Numărul de secunde CPU petrecute în modul utilizator.
%[p][l]S Numărul de secunde CPU petrecute în modul sistem.
%P Procentul CPU, calculat ca (%U + %S) / %R.

Opțional p este o cifră care specifică precizie, numărul de cifre fracționale
după o virgulă zecimală. O valoare de 0 nu face ca nicio zecimală sau fracție să fie
ieșire. Pot fi specificate cel mult trei locuri după virgulă; valori ale p
mai mare de 3 se schimbă în 3. Dacă p nu este specificat, se utilizează valoarea 3.

Opțional l specifică un format mai lung, inclusiv minute, al formularului MMmSS.FFs.
Valoarea a p determină dacă fracțiunea este inclusă sau nu.

Dacă această variabilă nu este setată, pocni se comportă de parcă ar avea valoare
$'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'. Dacă valoarea este nulă, nu există sincronizare
sunt afișate informații. O linie nouă este adăugată atunci când șirul de format este
afișat.
TMOUT Dacă este setată la o valoare mai mare decât zero, TMOUT este tratat ca timeout implicit pentru
il citit incorporat. The selecta comanda 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șteptat după o linie de intrare
emiterea promptului primar. Bash se încheie după așteptarea acelui număr de
secunde dacă nu ajunge o linie completă de intrare.
TMPDIR Dacă este setat, pocni își folosește valoarea ca nume al unui director în care pocni creează
fișiere temporare pentru utilizarea shell-ului.
auto_reluare
Această variabilă controlează modul în care shell-ul interacționează cu utilizatorul și controlul jobului. Dacă
această variabilă este setată, sunt tratate comenzi simple cu un singur cuvânt fără redirecționări
în calitate de candidaţi pentru reluarea unui loc de muncă existent oprit. Nu există ambiguitate
permis; dacă există mai multe joburi care încep cu șirul introdus, jobul
cel mai recent accesat este selectat. The nume a unui loc de muncă oprit, în acest context, este
linia de comandă folosită pentru a-l porni. Dacă este setată la valoarea exact, sfoara furnizata
trebuie să se potrivească exact cu numele unui loc de muncă oprit; dacă este setat la subcord, șirul
furnizat trebuie să se potrivească cu un subșir al numelui unui job oprit. The subcord
value oferă o funcționalitate analogă cu %? identificatorul locului de muncă (vezi JOB CONTROL
de mai jos). Dacă este setat la orice altă valoare, șirul furnizat trebuie să fie un prefix al lui a
numele locului de muncă oprit; aceasta oferă o funcționalitate analogă cu %şir muncă
identificator.
histchars
Cele două sau trei caractere care controlează expansiunea istoriei și tokenizarea (vezi
ISTORIE EXPANSIUNE de mai jos). Primul personaj este istorie expansiune caracter,
caracterul care semnalează începutul unei expansiuni istorice, în mod normal `!'.
al doilea personaj este rapid substituție caracter, care este folosit ca stenografie
pentru a rula din nou comanda anterioară introdusă, înlocuind un șir cu altul în
comanda. Valoarea implicită este `^'. Al treilea caracter opțional este personajul
ceea ce indică faptul că restul rândului este un comentariu atunci când este găsit ca primul
caracterul unui cuvânt, în mod normal `#'. Caracterul de comentariu istoric provoacă istorie
înlocuirea trebuie sărită pentru cuvintele rămase de pe linie. Aceasta nu
determină în mod necesar analizatorul shell să trateze restul liniei ca un comentariu.

Arrays
Bash furnizează variabile matrice unidimensionale indexate și asociative. Orice variabilă poate
să fie folosit ca o matrice indexată; cel declara builtin va declara în mod explicit o matrice. Acolo
nu există o limită maximă pentru dimensiunea unei matrice și nici o cerință ca membrii să fie indexați
sau atribuite contiguu. Matricele indexate sunt referite folosind numere întregi (inclusiv
expresii aritmetice) și sunt bazate pe zero; tablourile asociative sunt referite folosind
șiruri arbitrare. Dacă nu se menționează altfel, indicii de matrice indexați trebuie să fie nenegativi
numere întregi.

O matrice indexată este creată automat dacă îi este atribuită vreo variabilă folosind sintaxa
nume[indicele]=valoare. indicele este tratată ca o expresie aritmetică care trebuie
evalua la un număr. Pentru a declara în mod explicit o matrice indexată, utilizați declara -a nume (A se vedea
COAJĂ INCORPORAT COMANDE de mai jos). declara -a nume[indicele] este de asemenea acceptat; cel indicele
este ignorat.

Matricele asociative sunt create folosind declara -A nume.

Atributele pot fi specificate pentru o variabilă matrice utilizând declara și numai în citire încorporate.
Fiecare atribut se aplică tuturor membrilor unei matrice.

Matricele sunt atribuite utilizând atribuiri compuse ale formei nume=(valoare1 ... valoaren),
unde fiecare valoare este de forma [indicele]=şir. Atribuțiile de matrice indexate nu
necesită orice, dar şir. Când se atribuie matricelor indexate, dacă parantezele opționale
și indicele sunt furnizate, acel index este alocat; în caz contrar indicele elementului
atribuit este ultimul index alocat de instrucțiune plus unu. Indexarea începe la
zero.

Când se atribuie unui tablou asociativ, este necesar indicele.

Această sintaxă este acceptată și de declara incorporat. Elementele de matrice individuale pot fi
atribuit utilizării nume[indicele]=valoare sintaxa introdusă mai sus. Când se atribuie unui
matrice indexată, dacă nume este înscris cu un număr negativ, acel număr este interpretat ca
relativ la unul mai mare decât indicele maxim al nume, deci indicii negativi contează înapoi
de la sfârșitul matricei și un index de -1 face referire la ultimul element.

Orice element al unui tablou poate fi referit folosind ${nume[indicele]}. Bretele sunt
necesar pentru a evita conflictele cu extinderea numelui de cale. Dacă indicele is @ or *, cuvantul
se extinde la toți membrii nume. Aceste indice diferă numai atunci când cuvântul apare în interior
ghilimele duble. Dacă cuvântul este între ghilimele, ${nume[*]} se extinde la un singur cuvânt cu
valoarea fiecărui membru al matricei, separat de primul caracter al IFS variabila speciala,
și ${nume[@]} extinde fiecare element al nume la un cuvânt separat. Când nu există matrice
membri, ${nume[@]} se extinde la nimic. Dacă expansiunea cu ghilimele duble are loc în a
cuvânt, extinderea primului parametru este unită cu partea de început a
cuvântul original, iar extinderea ultimului parametru este unită cu ultima parte a
cuvânt original. Acest lucru este analog cu extinderea parametrilor speciali * și @ (A se vedea
Special parametrii de mai sus). ${#nume[indicele]} se extinde la lungimea de
${nume[indicele]}. Dacă indicele is * or @, expansiunea este numărul de elemente în
matricea. Referirea unei variabile matrice fără un indice este echivalentă cu referire
tabloul cu un indice de 0. Dacă indicele folosit pentru a face referire la un element al unui
tabloul indexat evaluează la un număr mai mic decât zero, este interpretat ca fiind relativ la unu
mai mare decât indicele maxim al matricei, astfel încât indicii negativi numără înapoi de la sfârșit
al matricei, iar un index de -1 face referire la ultimul element.

O variabilă matrice este considerată setată dacă unui indice i s-a atribuit o valoare. Nulul
șir este o valoare validă.

Este posibil să se obțină cheile (indicii) unui tablou precum și valorile.
${!nume[@]} și ${!nume[*]} se extinde la indicii alocați în variabila matrice nume.
tratamentul când este între ghilimele duble este similar cu extinderea parametrilor speciali @
și * între ghilimele duble.

dezactivat builtin este folosit pentru a distruge matrice. dezactivat nume[indicele] distruge matricea
element la index indicele. Indicele negative ale tablourilor indexate sunt interpretate ca
descris mai sus. Trebuie avut grijă pentru a evita efectele secundare nedorite cauzate de numele căii
expansiune. dezactivat nume, În cazul în care nume este o matrice sau dezactivat nume[indicele], Unde indicele
is * or @, elimină întreaga matrice.

declara, local, și numai în citire încorporate fiecare acceptă a -a opțiunea de a specifica un indexat
matrice și a -A opțiunea de a specifica o matrice asociativă. Dacă sunt furnizate ambele opțiuni, -A
are prioritate. The citit încorporat acceptă a -a opțiunea de a atribui o listă de cuvinte citite
de la intrarea standard la o matrice. The set și declara modulele interne afișează valorile matrice în
un mod care le permite să fie reutilizate ca sarcini.

EXPANSIUNE


Extinderea este efectuată pe linia de comandă după ce a fost împărțită în cuvinte. Sunt
șapte tipuri de extindere efectuate: bretele expansiune, tildă expansiune, parametru și
variabil expansiune, comandă substituție, aritmetic expansiune, cuvânt despicare, și
caii de acces expansiune.

Ordinea expansiunilor este: expansiunea bretelor; expansiune tilde, parametru și variabilă
expansiunea, extinderea aritmetică și înlocuirea comenzilor (realizată de la stânga la dreapta
Modă); împărțirea cuvintelor; și extinderea numelui de cale.

Pe sistemele care îl pot suporta, există o extindere suplimentară disponibilă: proces
substituție. Aceasta se realizează în același timp cu tilde, parametru, variabilă și
extinderea aritmetică și înlocuirea comenzilor.

Numai extinderea acolade, împărțirea cuvintelor și extinderea căii pot modifica numărul de
cuvintele expansiunii; alte expansiuni extind un singur cuvânt la un singur cuvânt. Singura
excepții de la aceasta sunt expansiunile "$@"Şi"${nume[@]}", după cum s-a explicat mai sus (vezi
PARAMETRI).

Bretele Expansiune
Bretele expansiune este un mecanism prin care pot fi generate șiruri arbitrare. Acest
mecanism este similar cu caii de acces expansiune, dar numele de fișiere generate nu trebuie să existe.
Modelele care urmează să fie extinse prin bretele iau forma opțională preambul, urmat fie de a
serie de șiruri separate prin virgulă sau o expresie de secvență între o pereche de acolade,
urmată de un opțional postscriptum. Preambulul este prefixat la fiecare șir conținut
în acolade, iar postscriptul este apoi atașat fiecărui șir rezultat, extinzându-se
de la stânga la dreapta.

Expansiunile bretelor pot fi imbricate. Rezultatele fiecărui șir extins nu sunt sortate; stânga
la ordinea corectă este păstrată. De exemplu, a{d,c,b}e se extinde în „ade ace abe”.

O expresie secvență ia forma {x..y[..incr]}, În cazul în care x și y sunt fie numere întregi, fie
personaje unice și incr, o creștere opțională, este un număr întreg. Când numerele întregi sunt
furnizat, expresia se extinde la fiecare număr dintre x și y, inclusiv. Furnizat
numerele întregi pot fi prefixate cu 0 pentru a forța fiecare termen să aibă aceeași lățime. Când fie x
or y începe cu zero, shell-ul încearcă să forțeze toți termenii generați să conțină
același număr de cifre, zero-padding acolo unde este necesar. Când sunt furnizate caractere,
expresia se extinde la fiecare caracter lexicografic între x și y, inclusiv, folosind
localul C implicit. Rețineți că ambele x și y trebuie să fie de același tip. Cand
increment este furnizat, este folosit ca diferență între fiecare termen. Implicit
incrementul este 1 sau -1 după caz.

Expansiunea Brace este efectuată înaintea oricăror alte expansiuni și a oricăror personaje speciale
alte expansiuni se păstrează în rezultat. Este strict textual. Bash nu
aplica orice interpretare sintactica contextului expansiunii sau textului dintre
bretele.

O expansiune de bretele formată corect trebuie să conțină bretele de deschidere și de închidere necotate și
cel puțin o virgulă fără ghilimele sau o expresie de secvență validă. Orice bretele format incorect
extinderea rămâne neschimbată. A { or , poate fi citat cu o bară oblică inversă pentru a preveni apariția acestuia
considerat parte a expresiei acolade. Pentru a evita conflictele cu extinderea parametrilor,
şir ${ nu este considerat eligibil pentru extinderea bretelor.

Acest construct este de obicei folosit ca prefix atunci când prefixul comun al șirurilor de caractere urmează să fie
generat este mai lung decât în ​​exemplul de mai sus:

mkdir /usr/local/src/bash/{vechi, nou, dist, erori}
or
rădăcină chown /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

Expansiunea Brace introduce o ușoară incompatibilitate cu versiunile istorice ale sh. sh
nu tratează acoladele de deschidere sau de închidere în special atunci când apar ca parte a unui cuvânt și
le păstrează în ieșire. Bash elimină acolade din cuvinte ca o consecință a acoladei
expansiune. De exemplu, un cuvânt introdus la sh as fișier{1,2} apare identic în
ieșire. Același cuvânt este scos ca file1 file2 după extinderea prin pocni. Dacă strict
compatibilitate cu sh este dorit, începe pocni cu +B opțiunea sau dezactivați extinderea bretelor
cu +B opțiune la set comanda (vezi COAJĂ INCORPORAT COMANDE de mai jos).

Tildă Expansiune
Dacă un cuvânt începe cu un caracter tilde fără ghilimele (`~'), toate personajele precedente
sunt luate în considerare prima bară oblică fără ghilimele (sau toate caracterele, dacă nu există nicio bară oblică fără ghilimele).
a tilde-prefix. Dacă niciunul dintre caracterele din prefixul tilde nu este citat, caracterele
în prefixul tilde care urmează tildei sunt tratate ca posibile Logare nume. Dacă aceasta
numele de conectare este șirul nul, tilde este înlocuit cu valoarea parametrului shell
ACASA. Dacă ACASA este nesetat, directorul principal al utilizatorului care execută shell-ul este înlocuit
in schimb. În caz contrar, prefixul tilde este înlocuit cu directorul principal asociat
numele de conectare specificat.

Dacă prefixul tilde este un `~+', valoarea variabilei shell PWD înlocuiește tilde-
prefix. Dacă prefixul tilde este un `~-', valoarea variabilei shell OLDPWD, dacă este
set, este înlocuit. Dacă caracterele care urmează tildei din prefixul tilde constau din
un număr N, prefix opțional cu un „+” sau un „-”, prefixul tilde este înlocuit cu
elementul corespunzător din stiva de directoare, așa cum ar fi afișat de dirs
builtin invocat cu prefixul tilde ca argument. Dacă personajele care urmează
tilde din prefixul tilde constă dintr-un număr fără un „+” sau „-”, „+” este
asumat.

Dacă numele de conectare este nevalid sau extinderea tilde eșuează, cuvântul rămâne neschimbat.

Fiecare alocare de variabilă este verificată pentru prefixe tilde necotate imediat după a :
sau primul =. În aceste cazuri, se realizează și extinderea tildei. În consecință, se poate
utilizați nume de fișiere cu tilde în atribuirile către PATH, MAILCATH, și CDPATH, și coaja
atribuie valoarea extinsă.

Parametru Expansiune
$caracterul introduce extinderea parametrilor, înlocuirea comenzilor sau aritmetica
expansiune. Numele sau simbolul parametrului care urmează să fie extins poate fi cuprins între acolade, care
sunt opționale, dar servesc pentru a proteja variabila care urmează să fie extinsă de la caractere imediat
urmând-o care ar putea fi interpretată ca parte a numelui.

Când sunt folosite acolade, acoladele de sfârșit potrivite este primul `}' nu a scăpat de a
bară oblică inversă sau într-un șir între ghilimele, și nu într-o expansiune aritmetică încorporată,
înlocuirea comenzii sau extinderea parametrilor.

${parametru}
Valoarea a parametru este substituit. Bretele sunt necesare când parametru este
parametru de poziție cu mai mult de o cifră sau când parametru este urmat de un
caracter care nu trebuie interpretat ca parte a numelui său. The parametru este
parametrul shell așa cum este descris mai sus PARAMETRI) sau o referință de matrice (Arrays).

Dacă primul personaj al parametru este un semn de exclamare (!), introduce un nivel de
indirecta variabila. Bash folosește valoarea variabilei formate din restul
parametru ca numele variabilei; această variabilă este apoi extinsă și acea valoare este
folosit în restul înlocuirii, mai degrabă decât valoarea lui parametru în sine. Aceasta este
cunoscut ca indirect expansiune. Excepțiile de la aceasta sunt expansiunile de ${!prefix*} și
${!nume[@]} descris mai jos. Semnul de exclamare trebuie să urmeze imediat acoladei din stânga
pentru a introduce indirect.

În fiecare dintre cazurile de mai jos, cuvânt este supus expansiunii tildei, extinderii parametrilor,
înlocuirea comenzilor și extinderea aritmetică.

Când nu se efectuează extinderea subșirurilor, folosind formularele documentate mai jos (de exemplu, :-), pocni
testează pentru un parametru care este nesetat sau nul. Omiterea colonului are ca rezultat doar un test
pentru un parametru care este nesetat.

${parametru:-cuvânt}
Utilizare Mod implicit Valori. Dacă parametru este nesetat sau nul, expansiunea de cuvânt is
substituit. În caz contrar, valoarea de parametru este substituit.
${parametru:=cuvânt}
Atribui Mod implicit Valori. Dacă parametru este nesetat sau nul, expansiunea de cuvânt is
atribuit parametru. Valoarea a parametru este apoi înlocuit. Pozițional
parametrii și parametrii speciali nu pot fi alocați în acest fel.
${parametru:?cuvânt}
Afişa Eroare if Null or Dezactivat. Dacă parametru este nulă sau nesetata, expansiunea de
cuvânt (sau un mesaj în acest sens dacă cuvânt nu este prezent) este scris la
eroare standard și shell-ul, dacă nu este interactiv, iese. În caz contrar, cel
Valoarea parametru este substituit.
${parametru:+cuvânt}
Utilizare Alterna Valoare. Dacă parametru este nul sau nesetat, nimic nu este înlocuit,
în caz contrar extinderea cuvânt este substituit.
${parametru:compensa}
${parametru:compensa:lungime}
Subșir Expansiune. Se extinde până la lungime caractere ale valorii de parametru
începând cu caracterul specificat de compensa. Dacă parametru is @, o matrice indexată
abonat de @ or *, sau un nume de tablou asociativ, rezultatele diferă ca
descris mai jos. Dacă lungime este omis, se extinde la subșirul valorii lui
parametru începând cu caracterul specificat de compensa și extinzându-se până la sfârșitul
valoarea. lungime și compensa sunt expresii aritmetice (vezi ARITMETIC EVALUARE
de mai jos).

If compensa evaluează la un număr mai mic decât zero, valoarea este utilizată ca decalaj în
caractere de la sfârșitul valorii lui parametru. Dacă lungime evaluează la un număr
mai mic decât zero, este interpretat ca o compensare în caractere de la sfârșitul textului
Valoarea parametru mai degrabă decât un număr de personaje, iar expansiunea este
personaje între compensa si acel rezultat. Rețineți că un offset negativ trebuie să fie
separate de colon prin cel puțin un spațiu pentru a evita confundarea cu :-
expansiune.

If parametru is @, rezultatul este lungime parametrii poziționali începând de la compensa.
Un negativ compensa este luată relativ la unul mai mare decât poziționalul cel mai mare
parametru, astfel încât un offset de -1 evaluează la ultimul parametru pozițional. Este un
eroare de extindere dacă lungime evaluează la un număr mai mic decât zero.

If parametru este un nume de matrice indexat în subscriptie de @ sau *, rezultatul este
lungime membri ai matricei care încep cu ${parametru[compensa]}. Un negativ compensa
este luată relativ la unul mai mare decât indicele maxim al matricei specificate. Aceasta
este o eroare de expansiune dacă lungime evaluează la un număr mai mic decât zero.

Extinderea subșirurilor aplicată unui tablou asociativ produce rezultate nedefinite.

Indexarea subșirurilor este bazată pe zero, cu excepția cazului în care sunt utilizați parametrii de poziție, în
caz în care indexarea începe implicit la 1. Dacă compensa este 0, iar poziționalul
sunt utilizați parametrii, $0 este prefixat listei.

${!prefix*}
${!prefix@}
Alte denumiri potrivire prefix. Se extinde la numele variabilelor ale căror nume încep cu
prefix, separate prin primul caracter al IFS variabilă specială. Când @ is
folosit și extinderea apare între ghilimele duble, fiecare nume de variabilă se extinde la
un cuvânt separat.

${!nume[@]}
${!nume[*]}
Listă of mulțime chei. Dacă nume este o variabilă matrice, se extinde la lista de matrice
indici (chei) atribuite în nume. Dacă nume nu este o matrice, se extinde la 0 dacă nume is
set și nul în caz contrar. Când @ este folosit și expansiunea apare în dublu
ghilimele, fiecare tastă se extinde la un cuvânt separat.

${#parametru}
Parametru lungime. Lungimea în caractere a valorii lui parametru is
substituit. Dacă parametru is * or @, valoarea înlocuită este numărul de
parametrii poziționali. Dacă parametru este un nume de tablou subscript de * or @,
valoarea substituită este numărul de elemente din matrice. Dacă parametru este o
nume de matrice indexat subscriptat printr-un număr negativ, acel număr este interpretat ca
relativ la unul mai mare decât indicele maxim al parametru, deci indici negativi
numără înapoi de la sfârșitul matricei și un index de -1 face referire la ultimul
element.

${parametru#cuvânt}
${parametru##cuvânt}
Elimină potrivire prefix model. cuvânt este extins pentru a produce un model la fel ca
în extinderea numelui de cale. Dacă modelul se potrivește cu începutul valorii lui
parametru, atunci rezultatul expansiunii este valoarea extinsă a parametru cu
cel mai scurt model de potrivire („#'' caz) sau cel mai lung model de potrivire (the
``##'' caz) șters. Dacă parametru is @ or *, operația de eliminare a modelului este
aplicat pe rând fiecărui parametru de poziție, iar expansiunea este rezultatul
listă. Dacă parametru este o variabilă matrice cu indice @ or *, modelul
operația de îndepărtare se aplică fiecărui membru al matricei pe rând și extinderea
este lista rezultată.

${parametru%cuvânt}
${parametru%%cuvânt}
Elimină potrivire sufix model. cuvânt este extins pentru a produce un model la fel ca
în extinderea numelui de cale. Dacă modelul se potrivește cu o porțiune de sfârșit a modelului extins
Valoarea parametru, atunci rezultatul expansiunii este valoarea extinsă a
parametru cu cel mai scurt model de potrivire („%'' caz) sau cel mai lung
model de potrivire („%%'' caz) șters. Dacă parametru is @ or *, modelul
operația de îndepărtare este aplicată fiecărui parametru de poziție pe rând și
expansiunea este lista rezultată. Dacă parametru este o variabilă matrice în indice
cu @ or *, operația de eliminare a modelului este aplicată fiecărui membru al matricei
la rândul său, iar extinderea este lista rezultată.

${parametru/model/şir}
Model substituție. model este extins pentru a produce un model la fel ca în
extinderea numelui de cale. Parametru este extins și cel mai lung meci de model împotriva
valoarea sa este înlocuită cu şir. Dacă model începe cu /, toate meciurile de
model sunt înlocuite cu şir. În mod normal, doar primul meci este înlocuit. Dacă
model începe cu #, trebuie să se potrivească la începutul valorii extinse a
parametru. Dacă model începe cu %, trebuie să se potrivească la sfârșitul extinsului
Valoarea parametru. Dacă şir este nulă, potrivirile de model sunt șterse și /
următor model poate fi omis. Dacă parametru is @ or *, înlocuirea
operația se aplică fiecărui parametru de poziție pe rând, iar expansiunea este
lista rezultată. Dacă parametru este o variabilă matrice cu indice @ or *,
operația de substituție este aplicată fiecărui membru al matricei pe rând și
expansiunea este lista rezultată.

${parametru^model}
${parametru^^model}
${parametru,model}
${parametru,,model}
Caz modificare. Această extindere modifică cazul caracterelor alfabetice în
parametru. model este extins pentru a produce un model la fel ca în calea
expansiune. Fiecare caracter în valoarea extinsă a parametru este testat împotriva
modelși, dacă se potrivește cu modelul, majusculele sale sunt convertite. Modelul ar trebui
nu încercați să potriviți mai mult de un caracter. The ^ operatorul convertește litere mici
potrivirea literelor model la majuscule; cel , operatorul convertește potrivirea majuscule
litere în minuscule. The ^^ și ,, expansiunile convertesc fiecare caracter potrivit în
valoarea extinsă; cel ^ și , expansiunile se potrivesc și îl convertesc numai pe primul
caracter în valoarea extinsă. Dacă model este omis, este tratat ca a ?,
care se potrivește cu fiecare personaj. Dacă parametru is @ or *, modificarea cazului
operația se aplică fiecărui parametru de poziție pe rând, iar expansiunea este
lista rezultată. Dacă parametru este o variabilă matrice cu indice @ or *,
operația de modificare a cazului este aplicată fiecărui membru al matricei pe rând și
expansiunea este lista rezultată.

Comandă Înlocuire
Comandă substituție permite ieșirea unei comenzi să înlocuiască numele comenzii. Acolo
sunt doua forme:

$(comandă)
or
`comandă`

Bash efectuează extinderea executând comandă și înlocuirea înlocuirii comenzii
cu ieșirea standard a comenzii, cu toate liniile noi șterse. Încorporat
liniile noi nu sunt șterse, dar pot fi eliminate în timpul împărțirii cuvintelor. Comanda
substituție $(cat fişier) poate fi înlocuit cu echivalentul dar mai rapid $( fişier).

Când se folosește forma de substituție de tip backquote în stil vechi, backslash își păstrează literalul
sens, cu excepția cazului în care este urmat de $, `, Sau \. Primul ghilimeleu neprecedat de a
backslash termină înlocuirea comenzii. Când utilizați $(comandă) formă, toate
caracterele dintre paranteze alcătuiesc comanda; niciunul nu este tratat special.

Substituțiile de comandă pot fi imbricate. Pentru a imbrica atunci când utilizați formularul cu ghilimele din spate, scăpați de
ghilimele interioare cu bare oblice inverse.

Dacă înlocuirea apare între ghilimele duble, împărțirea cuvintelor și extinderea numelui de cale
nu sunt efectuate pe rezultate.

Aritmetică Expansiune
Expansiunea aritmetică permite evaluarea unei expresii aritmetice și a
substituirea rezultatului. Formatul pentru extinderea aritmetică este:

$((expresie))

Vechiul format $[expresie] este depreciat și va fi eliminat în versiunile viitoare ale
bash.

expresie este tratat ca și cum ar fi între ghilimele duble, dar un ghilimele duble înăuntru
parantezele nu sunt tratate special. Toate jetoanele din expresie sunt supuse unui parametru
și extinderea variabilelor, înlocuirea comenzilor și eliminarea citatelor. Rezultatul este tratat ca
expresia aritmetică de evaluat. Expansiunile aritmetice pot fi imbricate.

Evaluarea se realizează conform regulilor enumerate mai jos la capitolul ARITMETIC
EVALUARE. Dacă expresie este invalid, pocni tipărește un mesaj care indică eșecul și nu
are loc substituția.

Proces Înlocuire
Proces substituție este acceptat pe sistemele care acceptă conducte numite (FIFO-uri) sau
/dev/fd metoda de denumire a fișierelor deschise. Ia forma de <(listă) or >(listă).
proces listă este rulat cu intrarea sau ieșirea conectată la a FIFO sau un fișier în /dev/fd.
Numele acestui fișier este transmis ca argument la comanda curentă ca rezultat al
expansiune. Dacă >(listă) este utilizat formularul, scrierea în fișier va oferi intrare pentru listă.
În cazul în care <(listă) este utilizat formularul, fișierul transmis ca argument ar trebui citit pentru a obține
ieșire din listă.

Atunci când este disponibil, înlocuirea procesului se realizează simultan cu parametrul și
expansiunea variabilă, înlocuirea comenzilor și extinderea aritmetică.

Cuvânt Despicare
Shell-ul scanează rezultatele extinderii parametrilor, înlocuirii comenzilor și aritmeticii
expansiune care nu a avut loc între ghilimele duble pt cuvânt despicare.

Cochilia tratează fiecare personaj al IFS ca delimitator și împarte rezultatele celuilalt
extinderi în cuvinte folosind aceste caractere ca terminatori de câmp. Dacă IFS este nesetat, sau
valoarea lui este exact , implicit, apoi secvențe de , ,
și la începutul şi sfârşitul rezultatelor expansiunilor anterioare sunt
ignorat, și orice secvență de IFS caracterele care nu sunt la început sau la sfârșit servesc la delimitare
cuvinte. Dacă IFS are o altă valoare decât cea implicită, apoi secvențe ale spațiului alb
caractere spaţiu și fila sunt ignorate la începutul și la sfârșitul cuvântului, atâta timp cât
caracterul de spațiu alb este în valoare de IFS (un IFS caracterul spatiu alb). Orice personaj
in IFS aceea nu este IFS spații albe, împreună cu orice adiacent IFS caractere cu spații albe,
delimitează un câmp. O succesiune de IFS caracterele de spațiu alb sunt, de asemenea, tratate ca un delimitator.
Dacă valoarea de IFS este nulă, nu are loc divizarea cuvintelor.

Argumente nule explicite ("" or '') sunt reținute. Argumente nule implicite necotate,
rezultate din extinderea parametrilor care nu au valori, sunt eliminate. În cazul în care un
parametrul fără valoare este extins între ghilimele duble, rezultă un argument nul și este
retinut.

Rețineți că, dacă nu are loc o expansiune, nu se efectuează nicio divizare.

Nume cale Expansiune
După împărțirea cuvintelor, cu excepția cazului în care -f opțiunea a fost setată, pocni scanează fiecare cuvânt pentru
caractere *, ?, și [. Dacă apare unul dintre aceste caractere, atunci cuvântul este considerat ca
a model, și înlocuit cu o listă sortată alfabetic de nume de fișiere care se potrivesc cu
model (vezi Model De potrivire de mai jos). Dacă nu se găsesc nume de fișiere potrivite, și shell-ul
opțiune nullglob nu este activat, cuvântul rămâne neschimbat. Dacă nullglob opțiunea este
setată și nu sunt găsite potriviri, cuvântul este eliminat. Dacă failglob opțiunea shell este setată,
și nu sunt găsite potriviri, este tipărit un mesaj de eroare și comanda nu este executată. Dacă
opțiunea shell nocaseglob este activat, potrivirea se efectuează indiferent de caz
de caractere alfabetice. Rețineți că atunci când utilizați expresii de interval precum [az] (vezi mai jos),
pot fi incluse litere din celălalt caz, în funcție de setarea LC_COLLATE. Atunci când o
modelul este folosit pentru extinderea numelui de cale, caracterul ``.'' la începutul unui nume sau
imediat după o bară oblică trebuie să se potrivească în mod explicit, cu excepția cazului în care opțiunea shell dotglob
este setat. Când se potrivește un nume de cale, caracterul slash trebuie întotdeauna să fie potrivit explicit.
În alte cazuri, ``.'' caracterul nu este tratat special. Vezi descrierea lui
magazin dedesubt COAJĂ INCORPORAT COMANDE pentru o descriere a nocaseglob, nullglob,
failglob, și dotglob opțiuni shell.

GLOBIGNORE Variabila shell poate fi folosită pentru a restricționa setul de nume de fișiere care se potrivesc cu a
model. Dacă GLOBIGNORE este setat, fiecare nume de fișier care se potrivește și care se potrivește cu unul dintre
modele în GLOBIGNORE este eliminat din lista de potriviri. Numele fișierelor ``.'' și
``...'' sunt întotdeauna ignorate când GLOBIGNORE este setat și nu nul. Cu toate acestea, setarea
GLOBIGNORE la o valoare non-nulă are ca efect activarea dotglob opțiunea shell, deci toate
alte nume de fișiere care încep cu a ``.'' se va potrivi. Pentru a obține vechiul comportament de a ignora
nume de fișiere care încep cu a ``.'', face ``.*'' unul dintre modelele din GLOBIGNORE.
dotglob opțiunea este dezactivată când GLOBIGNORE este nesetat.

Model De potrivire

Orice caracter care apare într-un model, altul decât caracterele speciale ale modelului
descris mai jos, se potrivește. Este posibil ca caracterul NUL să nu apară într-un model. A
bara oblică inversă scapă următorul caracter; bara oblică inversă care scapă este aruncată când
potrivire. Caracterele speciale ale modelului trebuie să fie citate pentru a se potrivi
literalmente.

Caracterele de tipar special au următoarele semnificații:

* Se potrivește cu orice șir, inclusiv șirul nul. Cand globstar coajă
opțiunea este activată și * este utilizat într-un context de extindere a numelui de cale, doi
adiacent *s utilizate ca un singur model se vor potrivi cu toate fișierele și zero sau mai multe
directoare și subdirectoare. Dacă este urmată de a /, două alăturate *Voi face
potrivesc numai directoare și subdirectoare.
? Se potrivește cu orice caracter.
[...] Se potrivește cu oricare dintre caracterele incluse. O pereche de personaje separate
printr-o cratimă denotă a gamă expresie; orice personaj care se încadrează între
acele două caractere, inclusiv, folosind colaţionarea localului curent
secvența și setul de caractere se potrivesc. Dacă primul caracter care urmează
il [ este ! sau un ^ atunci orice caracter care nu este inclus se potrivește. The
Ordinea de sortare a caracterelor din expresiile interval este determinată de
localitatea curentă și valorile LC_COLLATE or LC_ALL variabile shell,
dacă este setat. Pentru a obține interpretarea tradițională a expresiilor de gamă,
Unde [anunț] este echivalent cu [abcd], valoarea setată a LC_ALL variabila shell
la C, sau activați globasciiranges opțiunea shell. A - poate fi egalat de
incluzându-l ca primul sau ultimul caracter din set. A ] poate fi asortat
prin includerea lui ca prim personaj din set.

În [ și ], caracter clase poate fi specificat folosind sintaxa
[:clasă:], În cazul în care clasă este una dintre următoarele clase definite în POSIX
standard:
alnum alfa ascii necompletat cntrl cifră grafic LOWER imprima punct spaţiu UPPER cuvânt
xdigit
O clasă de caractere se potrivește cu orice caracter aparținând acelei clase. The cuvânt
clasa de caractere se potrivește cu litere, cifre și caracterul _.

În [ și ], O echivalenţă clasă poate fi specificat folosind sintaxa
[=c=], care se potrivește cu toate caracterele cu aceeași greutate de colare (ca
definit de localitatea curentă) ca caracter c.

În [ și ], sintaxa [.simbol.] se potrivește cu simbolul de comparare simbol.

În cazul în care extglob Opțiunea shell este activată folosind magazin încorporat, mai multe modele extinse
operatorii de potrivire sunt recunoscuți. În descrierea următoare, a lista de modele este o listă
a unuia sau mai multor modele separate prin a |. Modelele compozite pot fi formate folosind unul sau
mai multe dintre următoarele subtipare:

?(lista de modele)
Se potrivește cu zero sau cu o apariție a modelelor date
*(lista de modele)
Se potrivește cu zero sau mai multe apariții ale modelelor date
+(lista de modele)
Se potrivește cu una sau mai multe apariții ale modelelor date
@(lista de modele)
Se potrivește cu unul dintre modelele date
!(lista de modele)
Se potrivește cu orice, cu excepția unuia dintre modelele date

Citat Îndepărtare
După expansiunile precedente, toate aparițiile necotate ale personajelor \, ', și "
care nu au rezultat din una dintre expansiunile de mai sus sunt eliminate.

REDIRECȚIE


Înainte ca o comandă să fie executată, intrarea și ieșirea acesteia pot fi redirecționată folosind un special
notație interpretată de coajă. Redirecționarea permite mânerele fișierelor comenzilor să fie
duplicat, deschis, închis, făcut pentru a se referi la diferite fișiere și poate modifica fișierele
comanda citește de la și scrie în. Redirecționarea poate fi folosită și pentru a modifica mânerele fișierelor în
mediul actual de execuție shell. Următorii operatori de redirecționare pot precede
sau apar oriunde în cadrul unui simplu comandă sau poate urma a comandă. Redirecționările sunt
procesate în ordinea în care apar, de la stânga la dreapta.

Fiecare redirecționare care poate fi precedată de un număr de descriptor de fișier poate fi precedată
printr-un cuvânt de forma {varname}. În acest caz, pentru fiecare operator de redirecționare, cu excepția >&-
și <&-, shell-ul va aloca un descriptor de fișier mai mare sau egal cu 10 și va atribui
l varname. Dacă >&- sau <&- este precedat de {varname}, valoarea a varname definește
descriptor de fișier pentru a închide.

În următoarele descrieri, dacă numărul descriptorului de fișier este omis, și primul
caracterul operatorului de redirecţionare este <, redirecționarea se referă la intrarea standard
(descriptor de fișier 0). Dacă primul caracter al operatorului de redirecționare este >,
redirecționarea se referă la ieșirea standard (descriptorul fișierului 1).

Cuvântul care urmează operatorului de redirecționare în următoarele descrieri, cu excepția cazului în care
de notat altfel, este supus expansiunii bretelor, extinderii tildei, parametrilor și variabilei
extindere, înlocuire comenzi, extindere aritmetică, eliminare citate, extindere cale,
și împărțirea cuvintelor. Dacă se extinde la mai mult de un cuvânt, pocni raportează o eroare.

Rețineți că ordinea redirecționărilor este semnificativă. De exemplu, comanda

ls > dirlist 2>&1

direcționează atât ieșirea standard, cât și eroarea standard către fișier dirlist, în timp ce comanda

2>&1 > dirlist

direcționează numai ieșirea standard către fișier dirlist, deoarece eroarea standard a fost
duplicat din ieșirea standard înainte ca rezultatul standard să fie redirecționat dirlist.

Bash gestionează mai multe nume de fișiere în special atunci când sunt utilizate în redirecționări, așa cum este descris
în următorul tabel:

/dev/fd/fd
If fd este un întreg valid, descriptor de fișier fd este duplicat.
/dev/stdin
Descriptorul de fișier 0 este duplicat.
/dev/stdout
Descriptorul de fișier 1 este duplicat.
/dev/stderr
Descriptorul de fișier 2 este duplicat.
/dev/tcp/gazdă/port
If gazdă este un nume de gazdă sau o adresă de internet validă și port este un port întreg
numărul sau numele serviciului, pocni încearcă să deschidă socket-ul TCP corespunzător.
/dev/udp/gazdă/port
If gazdă este un nume de gazdă sau o adresă de internet validă și port este un port întreg
numărul sau numele serviciului, pocni încearcă să deschidă soclu-ul UDP corespunzător.

Eșecul deschiderii sau creării unui fișier duce la eșecul redirecționării.

Redirecționările care utilizează descriptori de fișiere mai mari de 9 ar trebui să fie folosite cu grijă, așa cum ar putea
conflict cu descriptorii de fișiere pe care shell-ul îi folosește intern.

Rețineți că Exec comanda încorporată poate face ca redirecționările să aibă efect în shell-ul curent.

Redirecționarea Intrare
Redirecționarea intrării cauzează fișierul al cărui nume rezultă din extinderea lui cuvânt pentru a fi
deschis pentru citire pe descriptor de fișier n, sau intrarea standard (descriptor de fișier 0) dacă n is
nespecificat.

Formatul general pentru redirecționarea intrării este:

[n]<cuvânt

Redirecționarea producție
Redirecționarea ieșirii provoacă fișierul al cărui nume rezultă din extinderea lui cuvânt pentru a fi
deschis pentru scriere pe descriptor de fișier n, sau ieșirea standard (descriptor de fișier 1) dacă n
nu este specificat. Dacă fișierul nu există, este creat; dacă există, este
trunchiat la dimensiunea zero.

Formatul general pentru redirecționarea ieșirii este:

[n]>cuvânt

Dacă operatorul de redirecţionare este >, Şi noclobber opțiune la set încorporat a fost
activată, redirecționarea va eșua dacă fișierul al cărui nume rezultă din extinderea lui
cuvânt există și este un fișier obișnuit. Dacă operatorul de redirecţionare este >|, sau redirecționarea
operatorul este > si noclobber opțiune la set comanda încorporată nu este activată,
se încearcă redirecționarea chiar dacă fișierul numit de cuvânt există.

Anexare Redirecționat producție
Redirecționarea ieșirii în acest mod determină fișierul al cărui nume rezultă din
extinderea de cuvânt pentru a fi deschis pentru atașare la descriptorul fișierului n, sau ieșirea standard
(descriptor de fișier 1) dacă n nu este specificat. Dacă fișierul nu există, acesta este creat.

Formatul general pentru adăugarea rezultatelor este:

[n]>>cuvânt

Redirecționarea Standard producție și Standard Eroare
Acest construct permite atât ieșirea standard (descriptorul fișierului 1), cât și eroarea standard
ieșire (descriptor de fișier 2) pentru a fi redirecționat către fișierul al cărui nume este extinderea
cuvânt.

Există două formate pentru redirecționarea ieșirii standard și a erorilor standard:

&>cuvânt
și
>&cuvânt

Dintre cele două forme, prima este preferată. Acest lucru este echivalent din punct de vedere semantic cu

>cuvânt 2>&1

Când utilizați a doua formă, cuvânt poate să nu se extindă la un număr sau -. Dacă o face, altceva
se aplică operatorii de redirecționare (vezi Duplicarea Fișier Descriptori mai jos) pentru compatibilitate
motive.

Anexare Standard producție și Standard Eroare
Acest construct permite atât ieșirea standard (descriptorul fișierului 1), cât și eroarea standard
ieșire (descriptor de fișier 2) pentru a fi atașat la fișierul al cărui nume este extinderea cuvânt.

Formatul pentru adăugarea ieșirii standard și a erorii standard este:

&>>cuvânt

Acest lucru este echivalent din punct de vedere semantic cu

>>cuvânt 2>&1

(A se vedea Duplicarea Fișier Descriptori de mai jos).

Aici Documente
Acest tip de redirecționare indică shell-ului să citească intrarea de la sursa curentă până la a
linie care conține numai delimitator (fără spații libere) este văzută. Toate rândurile citite
până în acel moment sunt apoi utilizate ca intrare standard pentru o comandă.

Formatul documentelor aici este:

<<[-]cuvânt
aici-document
delimitator

Fără extensie de parametri și variabile, înlocuire de comenzi, extindere aritmetică sau
extinderea numelui de cale este efectuată pe cuvânt. Dacă vreun caracter în cuvânt sunt citate, cele
delimitator este rezultatul eliminării citatului pe cuvânt, iar rândurile din documentul aici sunt
nu extins. Dacă cuvânt este necotat, toate rândurile documentului aici sunt supuse
extinderea parametrilor, înlocuirea comenzilor și extinderea aritmetică, caracterul
secvenţă \ este ignorată și \ trebuie folosit pentru a cita personajele \, $, și `.

Dacă operatorul de redirecţionare este << -, apoi toate caracterele de filă de început sunt eliminate
linii de intrare și linia care conține delimitator. Acest lucru permite aici documente în shell
scripturile să fie indentate într-un mod natural.

Aici Corzi
O variantă a documentelor de aici, formatul este:

<<cuvânt

cuvânt suferă expansiune brete, extindere tilde, expansiune parametrilor și variabile,
înlocuirea comenzilor, extinderea aritmetică și eliminarea citatelor. Extinderea numelui căii și
divizarea cuvintelor nu se efectuează. Rezultatul este furnizat ca un singur șir la
comanda pe intrarea sa standard.

Duplicarea Fișier Descriptori
Operatorul de redirecționare

[n]<&cuvânt

este folosit pentru a duplica descriptorii fișierelor de intrare. Dacă cuvânt se extinde la una sau mai multe cifre, the
descriptor de fișier notat cu n este făcută să fie o copie a acelui descriptor de fișier. Dacă cifrele
in cuvânt nu specificați un descriptor de fișier deschis pentru introducere, apare o eroare de redirecționare. Dacă
cuvânt evaluează la -, descriptor de fișier n este închis. Dacă n nu este specificat, standardul
este utilizată intrarea (descriptorul fișierului 0).

Operatorul

[n]>&cuvânt

este utilizat în mod similar pentru a duplica descriptorii fișierelor de ieșire. Dacă n nu este specificat, the
este utilizată ieşirea standard (descriptorul de fişier 1). Dacă cifrele în cuvânt nu specificați un fișier
descriptor deschis pentru ieșire, apare o eroare de redirecționare. Dacă cuvânt evaluează la -, dosar
descriptor n este închis. Ca caz special, dacă n este omisă și cuvânt nu se extinde la
una sau mai multe cifre sau -, ieșirea standard și eroarea standard sunt redirecționate ca
descris anterior.

Mutarea Fișier Descriptori
Operatorul de redirecționare

[n]<&cifră-

mută descriptorul de fișier cifră la descriptor de fișier n, sau intrarea standard (fișier
descriptor 0) dacă n nu este specificat. cifră este închis după ce a fost duplicat în n.

În mod similar, operatorul de redirecționare

[n]>&cifră-

mută descriptorul de fișier cifră la descriptor de fișier n, sau ieșirea standard (fișier
descriptor 1) dacă n nu este specificat.

Deschidere Fișier Descriptori pentru Citind și Scris
Operatorul de redirecționare

[n]<>cuvânt

provoacă fișierul al cărui nume este extinderea cuvânt să fie deschisă atât pentru lectură cât şi
scriere pe descriptor de fișier n, sau pe descriptorul de fișier 0 dacă n nu este specificat. Dacă dosarul
nu există, este creat.

ALIASSE


Pseudonime permite înlocuirea unui șir cu un cuvânt atunci când este folosit ca prim cuvânt al unui
comandă simplă. Shell-ul menține o listă de aliasuri care pot fi setate și dezactivate cu
alias și Unalias comenzi încorporate (vezi COAJĂ INCORPORAT COMANDE de mai jos). Primul cuvânt al
fiecare comandă simplă, dacă nu este citată, este verificată pentru a vedea dacă are un alias. Dacă da, acel cuvânt
este înlocuit cu textul aliasului. Personajele /, $, `, și = și orice din coajă
metacaracterele sau citarea caracterelor enumerate mai sus este posibil să nu apară într-un nume de alias. The
textul de înlocuire poate conține orice intrare validă în shell, inclusiv metacaractere shell. The
primul cuvânt al textului de înlocuire este testat pentru aliasuri, dar un cuvânt care este identic cu
un alias în curs de extindere nu este extins a doua oară. Aceasta înseamnă că cineva poate alias ls
la ls -F, de exemplu, și pocni nu încearcă să extindă recursiv textul de înlocuire.
Dacă ultimul caracter al valorii aliasului este a necompletat, apoi următorul cuvânt de comandă
aliasul este de asemenea verificat pentru extinderea aliasului.

Aliasurile sunt create și listate cu alias comanda și eliminată cu Unalias
comanda.

Nu există niciun mecanism de utilizare a argumentelor în textul de înlocuire. Dacă argumentele sunt
necesar, ar trebui utilizată o funcție shell (vezi FUNCȚII de mai jos).

Aliasurile nu sunt extinse atunci când shell-ul nu este interactiv, cu excepția cazului în care expand_aliases
opțiunea shell este setată folosind magazin (vezi descrierea lui magazin în COAJĂ INCORPORAT COMANDE
de mai jos).

Regulile privind definirea și utilizarea pseudonimelor sunt oarecum confuze. Bash
citește întotdeauna cel puțin o linie completă de intrare înainte de a executa oricare dintre comenzi
acea linie. Aliasurile sunt extinse atunci când o comandă este citită, nu atunci când este executată.
Prin urmare, o definiție de alias care apare pe aceeași linie cu o altă comandă nu acceptă
efect până când este citită următoarea linie de intrare. Comenzile care urmează definiția aliasului
pe acea linie nu sunt afectate de noul alias. Acest comportament este, de asemenea, o problemă când
funcțiile sunt executate. Aliasurile sunt extinse atunci când o definiție de funcție este citită, nu când
funcția este executată, deoarece o definiție de funcție este ea însăși o comandă compusă. La fel de
în consecință, aliasurile definite într-o funcție nu sunt disponibile decât după acea funcție
este executat. Pentru a fi în siguranță, puneți întotdeauna definițiile de alias pe o linie separată și nu folosiți
alias în comenzi compuse.

Pentru aproape toate scopurile, aliasurile sunt înlocuite de funcțiile shell.

FUNCȚII


O funcție shell, definită așa cum este descris mai sus mai jos COAJĂ GRAMATICĂ, stochează o serie de
comenzi pentru executare ulterioară. Când numele unei funcții shell este folosit ca simplu
nume de comandă, este executată lista de comenzi asociate cu acel nume de funcție.
Funcțiile sunt executate în contextul shell-ului curent; nu este creat niciun proces nou pentru
interpretați-le (contrastați cu execuția unui script shell). Când o funcție este
executată, argumentele funcției devin parametri de poziție în timpul acesteia
execuţie. Parametrul special # este actualizat pentru a reflecta schimbarea. Parametru special 0
este neschimbat. Primul element al FUNCNAME variabila este setată la numele
funcția în timp ce funcția este în execuție.

Toate celelalte aspecte ale mediului de execuție shell sunt identice între o funcție și
apelantul său cu aceste excepții: the REMEDIERE și A REVENI capcane (vezi descrierea
capcană încorporat sub COAJĂ INCORPORAT COMANDE de mai jos) nu sunt moștenite decât dacă funcția are
a fost dat urmări atribut (vezi descrierea declara încorporat mai jos) sau
-o functrace Opțiunea shell a fost activată cu set încorporat (caz în care toate
funcțiile moștenesc REMEDIERE și A REVENI capcane), iar ERR capcana nu se mosteneste decat daca
il -o errtrace Opțiunea shell a fost activată.

Variabilele locale ale funcției pot fi declarate cu local comandă încorporată.
De obicei, variabilele și valorile lor sunt împărțite între funcție și apelantul acesteia.

FUNCNEST variabilă, dacă este setată la o valoare numerică mai mare de 0, definește un maxim
nivelul de imbricare a funcției. Invocarile de functii care depasesc limita cauzeaza intregul
comanda de anulare.

Dacă comanda încorporată reveni se execută într-o funcție, funcția se completează și
execuția se reia cu următoarea comandă după apelul funcției. Orice comandă asociată
cu A REVENI capcana este executată înainte ca execuția să se reia. Când o funcție se completează,
valorile parametrilor de pozitie si ale parametrului special # sunt readuse la valori
aveau anterior executării funcţiei.

Numele și definițiile funcțiilor pot fi listate cu -f opțiune la declara or tipărit
comenzi încorporate. The -F opțiunea pentru declara or tipărit va lista numai numele funcțiilor
(și opțional fișierul sursă și numărul liniei, dacă extdebug opțiunea shell este activată).
Funcțiile pot fi exportate astfel încât subshell-urile să le aibă automat definite cu -f
opțiune la exporturile incorporat. O definiție a funcției poate fi ștearsă folosind -f opțiunea pentru
il dezactivat incorporat. Rețineți că pot rezulta funcții shell și variabile cu același nume
în mai multe intrări cu nume identic din mediu transmise copiilor cochiliei.
Trebuie avut grijă în cazurile în care acest lucru poate cauza o problemă.

Funcțiile pot fi recursive. The FUNCNEST variabila poate fi folosită pentru a limita adâncimea
stiva de apeluri de funcții și restricționați numărul de invocări de funcții. În mod implicit, fără limită
se impune asupra numărului de apeluri recursive.

ARITMETIC EVALUARE


Shell permite evaluarea expresiilor aritmetice, în anumite circumstanțe (vezi
il lăsa și declara comenzi încorporate și Aritmetică Expansiune). Evaluarea se face în
numere întregi cu lățime fixă ​​fără verificare pentru depășire, deși împărțirea cu 0 este blocată și
marcat ca o eroare. Operatorii și precedența, asociativitatea și valorile lor sunt
la fel ca în limbajul C. Următoarea listă de operatori este grupată pe niveluri de
operatori cu prioritate egală. Nivelurile sunt enumerate în ordinea descrescătoare a priorității.

id++ id--
post-increment și post-decrement variabil
++id --id
pre-increment și pre-decrement variabil
- + minus și plus unari
! ~ negație logică și pe biți
** exponentiare
* / % înmulțire, împărțire, rest
+ - adunare, scădere
<< >> deplasări pe biți la stânga și la dreapta
<= >= < >
comparație
== != egalitatea și inegalitatea
& ȘI pe biți
^ SAU exclusiv pe biți
| biți SAU
&& logic ȘI
|| SAU logic
expres?expres:expres
operator condițional
= *= /= %= += -= << = >> = &= ^= |=
cesiune
expr1 , expr2
virgulă

Variabilele Shell sunt permise ca operanzi; extinderea parametrilor se realizează înainte de
expresia este evaluată. În cadrul unei expresii, variabilele shell pot fi, de asemenea, referite prin
nume fără a utiliza sintaxa de extindere a parametrilor. O variabilă shell care este nulă sau nesetată
evaluează la 0 când este referit după nume fără a utiliza sintaxa de extindere a parametrilor. The
valoarea unei variabile este evaluată ca o expresie aritmetică atunci când este referită sau
când o variabilă căreia i s-a dat întreg folosind atributul declara -i i se atribuie a
valoare. O valoare nulă este evaluată la 0. O variabilă shell nu trebuie să aibă ea întreg atribut
activat pentru a fi folosit într-o expresie.

Constantele cu 0 inițial sunt interpretate ca numere octale. Un 0x sau 0X înainte denotă
hexazecimal. În caz contrar, numerele iau forma [baza#]n, unde opțional de bază este
număr zecimal între 2 și 64 reprezentând baza aritmetică și n este un număr în
acea bază. Dacă baza# este omisă, apoi se utilizează baza 10. La specificare n, cifrele
mai mare decât 9 sunt reprezentate de litere mici, litere mari, @ și _,
în acea ordine. Dacă de bază este mai mic sau egal cu 36, literele mici și mari pot
poate fi folosită interschimbabil pentru a reprezenta numere între 10 și 35.

Operatorii sunt evaluați în ordinea de prioritate. Subexpresiile din paranteze sunt
evaluat mai întâi și poate depăși regulile de precedență de mai sus.

CONDIŢIONAL EXPRESII


Expresiile condiționale sunt folosite de către [[ comandă compusă și test și [ builtin
comenzi pentru a testa atributele fișierelor și pentru a efectua comparații de șiruri și aritmetice.
Expresiile sunt formate din următoarele primare unare sau binare. Dacă există fişier argument
la unul din primare este de forma /dev/fd/n, apoi descriptor de fișier n este bifat. Dacă
il fişier argument la unul dintre primari este unul dintre /dev/stdin, /dev/stdout, Sau
/dev/stderr, descriptorul de fișier 0, 1 sau, respectiv, 2 este bifat.

Dacă nu se specifică altfel, principalele care operează pe fișiere urmează legături simbolice și
operează pe ținta link-ului, mai degrabă decât link-ul în sine.

Când este utilizat cu [[, < și > operatorii sortează lexicografic folosind localitatea curentă.
test comenzile sortează folosind ordinea ASCII.

-a fişier
Adevărat dacă fişier există.
-b fişier
Adevărat dacă fişier există și este un fișier special bloc.
-c fişier
Adevărat dacă fişier există și este un fișier cu caractere speciale.
-d fişier
Adevărat dacă fişier există și este un director.
-e fişier
Adevărat dacă fişier există.
-f fişier
Adevărat dacă fişier există și este un fișier obișnuit.
-g fişier
Adevărat dacă fişier există și este set-group-id.
-h fişier
Adevărat dacă fişier există și este o legătură simbolică.
-k fişier
Adevărat dacă fişier există și bitul său „lipicios” este setat.
-p fişier
Adevărat dacă fişier există și este o conductă numită (FIFO).
-r fişier
Adevărat dacă fişier există și este ușor de citit.
-s fişier
Adevărat dacă fişier există și are o dimensiune mai mare decât zero.
-t fd Adevărat dacă descriptor de fișier fd este deschis și se referă la un terminal.
-u fişier
Adevărat dacă fişier există și bitul său set-user-id este setat.
-w fişier
Adevărat dacă fişier există și poate fi scris.
-x fişier
Adevărat dacă fişier există și este executabil.
-G fişier
Adevărat dacă fişier există și este deținut de id-ul efectiv al grupului.
-L fişier
Adevărat dacă fişier există și este o legătură simbolică.
-N fişier
Adevărat dacă fişier există și a fost modificat de la ultima citire.
-O fişier
Adevărat dacă fişier există și este deținut de id-ul de utilizator efectiv.
-S fişier
Adevărat dacă fişier există și este o priză.
file1 -dacă file2
Adevărat dacă file1 și file2 se referă la același dispozitiv și numere de inod.
file1 -nt file2
Adevărat dacă file1 este mai nou (conform datei modificării) decât file2, sau daca file1
există și file2 nu.
file1 -ot file2
Adevărat dacă file1 este mai vechi decât file2, sau daca file2 există și file1 nu.
-o optname
Adevărat dacă opțiunea shell optname este activat. Consultați lista de opțiuni de sub
descrierea -o opțiune la set încorporat mai jos.
-v varname
Adevărat dacă variabila shell varname este setat (a fost atribuită o valoare).
-R varname
Adevărat dacă variabila shell varname este setat și este o referință de nume.
-z şir
Adevărat dacă lungimea de şir este zero.
şir
-n şir
Adevărat dacă lungimea de şir este diferit de zero.

string1 == string2
string1 = string2
Adevărat dacă șirurile sunt egale. = ar trebui folosit cu test comandă pentru POSIX
conformarea. Când este folosit cu [[ comanda, aceasta efectuează potrivirea modelului ca
descris mai sus (Compus Comenzi).

string1 != string2
Adevărat dacă șirurile nu sunt egale.

string1 < string2
Adevărat dacă string1 sortează înainte string2 lexicografic.

string1 > string2
Adevărat dacă string1 sortează după string2 lexicografic.

arg1 OP arg2
OP este unul dintre -echivalentul, - este, -lt, -la, -gt, Sau -GE. Acești operatori binari aritmetici
returnează adevărat dacă arg1 este egal cu, nu este egal cu, mai mic decât, mai mic sau egal cu,
mai mare decât, sau mai mare decât sau egal cu arg2, respectiv. arg1 și arg2 poate fi
numere întregi pozitive sau negative.

SIMPLU COMMAND EXPANSIUNE


Când se execută o comandă simplă, shell-ul efectuează următoarele expansiuni,
misiuni și redirecționări, de la stânga la dreapta.

1. Cuvintele pe care analizatorul le-a marcat ca atribuiri variabile (cele care preced
numele comenzii) și redirecționările sunt salvate pentru procesare ulterioară.

2. Cuvintele care nu sunt atribuiri sau redirecționări variabile sunt extinse. Dacă există
cuvintele rămân după extindere, primul cuvânt este considerat numele comenzii
iar cuvintele rămase sunt argumentele.

3. Redirecționările sunt efectuate așa cum este descris mai sus REDIRECȚIE.

4. Textul de după = în fiecare atribuire variabilă suferă o expansiune tilde,
extinderea parametrilor, înlocuirea comenzilor, extinderea aritmetică și eliminarea citatelor
înainte de a fi atribuite variabilei.

Dacă nu rezultă un nume de comandă, atribuirile variabilelor afectează mediul shell curent.
În caz contrar, variabilele sunt adăugate în mediul comenzii executate și nu
afectează mediul shell actual. Dacă oricare dintre sarcini încearcă să atribuie a
valoare la o variabilă numai în citire, apare o eroare, iar comanda iese cu o valoare diferită de zero
stare.

Dacă nu rezultă un nume de comandă, redirecționările sunt efectuate, dar nu afectează curentul
mediu shell. O eroare de redirecționare face ca comanda să iasă cu o stare diferită de zero.

Dacă după extindere a rămas un nume de comandă, execuția continuă așa cum este descris mai jos.
În caz contrar, comanda iese. Dacă una dintre expansiuni conținea o înlocuire de comandă,
starea de ieșire a comenzii este starea de ieșire a ultimei înlocuiri de comandă
efectuat. Dacă nu au existat substituții de comandă, comanda se iese cu starea
zero.

COMMAND EXECUŢIE


După ce o comandă a fost împărțită în cuvinte, dacă rezultă o comandă simplă și un
listă opțională de argumente, sunt întreprinse următoarele acțiuni.

Dacă numele comenzii nu conține bare oblice, shell-ul încearcă să o localizeze. Dacă există
o funcție shell cu acest nume, acea funcție este invocată așa cum este descris mai sus în FUNCȚII.
Dacă numele nu se potrivește cu o funcție, shell-ul îl caută în lista de shell
încorporate. Dacă se găsește o potrivire, este invocată acea încorporare.

Dacă numele nu este nici o funcție shell, nici o funcție încorporată și nu conține bare oblice, pocni
caută fiecare element al PATH pentru un director care conține un fișier executabil prin aceea
nume. Bash folosește un tabel hash pentru a reține căile complete ale fișierelor executabile (vezi hașiș
în COAJĂ INCORPORAT COMANDE de mai jos). O căutare completă a directoarelor în PATH is
efectuat numai dacă comanda nu este găsită în tabelul hash. Dacă căutarea este
fără succes, shell-ul caută o funcție shell definită numită
mâner_comandă_nu_găsită. Dacă această funcție există, este invocată cu originalul
comanda și argumentele comenzii originale ca argumente și ieșirea funcției
statusul devine statutul de ieșire al shell-ului. Dacă acea funcție nu este definită, shell-ul
tipărește un mesaj de eroare și returnează o stare de ieșire de 127.

Dacă căutarea are succes sau dacă numele comenzii conține una sau mai multe bare oblice,
shell execută programul numit într-un mediu de execuție separat. Argumentul 0 este setat
la numele dat, iar argumentele rămase la comandă sunt setate la argumente
dat, dacă este cazul.

Dacă această execuție eșuează deoarece fișierul nu este în format executabil și fișierul nu este
un director, se presupune că este a coajă scenariu, un fișier care conține comenzi shell. A
subshell este generat pentru a-l executa. Acest subshell se reinițializează singur, astfel încât efectul
este ca și cum ar fi fost invocat un nou shell pentru a gestiona scriptul, cu excepția că
locațiile comenzilor memorate de părinte (vezi hașiș dedesubt COAJĂ INCORPORAT
COMANDE) sunt reținute de copil.

Dacă programul este un fișier care începe cu #!, restul primei linii specifică an
interpret pentru program. Shell-ul execută interpretul specificat la operare
sisteme care nu gestionează ele însele acest format executabil. Argumentele la
interpreterul constă dintr-un singur argument opțional după numele interpretului de pe
prima linie a programului, urmată de numele programului, urmată de comandă
argumente, dacă există.

COMMAND EXECUŢIE MEDIUL


Cochilia are o execuție mediu inconjurator, care constă din următoarele:

· deschideți fișierele moștenite de shell la invocare, așa cum sunt modificate prin redirecționări
furnizat către Exec builtin

· directorul de lucru curent stabilit de cd, pushd, Sau popd, sau moștenit de către
coajă la invocare

· masca modului de creare a fișierelor, așa cum este setată de masca sau moștenit de la părintele shell-ului

· capcane curente puse de capcană

· parametrii shell care sunt setabili prin alocare variabilă sau cu set sau moștenit de la
părintele cochiliei în mediu

· funcții shell definite în timpul execuției sau moștenite de la părintele shell-ului în
mediul

· opțiuni activate la invocare (fie implicit, fie cu argumente de linie de comandă) sau
by set

· opțiuni activate de magazin

· aliasuri shell definite cu alias

· diverse ID-uri de proces, inclusiv cele ale joburilor de fundal, valoarea lui $$, Şi
Valoarea PPID

Când urmează să fie executată o comandă simplă, alta decât o funcție încorporată sau shell, este
invocat într-un mediu de execuție separat care constă în următoarele. Dacă nu
altfel notat, valorile sunt moștenite din shell.

· fișierele deschise ale shell-ului, plus orice modificări și completări specificate de
redirecționări către comandă

· directorul de lucru curent

· masca modului de creare a fișierelor

· variabile shell și funcții marcate pentru export, împreună cu variabilele exportate pentru
comanda, transmisă în mediu

· capcanele prinse de shell sunt resetate la valorile moștenite de la shell
părinte, iar capcanele ignorate de shell sunt ignorate

O comandă invocată în acest mediu separat nu poate afecta execuția shell-ului
mediu. (envrironment)

Înlocuirea comenzilor, comenzile grupate cu paranteze și comenzile asincrone sunt
invocat într-un mediu subshell care este un duplicat al mediului shell, cu excepția
că capcanele prinse de shell sunt resetate la valorile pe care shell-ul le-a moștenit de la acesta
părinte la invocare. Comenzile încorporate care sunt invocate ca parte a unei conducte sunt de asemenea
executat într-un mediu subshell. Modificările aduse mediului subshell nu pot
afectează mediul de execuție al shell-ului.

Subshell-urile generate pentru a executa substituții de comandă moștenesc valoarea lui -e opțiune din
învelișul părinte. Când nu în POSIX mod, pocni curăță -e opțiune în astfel de subshell-uri.

Dacă o comandă este urmată de a & iar controlul jobului nu este activ, intrarea standard implicită
deoarece comanda este fișierul gol / Dev / null. În caz contrar, comanda invocată moștenește
descriptori de fișier ai shell-ului apelant, așa cum sunt modificați de redirecționări.

MEDIUL


Când un program este invocat, i se oferă o matrice de șiruri de caractere numită mediu inconjurator. Acest lucru este
o lista de nume-valoare perechi, de forma nume=valoare.

Carcasa oferă mai multe moduri de a manipula mediul. La invocare, coaja
scanează propriul mediu și creează un parametru pentru fiecare nume găsit, automat
marcandu-l pentru exporturile la procesele copil. Comenzile executate moștenesc mediul. The
exporturile și declara -x comenzile permit adăugarea și ștergerea unor parametri și funcții
din mediu. Dacă valoarea unui parametru din mediu este modificată, noul
valoarea devine parte a mediului, înlocuind vechiul. Mediul moștenit de
orice comandă executată constă din mediul inițial al shell-ului, ale cărui valori pot fi
modificat în shell, mai puțin perechile eliminate de dezactivat comandă, plus orice completări prin
il exporturile și declara -x comenzi.

Mediul pentru orice simplu comandă sau funcția poate fi mărită temporar de
prefixându-l cu atribuiri de parametri, așa cum este descris mai sus în PARAMETRI. Acestea
instrucțiunile de atribuire afectează numai mediul văzut de acea comandă.

În cazul în care -k opțiunea este setată (vezi set comanda încorporată de mai jos), apoi toate parametru
sarcinile sunt plasate în mediul pentru o comandă, nu doar cele care preced
numele comenzii.

Cand pocni invocă o comandă externă, variabila _ este setat la numele complet al fișierului
comanda și a trecut la acea comandă în mediul său.

EXIT STAREA


Starea de ieșire a unei comenzi executate este valoarea returnată de waitpid apel de sistem sau
funcţie echivalentă. Stările de ieșire se încadrează între 0 și 255, deși, așa cum se explică mai jos,
shell-ul poate folosi în special valori de peste 125. Ieșiți stările din shell-urile interne și
comenzile compuse sunt, de asemenea, limitate la acest interval. În anumite circumstanțe, coaja
va folosi valori speciale pentru a indica anumite moduri de eroare.

Pentru scopurile shell-ului, o comandă care iese cu starea de ieșire zero a reușit. Un
starea de ieșire de zero indică succesul. O stare de ieșire diferită de zero indică un eșec. Când un
comanda se încheie la un semnal fatal N, pocni folosește valoarea 128+N ca stare de ieșire.

Dacă o comandă nu este găsită, procesul copil creat pentru a o executa returnează o stare de
127. Dacă o comandă este găsită, dar nu este executabilă, starea de returnare este 126.

Dacă o comandă eșuează din cauza unei erori în timpul expansiunii sau redirecționării, starea de ieșire este
mai mare decât zero.

Comenzile încorporate Shell returnează starea 0 (adevărat) dacă are succes și diferit de zero (fals) dacă
apare o eroare în timp ce se execută. Toate componentele încorporate returnează o stare de ieșire de 2 pentru a indica
utilizare incorectă.

Bash însuși returnează starea de ieșire a ultimei comenzi executate, cu excepția cazului în care o eroare de sintaxă
apare, caz în care iese cu o valoare diferită de zero. Vezi și ieşire comandă încorporată
de mai jos.

SEMNALE


Cand pocni este interactiv, în absența oricăror capcane, ignoră TERMEN ȚINTĂ (astfel încât ucide 0
nu ucide un shell interactiv) și SIGINT este prins și manipulat (astfel încât aștepta
încorporat este întreruptibil). În toate cazurile, pocni ignorările SIGQUIT. Dacă este activat controlul locului de muncă
efect, pocni ignorările SIGTTIN, SIGTTOU, și SIGTSTP.

Comenzi neîncorporate rulate de pocni au manevrele de semnal setate la valorile moștenite de
coajă de la părintele său. Când controlul jobului nu este în vigoare, comenzile asincrone ignoră
SIGINT și SIGQUIT pe lângă acești handler moșteniți. Comenzile rulează ca urmare a
înlocuirea comenzii ignoră semnalele de control a sarcinii generate de tastatură SIGTTIN, SIGTTOU,
și SIGTSTP.

Shell-ul iese implicit la primirea unui LUMEA. Înainte de a ieși, un shell interactiv
retrimite LUMEA la toate locurile de muncă, rulând sau oprit. Lucrările oprite sunt trimise NEXTCONT la
asigurați-vă că primesc LUMEA. Pentru a preveni shell-ul să trimită semnalul către a
un anumit loc de muncă, ar trebui eliminat din tabelul de locuri de muncă cu dezmoșteni încorporat (vezi
COAJĂ INCORPORAT COMANDE de mai jos) sau marcat pentru a nu primi LUMEA folosind dezmoșteni -h.

În cazul în care huponexit Opțiunea shell a fost setată cu magazin, pocni trimite un LUMEA la toate locurile de muncă
când un shell interactiv de conectare iese.

If pocni așteaptă finalizarea unei comenzi și primește un semnal pentru care are o capcană
fost setat, capcana nu va fi executată până la finalizarea comenzii. Când pocni așteaptă
pentru o comandă asincronă prin intermediul aștepta încorporat, recepția unui semnal pentru care a
capcana a fost pusă va provoca aștepta încorporat pentru a reveni imediat cu o stare de ieșire
mai mare de 128, imediat după care se execută capcana.

JOB CONTROL


Loc de munca Control se referă la capacitatea de a opri selectiv (suspenda) executarea proceselor
si continua (relua) executarea lor la un moment ulterior. De obicei, un utilizator folosește acest lucru
facilitate printr-o interfață interactivă furnizată în comun de nucleul sistemului de operare
driverul terminalului și pocni.

Cochilia asociază a muncă cu fiecare conductă. Păstrează un tabel de execuție curentă
locuri de muncă, care pot fi listate cu de locuri de muncă comanda. Cand pocni începe o lucrare asincron
(în fundal), imprimă o linie care arată astfel:

[1] 25647

indicând faptul că acest job este jobul numărul 1 și că ID-ul procesului ultimului proces în
conducta asociată cu acest job este 25647. Toate procesele într-o singură conductă
sunt membri ai aceluiași loc de muncă. Bash folosește muncă abstractizarea ca bază pentru controlul locului de muncă.

Pentru a facilita punerea în aplicare a interfeței cu utilizatorul pentru controlul locurilor de muncă, operarea
sistem menține noțiunea de a curent terminal proces grup ID. Membrii acestui
grup de procese (procese al căror ID grup de procese este egal cu procesul terminal curent
ID de grup) primesc semnale generate de tastatură, cum ar fi SIGINT. Se spune că aceste procese
fi în prim plan. Context procesele sunt acelea ale căror ID grup de procese diferă
terminalului; astfel de procese sunt imune la semnalele generate de tastatură. Doar prim-plan
proceselor li se permite să citească din sau, dacă utilizatorul specifică acest lucru cu stty tostop, să scrie la
terminalul. Procese de fundal care încearcă să citească din (scrieți la când stty pentru a opri
este în vigoare) terminalele sunt trimise a SIGTTIN (SIGTTOU) semnal de la terminalul nucleului
conducător auto, care, dacă nu este prins, suspendă procesul.

Dacă sistemul de operare pe care pocni rulează acceptă controlul locurilor de muncă, pocni conține
facilitati pentru a-l folosi. Tastând suspenda caracter (de obicei ^Z, Control-Z) în timp ce a
procesul rulează face ca acel proces să fie oprit și îi revine controlul pocni. Tastare
il întârziat suspenda caracter (de obicei ^Y, Control-Y) determină oprirea procesului
când încearcă să citească intrarea de la terminal și controlul la care urmează să fie returnat pocni.
utilizatorul poate manipula apoi starea acestui job, folosind bg comanda pentru a o continua în
fundal, cel fg comanda pentru a o continua în prim-plan sau ucide poruncă de a ucide
aceasta. A ^Z are efect imediat și are efectul secundar suplimentar de a provoca în așteptare
ieșire și tipărire înainte să fie eliminate.

Există mai multe moduri de a face referire la un job în shell. Caracterul % introduce un
cerințele jobului (spec). Numărul postului n poate fi denumit %n. Un loc de muncă poate fi, de asemenea
la care se face referire folosind un prefix al numelui folosit pentru a-l porni sau folosind un subșir care apare
în linia sa de comandă. De exemplu, %ce se referă la un oprit ce loc de munca. Dacă un prefix se potrivește
mai mult de un loc de muncă, pocni raportează o eroare. Folosind %?ce, pe de altă parte, se referă la orice
job care conține șirul ce în linia sa de comandă. Dacă subșirul se potrivește cu mai mult de unul
loc de munca, pocni raportează o eroare. Simbolurile %% și %+ referiți-vă la noțiunea cochiliei de
curent muncă, care este ultima lucrare oprită în timp ce era în prim-plan sau începută în
fundalul. The precedent muncă poate fi referit folosind %-. Dacă există doar un singur
loc de munca, %+ și %- pot fi folosite ambele pentru a se referi la acel loc de muncă. În rezultatele legate de locuri de muncă (de exemplu,
ieșirea lui de locuri de muncă comanda), jobul curent este întotdeauna marcat cu a +, Şi
job anterior cu a -. Un singur % (fără specificații de post însoțitoare) se referă și la
jobul actual.

Simpla denumire a unui job poate fi folosită pentru a o aduce în prim-plan: %1 este un sinonim pentru ``fg
%1'', aducând jobul 1 din fundal în prim plan. În mod similar, ``%1 &'' CV-uri
job 1 pe fundal, echivalent cu `` bg %1''.

Shell învață imediat ori de câte ori un loc de muncă își schimbă starea. În mod normal, pocni asteapta pana asta
este pe cale să imprime o solicitare înainte de a raporta modificări în starea unei lucrări pentru a nu face acest lucru
întrerupe orice altă ieșire. Dacă -b opțiune la set comanda încorporată este activată, pocni
raportează imediat astfel de modificări. Orice capcană SIGCHLD se execută pentru fiecare copil care
iesirile.

Dacă o încercare de ieșire pocni se face în timp ce lucrările sunt oprite (sau, dacă joburi de verificare coajă
opțiunea a fost activată folosind magazin builtin, rulare), shell-ul afișează un avertisment
mesaj și, dacă joburi de verificare opțiunea este activată, listează joburile și stările acestora. The
de locuri de muncă comanda poate fi apoi utilizată pentru a le inspecta starea. Dacă o a doua încercare de ieșire este
făcut fără o comandă intervenită, shell-ul nu afișează un alt avertisment și nici unul
locurile de muncă oprite sunt reziliate.

FAPT CARE I-A DETERMINAT


Când executați interactiv, pocni afișează promptul principal PS1 când este gata
citește o comandă și promptul secundar PS2 când are nevoie de mai multă intrare pentru a finaliza a
comanda. Bash permite ca aceste șiruri prompte să fie personalizate prin inserarea unui număr de
caractere speciale care au evadat bară oblică inversă care sunt decodificate după cum urmează:
\a un caracter ASCII clopoțel (07)
\d data în format „Ziua săptămânii, lună, dată” (de exemplu, „marți, 26 mai”)
\D{format}
il format este trecut la strftime(3) iar rezultatul este introdus în
șir prompt; un gol format rezultă într-un timp specific local
reprezentare. Bretele sunt necesare
\e un caracter de escape ASCII (033)
\h numele gazdei până la primul `.'
\H numele gazdei
\j numărul de locuri de muncă gestionate în prezent de shell
\l numele de bază al numelui dispozitivului terminal al shell-ului
\n linie nouă
\r retur transport
\s numele cochiliei, numele de bază al $0 (portiunea care urmeaza finalei
bară oblică)
\t ora curentă în format de 24 de ore HH:MM:SS
\T ora curentă în format de 12 de ore HH:MM:SS
\@ ora curentă în format de 12 ore am/pm
\A ora curentă în format HH:MM de 24 de ore
\u numele de utilizator al utilizatorului curent
\v versiunea de pocni (de exemplu, 2.00)
\V eliberarea de pocni, versiune + nivel de corecție (de exemplu, 2.00.0)
\w directorul de lucru curent, cu $ ACASĂ prescurtat cu o tildă (folosește
valoarea PROMPT_DIRTRIM variabil)
\W numele de bază al directorului de lucru curent, cu $ ACASĂ prescurtat cu a
tildă
\! numărul istoric al acestei comenzi
\# numărul de comandă al acestei comenzi
\$ dacă UID-ul efectiv este 0, a #, altfel a $
\NNN caracterul corespunzător numărului octal NNN
\\ o bară oblică inversă
\[ începe o secvență de caractere care nu se imprimă, care ar putea fi folosite pentru a încorpora a
secvența de control al terminalului în prompt
\] încheie o secvență de caractere care nu se imprimă

Numărul comenzii și numărul istoric sunt de obicei diferite: numărul istoric al a
comanda este poziția sa în lista istorică, care poate include comenzi restaurate din
fișier istoric (vezi ISTORIE de mai jos), în timp ce numărul comenzii este poziția din secvență
de comenzi executate în timpul sesiunii curente de shell. După ce șirul este decodat, este
extins prin extinderea parametrilor, înlocuirea comenzilor, extinderea aritmetică și citatul
îndepărtare, sub rezerva valorii promptvars opțiunea shell (consultați descrierea
magazin comanda sub COAJĂ INCORPORAT COMANDE de mai jos).

CITESTE LINIA


Aceasta este biblioteca care se ocupă de citirea intrării atunci când se utilizează un shell interactiv, cu excepția cazului în care
--noeditare opțiunea este dată la invocarea shell-ului. Editarea liniilor este, de asemenea, utilizată atunci când se utilizează
-e opțiune la citit incorporat. În mod implicit, comenzile de editare a liniilor sunt similare cu cele
a lui Emacs. Este disponibilă și o interfață de editare a liniilor în stil vi. Editarea liniilor poate fi
activat în orice moment folosind -o emacs or -o vi opțiuni la set încorporat (vezi COAJĂ
INCORPORAT COMANDE de mai jos). Pentru a dezactiva editarea liniei după ce shell-ul rulează, utilizați +o
emacs or +o vi opțiuni la set incorporat.

Citeste linia Notaţie
În această secțiune, notația în stilul Emacs este folosită pentru a indica apăsările de taste. Tastele de control sunt
notat cu C-cheie, de exemplu, Cn înseamnă Control-N. În mod similar, meta cheile sunt notate cu M-cheie,
deci Mx înseamnă Meta-X. (Pe tastaturi fără a meta cheie, M-x înseamnă ESC x, adică apăsați tasta
Tasta Escape apoi tasta x cheie. Acest lucru face ca ESC să fie meta prefix. Combinația MC-x mijloace
ESC-Control-x, sau apăsați tasta Escape, apoi țineți apăsată tasta Control în timp ce apăsați tasta x
cheie.)

Comenzile Readline pot fi date numerice argumente, care acționează în mod normal ca o contorizare repetată.
Uneori, însă, semnul argumentului este semnificativ. Trecând pe lângă a
argument negativ la o comandă care acționează în direcția înainte (de exemplu, linia uciderii) cauze
acea comandă să acţioneze într-o direcţie înapoi. Comenzi al căror comportament cu argumente
abaterile de la aceasta sunt notate mai jos.

Când o comandă este descrisă ca ucidere text, textul șters este salvat pentru un posibil viitor
recuperare (smulgere). Textul ucis este salvat într-un ucide inel. Ucide consecutiv cauza
textul să fie acumulat într-o singură unitate, care poate fi smulsă dintr-o dată. Comenzi care
nu ucideți textul separați bucățile de text de pe inelul de ucidere.

Citeste linia Inițializarea
Readline este personalizat prin introducerea comenzilor într-un fișier de inițializare ( inputrc fişier).
Numele acestui fișier este luat din valoarea lui INPUTRC variabil. Dacă acea variabilă
este nesetat, valoarea implicită este ~ / .inputrc. Când un program care utilizează biblioteca readline
pornește, fișierul de inițializare este citit și legăturile de taste și variabilele sunt setate.
Există doar câteva constructe de bază permise în fișierul de inițializare readline. Gol
liniile sunt ignorate. Rândurile care încep cu a # sunt comentarii. Rândurile care încep cu a $
indica constructe condiționale. Alte linii indică legături de taste și setări variabile.

Legăturile implicite de taste pot fi modificate cu un inputrc fişier. Alte programe care folosesc
această bibliotecă poate adăuga propriile comenzi și legături.

De exemplu, plasarea

M-Control-u: universal-argument
or
C-Meta-u: universal-argument
în inputrc ar face MCu să execute comanda readline universal-argument.

Sunt recunoscute următoarele nume de caractere simbolice: RUBOUT, DEL, ESC, Extensie LFD, LINIE NOUĂ,
RET, A REVENI, SPC, SPACE, și TAB.

Pe lângă numele comenzilor, readline permite cheilor să fie legate la un șir care este
introdus atunci când tasta este apăsată (a macro).

Citeste linia Cheie Bindings
Sintaxa pentru controlul legăturilor de taste în inputrc fisierul este simplu. Tot ce este
necesar este numele comenzii sau textul unei macrocomenzi și o secvență de taste la care aceasta
ar trebui să fie legat. Numele poate fi specificat într-unul din două moduri: ca nume de cheie simbolică,
eventual cu meta- or Control- prefixe sau ca o secvență de taste.

Când utilizați formularul nume cheie:nume-funcție or macro, nume cheie este numele unei chei scrise
afară în engleză. De exemplu:

Control-u: universal-argument
Meta-Rubout: cuvânt-ucide-înapoi
Control-o: „> ieșire”

În exemplul de mai sus, Cu este legat de funcție universal-argument, M-DEL este legat de
Funcția înapoi-ucide-cuvânt, și Co este obligat să ruleze macro-ul exprimat în dreapta
partea de mână (adică pentru a insera textul ``> output'' în linie).

În a doua formă, "keyseq":nume-funcție or macro, keyseq difera de nume cheie mai sus in
că șirurile care denotă o întreagă secvență de taste pot fi specificate prin plasarea secvenței
între ghilimele duble. Unele escape de taste în stil GNU Emacs pot fi utilizate, ca în cele ce urmează
exemplu, dar numele caracterelor simbolice nu sunt recunoscute.

„\Cu”: universal-argument
„\Cx\Cr”: re-read-init-file
"\e[11~": "Tasta funcțională 1"

În acest exemplu, Cu este din nou legat de funcție universal-argument. Cx Cr este legat
la functie recitiți fișierul-inițial, și ESC [ 1 1 ~ este obligat să insereze textul ``Function
Cheia 1''.

Setul complet de secvențe de evadare în stil GNU Emacs este
\C- prefix de control
\M- meta prefix
\e un personaj de evadare
\\ backslash
\" literal"
\' literal'

În plus față de secvențele de evadare în stilul GNU Emacs, există un al doilea set de escape de tip backslash
disponibil:
\a alertă (clopot)
\b spate spate
\d șterge
\f furaj de formulare
\n linie nouă
\r retur transport
\t filă orizontală
\v filă verticală
\NNN caracterul de opt biți a cărui valoare este valoarea octală NNN (unu până la trei
cifre)
\xHH caracterul de opt biți a cărui valoare este valoarea hexazecimală HH (unul sau doi
cifre hexadecimale)

La introducerea textului unei macrocomenzi, trebuie folosite ghilimele simple sau duble pentru a indica a
definiție macro. Textul fără ghilimele se presupune a fi un nume de funcție. În corpul macro,
Escaperile backslash descrise mai sus sunt extinse. Backslash va cita orice alt caracter
în textul macro, inclusiv „ și „.

Bash permite afișarea sau modificarea tastelor actuale readline cu ajutorul tastelor lega
comandă încorporată. Modul de editare poate fi comutat în timpul utilizării interactive utilizând butonul -o
opțiune la set comandă încorporată (vezi COAJĂ INCORPORAT COMANDE de mai jos).

Citeste linia Variabile
Readline are variabile care pot fi folosite pentru a-și personaliza în continuare comportamentul. O variabilă poate
fi setat în inputrc dosar cu o declarație a formularului

set nume-variabilă valoare

Cu excepția cazurilor menționate, variabilele readline pot lua valorile On or de pe (fără a ține cont de
caz). Numele variabilelor nerecunoscute sunt ignorate. Când o valoare variabilă este citită, goliți sau
valorile nule, „on” (insensibil la majuscule și minuscule) și „1” sunt echivalente cu On. Toate celelalte valori sunt
echivalent cu de pe. Variabilele și valorile lor implicite sunt:

stil clopot (perceptibil)
Controlează ce se întâmplă atunci când readline dorește să sune la soneria terminalului. Dacă este setat la
nici unul, readline nu sună niciodată. Dacă este setat la vizibil, readline folosește un vizibil
clopoțel dacă unul este disponibil. Dacă este setat la perceptibil, readline încearcă să sune
soneria terminalului.
bind-tty-special-chars (Pe)
Dacă este setat la On, readline încearcă să lege caracterele de control tratate special de
driverul de terminal al nucleului la echivalentele lor readline.
statistici-colorate (Dezactivat)
Dacă este setat la On, readline afișează posibilele completări folosind culori diferite pentru
indicați tipul lor de fișier. Definițiile culorilor sunt luate din valoarea lui
LS_COLORS variabilă de mediu.
comentariu-început (``#'')
Șirul care este inserat la readline inserare-comentare comanda este executată.
Această comandă este legată de L-# în modul emacs și la # în modul de comandă vi.
completare-ignora-majuscule (Dezactivat)
Dacă este setat la On, readline realizează potrivirea și completarea numelui fișierului într-un
modă fără majuscule.
completare-prefix-afisare-lungime (0)
Lungimea în caractere a prefixului comun al unei liste de completări posibile
care este afișat fără modificare. Când este setată la o valoare mai mare decât zero,
prefixele comune mai lungi decât această valoare sunt înlocuite cu o elipsă când
afisarea posibilelor completari.
completare-interogare-articole (100)
Aceasta determină momentul în care utilizatorul este întrebat despre vizualizarea numărului posibil
completări generate de posibile-completari comanda. Poate fi setat la oricare
valoare întreagă mai mare sau egală cu zero. Dacă numărul de completări posibile
este mai mare sau egală cu valoarea acestei variabile, utilizatorul este întrebat dacă
sau nu dorește să le vadă; altfel sunt pur și simplu listate pe terminal.
convert-meta (Pe)
Dacă este setat la On, readline va converti caracterele cu al optulea bit setat la un ASCII
secvență de taste prin eliminarea celui de-al optulea bit și prefixarea unui caracter de escape (în
efect, folosind evadare ca meta prefix).
dezactivare-finalizare (Dezactivat)
Dacă este setat la On, readline va inhiba completarea cuvintelor. Caracterele de completare vor fi
inserate în linie de parcă ar fi fost mapate auto-inserție.
modul de editare (emacs)
Controlează dacă readline începe cu un set de legături de taste similare cu Emacs or vi.
modul de editare poate fi setat la oricare emacs or vi.
caractere-control-ecou (Pe)
Când este setat la On, pe sistemele de operare care indică că îl acceptă, readline ecou
un caracter corespunzător unui semnal generat de la tastatură.
activare-tastatură (Dezactivat)
Când este setat la On, readline va încerca să activeze tastatura aplicației atunci când este
numit. Unele sisteme au nevoie de acest lucru pentru a activa tastele săgeți.
activare-meta-cheie (Pe)
Când este setat la On, readline va încerca să activeze orice tastă meta modificatoare pe terminal
pretinde că sprijină atunci când este chemat. Pe multe terminale, tasta meta este folosită pentru
trimite caractere pe opt biți.
expand-tilde (Dezactivat)
Dacă este setat la On, extinderea tildei este efectuată atunci când readline încearcă să completeze cuvântul.
istorie-punct-conservare (Dezactivat)
Dacă este setat la On, codul istoric încearcă să plaseze un punct în aceeași locație pe fiecare
linie istorică recuperată cu istoria anterioară or istoria următoare.
istorie-mărime (0)
Setați numărul maxim de intrări de istoric salvate în lista de istoric. Dacă este setat la
zero, toate intrările existente ale istoricului sunt șterse și nicio intrare nouă nu este salvată. Dacă
setată la o valoare mai mică decât zero, numărul de intrări în istoric nu este limitat. De
implicit, numărul de intrări în istoric nu este limitat.
modul de defilare orizontală (Dezactivat)
Când este setat la On, face ca readline să folosească o singură linie pentru afișare, derulând intrarea
orizontal pe o singură linie a ecranului când devine mai lungă decât lățimea ecranului
mai degrabă decât înfășurarea la o nouă linie.
input-meta (Dezactivat)
Dacă este setat la On, readline va activa intrarea pe opt biți (adică nu va elimina fișierul
bit mare din caracterele pe care le citește), indiferent de ceea ce îl susține terminalul
poate sprijini. Numele meta-steag este un sinonim pentru această variabilă.
isearch-terminatori (``C-[C-J'')
Șirul de caractere care ar trebui să încheie o căutare incrementală fără
executând ulterior caracterul ca o comandă. Dacă această variabilă nu a fost
dată o valoare, caracterele ESC și CJ va termina o căutare progresivă.
harta tastelor (emacs)
Setați harta tastaturii readline curentă. Setul de nume valide pentru hărți de taste este emacs,
emacs-standard, emacs-meta, emacs-ctlx, tu, vi-comandă, și vi-inserare. vi is
echivalent cu vi-comandă; emacs este echivalent cu emacs-standard. Valoarea implicită
is emacs; valoarea a modul de editare afectează și harta tastaturii implicite.
keyseq-timeout (500)
Specifică durata Citeste linia va aștepta un personaj când citește un ambiguu
secvență de taste (una care poate forma o secvență de taste completă folosind intrarea citită astfel
departe sau poate lua o introducere suplimentară pentru a finaliza o secvență de taste mai lungă). Dacă nu există nicio intrare
este primit în timpul expirării, Citeste linia va folosi cheia mai scurtă, dar completă
secvenţă. Valoarea este specificată în milisecunde, deci o valoare de 1000 înseamnă că
Citeste linia va aștepta o secundă pentru intrare suplimentară. Dacă această variabilă este setată la a
valoare mai mică sau egală cu zero sau o valoare nenumerică, Citeste linia voi astepta
până când o altă tastă este apăsată pentru a decide ce secvență de taste să finalizeze.
marca-directoare (Pe)
Dacă este setat la On, numele directoarelor completate au o bară oblică.
marca-linii-modificate (Dezactivat)
Dacă este setat la On, liniile istorice care au fost modificate sunt afișate cu un precedent
asterisc (*).
marca-directoare-symlinked (Dezactivat)
Dacă este setat la On, numele completate care sunt legături simbolice către directoare au o bară oblică
anexat (în funcție de valoarea lui marca-directoare).
potrivire-ascunse-fișiere (Pe)
Această variabilă, când este setată la On, face ca readline să se potrivească cu fișierele ale căror nume încep
cu un `.' (fișiere ascunse) când efectuați completarea numelui fișierului. Dacă este setat la de pe,
conducând `.' trebuie să fie furnizat de utilizator în numele fișierului care urmează să fie completat.
meniu-complet-afisare-prefix (Dezactivat)
Dacă este setat la On, completarea meniului afișează prefixul comun al listei de posibile
completări (care pot fi goale) înainte de a parcurge lista.
ieșire-meta (Dezactivat)
Dacă este setat la On, readline va afișa direct caracterele cu al optulea bit setat
mai degrabă decât ca o secvență de evadare meta-prefixată.
completări de pagină (Pe)
Dacă este setat la On, readline folosește un intern mai mult-ca pager pentru a afișa un ecran plin
posibile completări la un moment dat.
print-completări-orizontal (Dezactivat)
Dacă este setat la On, readline va afișa completările cu potriviri sortate orizontal
ordine alfabetică, mai degrabă decât în ​​jos pe ecran.
întoarce-toate-la-nouă linie (Dezactivat)
Dacă este setat la On, readline va anula toate modificările la rândurile istoricului înainte de a reveni când
accept-line este executat. În mod implicit, liniile istorice pot fi modificate și păstrate
liste de anulare individuale pentru apelurile către Citeste linia.
arată-toate-dacă-ambiguu (Dezactivat)
Acest lucru modifică comportamentul implicit al funcțiilor de completare. Dacă este setat la On, cuvinte
care au mai multe posibile finalizari fac ca potrivirile să fie listate
imediat în loc să sune clopoţelul.
arată-toate-dacă-nemodificat (Dezactivat)
Acest lucru modifică comportamentul implicit al funcțiilor de completare într-un mod similar
la arată-toate-dacă-ambiguu. Dacă este setat la On, cuvinte care au mai multe posibile
finalizare fără nicio completare parțială posibilă (finalizările posibile nu
împărtășesc un prefix comun) fac ca potrivirile să fie listate imediat în loc de
sunând clopotul.
modul-afișare-în-prompt (Dezactivat)
Dacă este setat la On, adăugați un caracter la începutul promptului care indică editarea
modul: emacs (@), comanda vi (:) sau inserarea vi (+).
omite textul completat (Dezactivat)
Dacă este setat la On, aceasta modifică comportamentul implicit de finalizare la inserarea unui singur
potrivește în linie. Este activ numai când se realizează finalizarea la mijlocul
un cuvant. Dacă este activat, readline nu inserează caractere de la completare
potriviți caractere după punct din cuvântul care este completat, deci porțiuni din cuvânt
care urmează cursorul nu sunt duplicate.
vizibile-statistici (Dezactivat)
Dacă este setat la On, un caracter care denotă tipul unui fișier, așa cum este raportat de Stat(2) se anexează
la numele fișierului atunci când enumerați posibilele completări.

Citeste linia Condiţional Constructii
Readline implementează o facilitate similară în spirit cu caracteristicile de compilare condiționată
a preprocesorului C care permite legăturile tastelor și setările variabilelor să fie efectuate ca
rezultatul testelor. Sunt utilizate patru directive de analiză.

$daca $daca construct permite ca legările să fie făcute pe baza modului de editare, the
terminalul utilizat sau aplicația utilizând readline. Textul testului
se extinde până la capătul liniei; nu sunt necesare caractere pentru a-l izola.

mod mod= forma de $daca directiva este folosită pentru a testa dacă readline este în
modul emacs sau vi. Acesta poate fi folosit împreună cu set harta tastelor
comanda, de exemplu, pentru a seta legături în emacs-standard și emacs-ctlx
hărți de taste numai dacă readline începe în modul emacs.

durată termen= formularul poate fi folosit pentru a include legături de taste specifice terminalului,
poate pentru a lega secvențele de taste ieșite de tastele funcționale ale terminalului.
Cuvântul din partea dreaptă a = este testat cu ambele nume complete ale
terminalul și porțiunea din numele terminalului înaintea primului -. Acest
permite soare pentru a se potrivi pe amândouă soare și soare-cmd, de exemplu.

cerere
cerere construct este utilizat pentru a include setări specifice aplicației.
Fiecare program care utilizează biblioteca readline setează cerere nume, Și un
fișierul de inițializare poate testa o anumită valoare. Acest lucru ar putea fi obișnuit
legați secvențele de taste la funcții utile pentru un anumit program. Pentru
exemplu, următoarea comandă adaugă o secvență de taste care citează curentul
sau cuvântul anterior în pocni:

$daca Bash
# Citați cuvântul curent sau anterior
"\C-xq": "\eb\"\ef\""
$endif

$endif Această comandă, așa cum se vede în exemplul anterior, termină un $daca comanda.

$altfel Comenzile din această ramură a $daca directiva sunt executate dacă testul eșuează.

$include
Această directivă ia un singur nume de fișier ca argument și citește comenzi și
legături din acel fișier. De exemplu, următoarea directivă ar citi
/etc/inputrc:

$include /etc/inputrc

Căutare
Readline oferă comenzi pentru căutarea în istoricul comenzilor (vezi ISTORIE de mai jos)
pentru liniile care conțin un șir specificat. Există două moduri de căutare: incrementală și non-
incrementală.

Căutările incrementale încep înainte ca utilizatorul să termine de tastat șirul de căutare. Ca fiecare
caracterul șirului de căutare este tastat, readline afișează următoarea intrare din istoric
potrivire cu șirul tastat până acum. O căutare incrementală necesită doar atâtea caractere
după cum este necesar pentru a găsi intrarea de istoric dorită. Personajele prezente în valoarea
isearch-terminatori variabile sunt folosite pentru a termina o căutare incrementală. Daca asta
variabilei nu i s-a atribuit o valoare pe care caracterele Escape și Control-J se vor termina
o căutare progresivă. Control-G va anula o căutare incrementală și va restabili
linia originală. Când căutarea este încheiată, intrarea din istoric care conține căutarea
șirul devine linia curentă.

Pentru a găsi alte intrări care se potrivesc în lista de istoric, tastați Control-S sau Control-R ca
adecvat. Aceasta va căuta înapoi sau înainte în istoric pentru următoarea intrare
care se potrivește cu șirul de căutare introdus până acum. Orice altă secvență de taste legată de o linie de citire
comanda va termina căutarea și va executa comanda respectivă. De exemplu, a linie nouă voi
terminați căutarea și acceptați linia, executând astfel comanda din istoric
listă.

Readline își amintește ultimul șir de căutare incremental. Dacă sunt introduse două Control-R
fără caractere intermediare care să definească un șir de căutare nou, orice căutare amintită
se folosește șir.

Căutările non-incrementale citesc întregul șir de căutare înainte de a începe căutarea
potrivirea liniilor istorice. Șirul de căutare poate fi introdus de utilizator sau poate face parte din
conținutul liniei curente.

Citeste linia Comandă Alte denumiri
Mai jos este o listă cu numele comenzilor și secvențele implicite de taste pentru
pe care acestea sunt legate. Numele comenzilor fără o secvență de taste însoțitoare sunt nelegate
Mod implicit. În următoarele descrieri, punct se referă la poziția curentă a cursorului și
marca se referă la o poziție a cursorului salvată de marca de setare comanda. Textul dintre
punctul și marca sunt denumite regiune.

Comenzi pentru Mutarea
începutul liniei (Ca)
Deplasați-vă la începutul liniei curente.
sfârşitul liniei (Ce)
Deplasați-vă la sfârșitul liniei.
înainte-car (Cf)
Deplasați înainte un personaj.
înapoi-char (Cb)
Mutați înapoi un personaj.
înainte-cuvânt (Mf)
Treceți înainte până la sfârșitul cuvântului următor. Cuvintele sunt compuse din alfanumerice
caractere (litere și cifre).
cuvânt-înapoi (Mb)
Reveniți la începutul cuvântului curent sau anterior. Cuvintele sunt compuse din
caractere alfanumerice (litere și cifre).
shell-forward-word
Treceți înainte până la sfârșitul cuvântului următor. Cuvintele sunt delimitate de shell fără ghilimele
metacaracterele.
shell-backward-word
Reveniți la începutul cuvântului curent sau anterior. Cuvintele sunt delimitate de
metacaracterele shell necotate.
ecran clar (Cl)
Ștergeți ecranul lăsând linia curentă în partea de sus a ecranului. Cu un
argument, reîmprospătați linia curentă fără a șterge ecranul.
redesenarea-linie-curent
Reîmprospătați linia curentă.

Comenzi pentru manipulând il Istorie
accept-line (Linie nouă, Întoarcere)
Acceptați linia indiferent de locul în care se află cursorul. Dacă această linie nu este goală, adăugați
it la lista de istorie în funcție de starea HISTCONTROL variabil. Dacă
linia este o linie istorică modificată, apoi restaurați linia istorică la original
de stat.
istoria anterioară (Cp)
Preluați comanda anterioară din lista istorică, deplasându-vă înapoi în listă.
istoria următoare (Cn)
Preluați următoarea comandă din lista istorică, mergând înainte în listă.
începutul-istoriei (M-<)
Treceți la prima linie din istorie.
sfârşitul istoriei (M->)
Deplasați-vă la sfârșitul istoricului de intrare, adică la linia introdusă în prezent.
istoricul-căutări inverse (Cr)
Căutați înapoi, începând de la linia curentă și deplasându-se „în sus” prin istoric ca
necesar. Aceasta este o căutare incrementală.
istoricul-căutări înainte (Cs)
Căutați înainte pornind de la linia curentă și deplasându-vă „în jos” prin istoric
după cum este necesar. Aceasta este o căutare incrementală.
istoricul-căutărilor-revers-non-incrementale (Mp)
Căutați înapoi prin istoric începând de la linia curentă folosind un
căutare incrementală pentru un șir furnizat de utilizator.
istoricul-căutărilor non-incrementale-înainte (Mn)
Căutați înainte prin istoric folosind o căutare non-incrementală pentru un șir
furnizate de utilizator.
istorie-căutare-înainte
Căutați înainte prin istoric șirul de caractere dintre început
a dreptei curente și a punctului. Aceasta este o căutare non-incrementală.
istorie-căutare-înapoi
Căutați înapoi prin istoric șirul de caractere dintre început
a dreptei curente și a punctului. Aceasta este o căutare non-incrementală.
trag-nth-arg (MCy)
Introduceți primul argument la comanda anterioară (de obicei, al doilea cuvânt de pe
linia anterioară) la punct. Cu un argument n, introduceți fișierul nal-lea cuvânt din precedentul
comanda (cuvintele din comanda anterioară încep cu cuvântul 0). Un argument negativ
introduce nal-lea cuvânt de la sfârșitul comenzii anterioare. Odată ce argumentul n is
calculat, argumentul este extras ca și cum „!n„Extinderea istoriei a fost
specificat.
smulge-ultimul-arg (M-., M-_)
Inserați ultimul argument la comanda anterioară (ultimul cuvânt al comenzii anterioare
intrare în istorie). Cu un argument numeric, comportă-te exact ca trag-nth-arg.
Apeluri succesive către smulge-ultimul-arg treceți înapoi prin lista istorică, inserând
ultimul cuvânt (sau cuvântul specificat de argumentul primului apel) din fiecare rând în
întoarce. Orice argument numeric furnizat acestor apeluri succesive determină
direcția de a trece prin istorie. Un argument negativ schimbă direcția
prin istorie (înapoi sau înainte). Sunt utilizate facilitățile de extindere a istoriei
pentru a extrage ultimul cuvânt, de parcă ar fi fost specificată extinderea istoricului „!$”.
shell-expand-line (MCe)
Extindeți linia așa cum face shell-ul. Aceasta realizează alias și extinderea istoricului ca
precum și toate expansiunile de cuvinte shell. Vedea ISTORIE EXPANSIUNE mai jos pentru a
descrierea expansiunii istoriei.
istorie-expand-line (M-^)
Efectuați extinderea istoricului pe linia curentă. Vedea ISTORIE EXPANSIUNE mai jos pentru a
descrierea expansiunii istoriei.
magic-spațiu
Efectuați extinderea istoricului pe linia curentă și introduceți un spațiu. Vedea ISTORIE
EXPANSIUNE mai jos pentru o descriere a expansiunii istoriei.
alias-expand-line
Efectuați extinderea alias-ului pe linia curentă. Vedea ALIASSE mai sus pentru o descriere
de extindere a aliasului.
istorie-și-alias-de-extindere-line
Efectuați istoricul și extinderea alias-ului pe linia curentă.
inserare-ultimul-argument (M-., M-_)
Un sinonim pentru smulge-ultimul-arg.
operați-și-obțineți-în continuare (Co)
Acceptați linia curentă pentru execuție și preluați următoarea linie relativă la
linia curentă din istoric pentru editare. Orice argument este ignorat.
editați și executați comanda (C-xC-e)
Invocați un editor pe linia de comandă curentă și executați rezultatul ca shell
comenzi. Bash încercări de a invoca $VISUAL, $ EDITOR, și emacs în calitate de redactor, în
acea ordine.

Comenzi pentru Schimbarea Text
sfârşitul dosarului (De obicei CD)
Caracterul care indică sfârșitul fișierului ca setat, de exemplu, de „stty”. Dacă aceasta
caracterul este citit atunci când nu există caractere pe linie, iar punctul este la
începutul liniei, Readline îl interpretează ca sfârșit de intrare și revine EOF.
șterge-car (CD)
Ștergeți caracterul la un moment dat. Dacă această funcție este legată de același caracter ca
tty EOF caracter, ca CD este de obicei, vezi mai sus pentru efecte.
înapoi-sterge-car (Rublum)
Ștergeți caracterul din spatele cursorului. Când i se oferă un argument numeric, salvați
text șters de pe inelul de ucidere.
înainte-înapoi-sterge-car
Ștergeți caracterul de sub cursor, cu excepția cazului în care cursorul se află la sfârșitul liniei,
caz în care caracterul din spatele cursorului este șters.
citat-inserare (Cq, CV)
Adăugați pe rând următorul caracter introdus text. Acesta este modul de inserare
personaje ca Cq, De exemplu.
tab-inserare (CV TAB)
Inserați un caracter tabulator.
auto-inserție (A, b, A, 1, !, ...)
Introduceți caracterul tastat.
transpose-chars (CT)
Trageți caracterul înainte de punct înainte peste caracterul în punctul, punctul în mișcare
înainte de asemenea. Dacă punctul se află la sfârșitul liniei, atunci aceasta le transpune pe cele două
caractere înainte de punct. Argumentele negative nu au niciun efect.
transpune-cuvinte (Mt)
Trageți cuvântul înainte de punct dincolo de cuvânt după punct, deplasând punctul peste acel cuvânt
de asemenea. Dacă punctul se află la sfârșitul liniei, aceasta transpune ultimele două cuvinte
linia.
cuvânt-majuscule (Mu)
Cuvântul curent (sau următorul) cu majuscule. Cu un argument negativ, majuscule
cuvântul anterior, dar nu mutați punctul.
cuvânt-minuscule (Ml)
Cuvântul curent (sau următorul) cu minuscule. Cu un argument negativ, litere mici
cuvântul anterior, dar nu mutați punctul.
majuscule-cuvânt (Mc)
Scrieți cu majuscule cuvântul curent (sau următorul). Cu un argument negativ, majuscule
cuvântul anterior, dar nu mutați punctul.
modul de suprascriere
Comutați modul de suprascriere. Cu un argument numeric pozitiv explicit, comută la
modul de suprascriere. Cu un argument numeric explicit non-pozitiv, trece la inserare
modul. Această comandă afectează numai emacs modul; vi modul suprascrie diferit.
Fiecare apel către Citeste linia() începe în modul de inserare. În modul de suprascriere, caracterele sunt legate
la auto-inserție înlocuiți textul la un punct, în loc să împingeți textul la dreapta.
Personaje legate de înapoi-sterge-car înlocuiți caracterul înaintea punctului cu a
spaţiu. În mod implicit, această comandă este nelegată.

Ucidere și smucindu
linia uciderii (Ck)
Omorâți textul de la punctul până la sfârșitul rândului.
backward-kill-line (Cx Rubout)
Ucide înapoi până la începutul liniei.
unix-line-discard (Cu)
Ucide înapoi de la punctul la începutul liniei. Textul ucis este salvat pe
inelul de ucidere.
ucide-toata-linia
Omorâți toate personajele de pe linia curentă, indiferent unde se află punctul.
ucide-cuvânt (Md)
Ucideți de la punctul până la sfârșitul cuvântului curent sau, dacă există între cuvinte, până la sfârșitul
următorul cuvânt. Granițele cuvintelor sunt aceleași cu cele folosite de înainte-cuvânt.
înapoi-ucide-cuvânt (M-Rubout)
Omoara cuvântul din spatele punctului. Granițele cuvintelor sunt aceleași cu cele folosite de
cuvânt-înapoi.
shell-kill-word (Md)
Ucideți de la punctul până la sfârșitul cuvântului curent sau, dacă există între cuvinte, până la sfârșitul
următorul cuvânt. Granițele cuvintelor sunt aceleași cu cele folosite de shell-forward-word.
shell-backward-kill-word (M-Rubout)
Omoara cuvântul din spatele punctului. Granițele cuvintelor sunt aceleași cu cele folosite de
shell-backward-word.
unix-cuvânt-rubout (Cw)
Omorâți cuvântul din spatele punctului, folosind spațiul alb ca limită a cuvântului. Textul ucis
este salvat pe kill-ring.
unix-filename-rubout
Omorâți cuvântul din spatele punctului, folosind spațiul alb și caracterul slash ca cuvânt
limite. Textul ucis este salvat pe kill-ring.
şterge-spaţiu-orizontal (M-\)
Ștergeți toate spațiile și filele din jurul punctului.
ucidere-regiune
Omorâți textul din regiunea curentă.
copy-region-as-kill
Copiați textul din regiune în tamponul de ucidere.
copie-înapoi-cuvânt
Copiați cuvântul înainte de punct în tamponul de ucidere. Granițele cuvântului sunt aceleași ca
cuvânt-înapoi.
copy-forward-word
Copiați cuvântul următor punct în tamponul de ucidere. Limitele cuvintelor sunt aceleași
as înainte-cuvânt.
smulge (Cy)
Loviți partea superioară a inelului de ucidere în tampon la un punct.
yank-pop (Ale mele)
Rotiți inelul de ucidere și smulgeți noul vârf. Funcționează doar după smulge or yank-pop.

Numeric Argumente
cifră-argument (M-0, M-1, ..., M--)
Adăugați această cifră la argumentul care se acumulează deja sau începeți un nou argument. M--
începe un argument negativ.
universal-argument
Acesta este un alt mod de a specifica un argument. Dacă această comandă este urmată de unul sau
mai multe cifre, opțional cu semnul minus, acele cifre definesc
argument. Dacă comanda este urmată de cifre, se execută universal-argument din nou
încheie argumentul numeric, dar este ignorat altfel. Ca caz special, dacă acesta
comanda este urmată imediat de un caracter care nu este nici o cifră, nici minus
semn, numărul de argumente pentru următoarea comandă este înmulțit cu patru. Argumentul
count este inițial unul, deci executarea acestei funcții prima dată face ca
argumentul numără patru, a doua oară face ca argumentul să numere șaisprezece și așa mai departe.

Finalizând
Completă (TAB)
Încercați să completați textul înainte de punctul. Bash încercări de finalizare
tratarea textului ca pe o variabilă (dacă textul începe cu $), nume de utilizator (dacă textul
începe cu ~), nume de gazdă (dacă textul începe cu @), sau comandă (inclusiv aliasuri
și funcții) la rândul lor. Dacă niciuna dintre acestea nu produce o potrivire, completarea numelui fișierului este
încercat.
posibile-completari (M-?)
Enumerați posibilele completări ale textului înainte de punctul.
inserare-completari (M-*)
Introduceți toate completările textului înainte de punctul care ar fi fost generat de
posibile-completari.
meniu-complet
similar Completă, dar înlocuiește cuvântul care trebuie completat cu o singură potrivire de la
lista completărilor posibile. Executarea repetată a meniu-complet paşi
prin lista de posibile completări, inserând fiecare potrivire pe rând. La sfârșitul
din lista completărilor se sună clopoțelul (în funcție de setarea stil clopot)
iar textul original este restaurat. Un argument al n mişcă n pozitii inainte in
lista de meciuri; un argument negativ poate fi folosit pentru a trece înapoi prin
listă. Această comandă este destinată să fie legată de TAB, dar este nelegat în mod implicit.
meniu-complet-înapoi
Identic cu meniu-complet, dar se deplasează înapoi prin lista de posibile
completări, parcă meniu-complet i s-a dat un argument negativ. Această comandă
este nelegat în mod implicit.
șterge-car-sau-listă
Șterge caracterul de sub cursor dacă nu este la începutul sau la sfârșitul liniei
(ca șterge-car). Dacă la sfârșitul liniei, se comportă identic cu
posibile-completari. Această comandă este nelegată în mod implicit.
nume-fișier complet (M-/)
Încercați să completați numele fișierului pe textul înainte de punctul.
posibile-nume-fișier-completări (Cx /)
Enumerați posibilele completări ale textului înainte de punct, tratându-l ca un nume de fișier.
nume de utilizator complet (M-~)
Încercați să completați textul înainte de punct, tratându-l ca un nume de utilizator.
posibile-nume-de-utilizator-completari (Cx ~)
Enumerați posibilele completări ale textului înainte de punct, tratându-l ca un nume de utilizator.
complet-variabilă (M-$)
Încercați să completați textul înainte de punct, tratându-l ca o variabilă shell.
completări-variabile-posibile (Cx $)
Enumerați posibilele completări ale textului înainte de punct, tratându-l ca pe o cochilie
variabilă.
nume-gazdă completă (M-@)
Încercați să completați textul înainte de punct, tratându-l ca pe un nume de gazdă.
posibile-hostname-completions (Cx @)
Listați posibilele completări ale textului înainte de punct, tratându-l ca pe un nume de gazdă.
comandă-completă (M-!)
Încercați să completați textul înainte de punct, tratându-l ca pe un nume de comandă.
Finalizarea comenzii încearcă să potrivească textul cu aliasuri, cuvinte rezervate,
funcțiile shell, shell-urile încorporate și, în final, numele fișierelor executabile, în această ordine.
posibile-comandă-completări (Cx !)
Enumerați posibilele completări ale textului înainte de punct, tratându-l ca o comandă
nume.
istorie-dinamică-completă (M-TAB)
Încercați să completați textul înainte de punct, comparând textul cu liniile din
lista istoricului pentru eventualele potriviri de finalizare.
dabbrev-expand
Încercați să completați meniul pe textul înainte de punct, comparând textul cu liniile
din lista istorică pentru posibile potriviri de finalizare.
complet-în-acolade (M-{)
Efectuați completarea numelui de fișier și introduceți lista de completări posibile inclusă
între acolade, astfel încât lista să fie disponibilă pentru shell (vezi Bretele Expansiune de mai sus).

Tastatură Macrocomenzi
start-kbd-macro (Cx ()
Începeți să salvați caracterele introduse în macrocomanda curentă de la tastatură.
end-kbd-macro (Cx ))
Nu mai salvați caracterele tastate în macrocomandă curentă de tastatură și stocați
definiție.
apel-ultimul-kbd-macro (Cx e)
Re-execută ultima macrocomandă de tastatură definită, creând caracterele din macrocomandă
apar ca și cum ar fi tastat la tastatură.
print-ultimul-kbd-macro ()
Imprimați ultima macrocomandă de tastatură definită într-un format potrivit pentru inputrc fișier.

Diverse
recitiți fișierul-inițial (Cx Cr)
Citiți în cuprinsul inputrc fișier și încorporează orice legături sau variabile
sarcinile găsite acolo.
avorta (Cg)
Anulați comanda de editare curentă și sunați la soneria terminalului (sub rezerva codului
setarea de stil clopot).
do-versiunea-majuscule (Ma, Mb, M-x, ...)
Dacă personajul metafiat x este litere mici, rulați comanda care este legată de
caracterul majuscul corespunzător.
prefix-meta (ESC)
Metafizează următorul caracter tastat. ESC f este echivalent cu Meta-f.
anula (C-_, Cx Cu)
Anulare incrementală, memorată separat pentru fiecare linie.
retur-line (Domnul)
Anulați toate modificările aduse acestei linii. Este ca și cum ai executa anula comandă suficient
ori pentru a readuce linia la starea inițială.
tilde-expand (M-&)
Efectuați extinderea tildei pe cuvântul curent.
marca de setare (C-@, M- )
Setați marcajul la punct. Dacă este furnizat un argument numeric, marcajul este setat la
pozitia respectiva.
schimb-punct-și-marcă (Cx Cx)
Schimbați punctul cu semnul. Poziția curentă a cursorului este setată la cea salvată
poziție, iar vechea poziție a cursorului este salvată ca marcaj.
căutare de caractere (C-])
Un caracter este citit și punctul este mutat la următoarea apariție a acelui caracter. A
căutări de numărare negativă pentru aparițiile anterioare.
caracter-căutare-înapoi (MC-])
Un caracter este citit și punctul este mutat la apariția anterioară a acestuia
caracter. Un număr negativ caută aparițiile ulterioare.
skip-csi-secvență
Citiți suficiente caractere pentru a consuma o secvență cu mai multe taste, cum ar fi cele definite pentru
taste precum Acasă și Sfârșit. Astfel de secvențe încep cu un indicator al secvenței de control
(CSI), de obicei ESC-[. Dacă această secvență este legată de „\[”, cheile producând astfel
secvențele nu vor avea efect decât dacă sunt legate în mod explicit la o comandă readline,
în loc să inserați caractere rătăcite în buffer-ul de editare. Acest lucru nu este legat de
implicit, dar de obicei legat la ESC-[.
inserare-comentare (M-#)
Fără un argument numeric, valoarea liniei de citire comentariu-început variabilă este
introdus la începutul liniei curente. Dacă este furnizat un argument numeric,
această comandă acționează ca o comutare: dacă caracterele de la începutul liniei fac
nu se potrivesc cu valoarea lui comentariu-început, valoarea este inserată, în caz contrar
caractere în comentariu-început sunt șterse de la începutul liniei. În oricare
caz, linia este acceptată ca și cum ar fi fost introdusă o nouă linie. Valoarea implicită a
comentariu-început determină această comandă să facă din linia curentă un comentariu shell. În cazul în care un
Argumentul numeric face ca caracterul de comentariu să fie eliminat, linia va fi
executat de coajă.
glob-cuvânt-complet (Mg)
Cuvântul înainte de punct este tratat ca un model pentru extinderea numelui de cale, cu un
asterisc anexat implicit. Acest model este folosit pentru a genera o listă de potriviri
nume de fișiere pentru posibile completări.
glob-expand-word (Cx *)
Cuvântul dinaintea punctului este tratat ca un model pentru extinderea numelui de cale și a listei
de nume de fișiere potrivite este inserat, înlocuind cuvântul. Dacă un argument numeric este
furnizat, un asterisc este adăugat înainte de extinderea numelui de cale.
glob-list-expansiuni (Cx g)
Lista de extinderi care ar fi fost generată de glob-expand-word is
afișat, iar linia este redesenată. Dacă este furnizat un argument numeric, un asterisc
este atașat înainte de extinderea numelui de cale.
funcții de dump
Imprimați toate funcțiile și legăturile lor de taste în fluxul de ieșire readline.
Dacă este furnizat un argument numeric, rezultatul este formatat în așa fel încât
poate fi făcut parte dintr-un inputrc fișier.
dump-variabile
Tipăriți toate variabilele readline setate și valorile acestora în readline
flux de ieșire. Dacă este furnizat un argument numeric, rezultatul este formatat astfel
un mod în care poate fi făcut parte dintr-un inputrc fișier.
dump-macro
Tipăriți toate secvențele de taste readline legate de macrocomenzi și șirurile acestora
ieșire. Dacă este furnizat un argument numeric, rezultatul este formatat în acest fel
că poate fi făcut parte dintr-un inputrc fișier.
display-shell-version (Cx CV)
Afișează informații despre versiunea actuală a pocni.

Programabile Finalizare tranzactiei
Când se încearcă completarea unui cuvânt pentru un argument la o comandă pentru care o completare
specificație (a compspec) a fost definit folosind Completă încorporat (vezi COAJĂ INCORPORAT
COMANDE de mai jos), sunt invocate facilitatile de completare programabile.

Mai întâi, este identificat numele comenzii. Dacă cuvântul de comandă este șirul gol
(încercarea de completare la începutul unei linii goale), orice compspec definită cu -E
opțiunea pentru Completă este folosit. Dacă a fost definit un compspec pentru acea comandă, compspec
este folosit pentru a genera lista de completări posibile pentru cuvânt. Dacă cuvântul de comandă este
un nume de cale complet, este căutat mai întâi o specificație complect pentru numele de cale complet. Dacă nu compspec
este găsită pentru calea completă, se încearcă găsirea unui compspec pentru porțiune
în urma tăieturii finale. Dacă acele căutări nu au ca rezultat o specificație comp., orice specificație
definit cu -D opțiunea pentru Completă este folosit ca implicit.

Odată ce o compspec a fost găsită, aceasta este folosită pentru a genera lista de cuvinte care se potrivesc. În cazul în care un
compspec nu este găsită, implicit pocni finalizare așa cum este descris mai sus în Finalizând is
efectuat.

În primul rând, sunt utilizate acțiunile specificate de compspec. Doar potrivirile care sunt prefixate de
cuvântul în curs de completare sunt returnate. Cand -f or -d opțiunea este folosită pentru numele fișierului sau
completarea numelui directorului, variabila shell FIGNORE este folosit pentru a filtra potrivirile.

Orice completări specificate de un model de extindere a căii către -G sunt generate opțiuni
Următorul. Cuvintele generate de model nu trebuie să se potrivească cu cuvântul care este completat. The
GLOBIGNORE Variabila shell nu este folosită pentru a filtra potrivirile, ci FIGNORE variabilă este
folosit.

Apoi, șirul specificat ca argument pentru -W este luată în considerare opțiunea. Coarda este
mai întâi împărțiți folosind caracterele din IFS variabilă specială ca delimitatori. Citat de Shell
este onorat. Fiecare cuvânt este apoi extins folosind extinderea bretelor, extinderea tildei, parametrul
și extindere variabilă, substituție de comandă și extindere aritmetică, așa cum este descris mai sus
în EXPANSIUNE. Rezultatele sunt împărțite folosind regulile descrise mai sus Cuvânt
Despicare. Rezultatele expansiunii sunt prefixate cu cuvântul ființă
completat, iar cuvintele care se potrivesc devin posibile completări.

După ce aceste potriviri au fost generate, orice funcție shell sau comandă specificată cu
-F și -C opțiunile este invocată. Când comanda sau funcția este invocată, COMP_LINE,
COMP_POINT, COMP_KEY, și COMP_TYPE variabilelor li se atribuie valori așa cum este descris mai sus în
Coajă Variabile. Dacă o funcție shell este invocată, funcția COMP_WORDS și COMP_CWORD
sunt de asemenea setate variabile. Când funcția sau comanda este invocată, primul argument ($1)
este numele comenzii ale cărei argumente sunt completate, al doilea argument ($2)
se completează cuvântul și al treilea argument ($3) este cuvântul care precede cuvântul
fiind finalizat pe linia de comandă curentă. Fără filtrare a completărilor generate
împotriva cuvântului în curs de completare se execută; funcția sau comanda este completă
libertate în generarea meciurilor.

Orice funcție specificată cu -F este invocat mai întâi. Funcția poate folosi oricare din shell
facilități, inclusiv compgen built-in descris mai jos, pentru a genera potrivirile. Aceasta
trebuie să pună eventualele completări în COMPREPLY variabilă matrice, una pentru fiecare element de matrice.

Apoi, orice comandă specificată cu -C opțiunea este invocată într-un mediu echivalent cu
înlocuirea comenzii. Ar trebui să imprime o listă de completări, una pe linie, la
ieșire standard. Backslash poate fi folosit pentru a scăpa de o nouă linie, dacă este necesar.

După ce toate completările posibile sunt generate, orice filtru specificat cu -X
opțiunea este aplicată listei. Filtrul este un model așa cum este utilizat pentru extinderea numelui de cale; A
& în model este înlocuit cu textul cuvântului în curs de completare. Un literal & Mai
să fie scăpat cu o bară oblică inversă; bara oblică inversă este eliminată înainte de a încerca o potrivire. Orice
completarea care se potrivește cu modelul va fi eliminată din listă. Un lider ! neagă
modelul; în acest caz, orice completare care nu se potrivește cu modelul va fi eliminată.

În cele din urmă, orice prefix și sufix specificat cu -P și -S la fiecare se adaugă opțiuni
membru al listei de completare, iar rezultatul este returnat la codul de completare readline
ca lista de posibile completari.

Dacă acțiunile aplicate anterior nu generează potriviri, și -o nume de nume opțiune
a fost furnizat către Completă când a fost definită compspec, completarea numelui directorului este
încercat.

În cazul în care -o plusdirs opțiunea a fost furnizată către Completă când a fost definit compspec,
Se încearcă completarea numelui directorului și orice potrivire este adăugată la rezultatele
alte actiuni.

În mod implicit, dacă se găsește un compspec, orice generează este returnat la finalizare
cod ca setul complet de completări posibile. Implicit pocni completările nu sunt
încercat, iar linia de citire implicită a finalizării numelui fișierului este dezactivată. Dacă -o
bashdefault opțiunea a fost furnizată către Completă când a fost definit compspec, the pocni
completările implicite sunt încercate dacă compspec nu generează potriviri. Dacă -o lipsă
opțiunea a fost furnizată către Completă când a fost definită compspec, valoarea implicită a readline
finalizarea va fi efectuată dacă compspec (și, dacă se încearcă, implicit pocni
completări) nu generează potriviri.

Când un compspec indică faptul că se dorește completarea numelui de director, programabil
funcțiile de completare forțează readline să adauge o bară oblică la numele completate care sunt
link-uri simbolice către directoare, în funcție de valoarea marca-directoare Citeste linia
variabilă, indiferent de setarea marca-directoare-symlinked variabilă readline.

Există un anumit suport pentru modificarea dinamică a completărilor. Acest lucru este cel mai util atunci când
utilizat în combinație cu o completare implicită specificată cu Completă -D. Este posibil
pentru funcțiile shell executate ca handleri de completare pentru a indica că finalizarea ar trebui să fie
reîncercat prin returnarea unei stări de ieșire de 124. Dacă o funcție shell returnează 124 și se modifică
compspec asociată cu comanda la care se încearcă finalizarea (furnizată
ca prim argument când funcția este executată), finalizarea programabilă repornește
de la început, cu o încercare de a găsi un nou compspec pentru acea comandă. Asta permite
un set de completări care urmează să fie construite dinamic pe măsură ce se încearcă finalizarea, mai degrabă decât să fie
încărcate dintr-o dată.

De exemplu, presupunând că există o bibliotecă de compspecs, fiecare păstrată într-un fișier
corespunzătoare numelui comenzii, următoarea funcție implicită de completare ar fi
încărcați completările în mod dinamic:

_completion_loader()
{
. "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && returnează 124
}
complete -D -F _completion_loader -o bashdefault -o implicit

ISTORIE


Cand -o istorie opțiune la set builtin este activat, shell-ul oferă acces la
comandă istorie, lista comenzilor tastate anterior. Valoarea HISTSIZE
variabila este folosită ca număr de comenzi de salvat într-o listă istorică. Textul din
ultimul HISTSIZE comenzile (implicit 500) este salvată. Shell stochează fiecare comandă în
lista istorică înainte de extinderea parametrilor și variabilelor (vezi EXPANSIUNE mai sus) dar după
se realizează extinderea istoricului, sub rezerva valorilor variabilelor shell HISTIGNORE
și HISTCONTROL.

La pornire, istoricul este inițializat din fișierul numit de variabilă HISTFILE
(Mod implicit ~ / .bash_history). Fișierul numit după valoarea lui HISTFILE este trunchiată, dacă
necesar, să nu conțină mai mult decât numărul de linii specificat de valoarea lui
HISTFILESIZE. Dacă HISTFILESIZE este nesetat sau setat la nul, o valoare non-numerică sau o valoare numerică
valoare mai mică decât zero, fișierul istoric nu este trunchiat. Când fișierul istoric este citit,
liniile care încep cu caracterul de comentariu istoric urmat imediat de o cifră sunt
interpretate ca marcaje temporale pentru linia anterioară a istoricului. Aceste marcaje temporale sunt opționale
afisat in functie de valoarea lui HIST FORMAT ORĂ variabil. Când o scoică cu
ieșiri activate istoric, ultima $HISTSIZE liniile sunt copiate din lista de istoric în
$HISTFILE. Dacă histappend Opțiunea shell este activată (vezi descrierea magazin în
COAJĂ INCORPORAT COMANDE de mai jos), liniile sunt atașate la fișierul istoric, în caz contrar
fișierul istoric este suprascris. Dacă HISTFILE este nesetat sau dacă fișierul istoric nu poate fi scris,
istoria nu este salvată. Dacă HIST FORMAT ORĂ variabila este setată, marcajele de timp sunt scrise
la fișierul istoric, marcat cu caracterul de comentariu istoric, astfel încât acestea să poată fi păstrate
peste sesiuni shell. Aceasta folosește caracterul de comentariu istoric pentru a distinge marcajele de timp
din alte linii de istorie. După salvarea istoricului, fișierul istoric este trunchiat la
nu contine mai mult de HISTFILESIZE linii. Dacă HISTFILESIZE este nesetat sau setat la nul, un non-
valoare numerică sau o valoare numerică mai mică decât zero, fișierul istoric nu este trunchiat.

Comanda încorporată fc (A se vedea COAJĂ INCORPORAT COMANDE de mai jos) poate fi folosit pentru a lista sau edita și
reexecută o parte din lista istoricului. The istorie încorporat poate fi folosit pentru a afișa sau
modificați lista istorică și manipulați fișierul istoric. Când utilizați editarea în linia de comandă,
Comenzile de căutare sunt disponibile în fiecare mod de editare care oferă acces la istoric
listă.

Shell permite controlul asupra comenzilor care sunt salvate în lista istorică. The
HISTCONTROL și HISTIGNORE variabilele pot fi setate pentru a determina shell-ul să salveze doar un subset
a comenzilor introduse. The cmdhist Opțiunea shell, dacă este activată, determină shell-ul
încercați să salvați fiecare linie a unei comenzi cu mai multe linii în aceeași intrare de istoric, adăugând
punct și virgulă acolo unde este necesar pentru a păstra corectitudinea sintactică. The litistă opțiunea shell
determină ca shell-ul să salveze comanda cu linii noi încorporate în loc de punct și virgulă. Vedea
descrierea magazin încorporat mai jos sub COAJĂ INCORPORAT COMANDE pentru informații despre
setarea și dezactivarea opțiunilor de shell.

ISTORIE EXPANSIUNE


Shell acceptă o funcție de extindere a istoricului care este similară cu extinderea istoricului din
csh. Această secțiune descrie ce caracteristici de sintaxă sunt disponibile. Această caracteristică este activată
în mod implicit pentru shell-uri interactive și poate fi dezactivat folosind +H opțiune la set
comandă încorporată (vezi COAJĂ INCORPORAT COMANDE de mai jos). Shell-urile non-interactive nu funcționează
extinderea istoricului în mod implicit.

Expansiunile istoricului introduc cuvinte din lista istoricului în fluxul de intrare, făcându-l
comenzi ușor de repetat, introduceți argumentele unei comenzi anterioare în intrarea curentă
linie sau remediați rapid erorile din comenzile anterioare.

Extinderea istoricului se realizează imediat după citirea unei linii complete, înainte de shell
îl descompune în cuvinte. Se desfășoară în două părți. Primul este de a determina ce linie
din lista istorică pentru a fi utilizată în timpul înlocuirii. Al doilea este de a selecta porțiuni de
acea linie pentru includerea în cea actuală. Linia selectată din istoric este
eveniment, iar porțiunile acelei linii asupra cărora se acționează sunt cuvinte. Variat modificatori sunt
disponibil pentru a manipula cuvintele selectate. Linia este ruptă în cuvinte în același timp
moda ca atunci când citirea de intrare, astfel încât mai multe metacaracter-cuvinte separate înconjurate de
citatele sunt considerate un singur cuvânt. Expansiunile istoriei sunt introduse prin apariția
caracterul de expansiune istoriei, care este ! în mod implicit. Doar bară oblică inversă (\) și singur
ghilimele pot cita caracterul de extindere a istoriei.

Mai multe caractere inhibă extinderea istoricului dacă sunt găsite imediat după istorie
caracter de expansiune, chiar dacă este necotat: spațiu, tab, linie nouă, întoarcere car și =.
În cazul în care extglob opțiunea shell este activată, ( va inhiba, de asemenea, expansiunea.

Mai multe opțiuni de shell pot fi setate cu magazin încorporat poate fi folosit pentru a adapta comportamentul
a expansiunii istoriei. Dacă histverify Opțiunea shell este activată (vezi descrierea
il magazin încorporat mai jos), și Citeste linia este folosit, substituțiile istorice nu sunt
a trecut imediat la analizatorul shell. În schimb, linia extinsă este reîncărcată în
Citeste linia editare tampon pentru modificări ulterioare. Dacă Citeste linia este folosit, iar
histreedit Opțiunea shell este activată, o înlocuire a istoricului eșuată va fi reîncărcată în
il Citeste linia tampon de editare pentru corectare. The -p opțiune la istorie comandă încorporată
poate fi folosit pentru a vedea ce va face o expansiune istorică înainte de a o utiliza. The -s opțiune la
istorie builtin poate fi folosit pentru a adăuga comenzi la sfârșitul listei de istorie fără
executându-le efectiv, astfel încât să fie disponibile pentru rechemare ulterioară.

Shell permite controlul diferitelor caractere utilizate de mecanismul de extindere a istoriei
(vezi descrierea lui histchars mai sus sub Coajă Variabile). Cochilia folosește
caracter de comentariu istoric pentru a marca marcajele de timp ale istoricului la scrierea fișierului istoric.

eveniment Desemnatori
Un desemnator de eveniment este o referință la o intrare în linia de comandă din lista istorică. Dacă nu
referința este absolută, evenimentele sunt relative la poziția actuală în istorie
listă.

! Începeți o înlocuire a istoricului, cu excepția cazului în care este urmată de a necompletat, linie nouă, trăsură
return, = sau ((când extglob Opțiunea shell este activată folosind magazin incorporat).
!n Consultați linia de comandă n.
!-n Consultați comanda curentă minus n.
!! Consultați comanda anterioară. Acesta este un sinonim pentru „!-1”.
!şir
Consultați cea mai recentă comandă care precede poziția curentă în lista istorică
incepand cu şir.
!?şir[?]
Consultați cea mai recentă comandă care precede poziția curentă în lista istorică
conținând şir. Urmărirea ? poate fi omis dacă şir este urmată imediat
printr-o linie nouă.
^string1^string2^
Înlocuire rapidă. Repetați comanda anterioară, înlocuind string1 cu string2.
Echivalent cu ``!!:s/string1/string2/'' (vedea Modificatorii de mai jos).
!# Întreaga linie de comandă tastata până acum.

Cuvânt Desemnatori
Indicatorii de cuvinte sunt utilizați pentru a selecta cuvintele dorite din eveniment. A : separă evenimentul
specificație din cuvântul desemnator. Poate fi omis dacă începe cuvântul desemnator
cu ^, $, *, -, Sau %. Cuvintele sunt numerotate de la începutul rândului, cu
primul cuvânt fiind notat cu 0 (zero). Cuvintele sunt inserate în linia curentă separate
prin spații unice.

0 (zero)
Cuvântul zero. Pentru shell, acesta este cuvântul de comandă.
n ncuvantul.
^ Primul argument. Adică cuvântul 1.
$ Ultimul cuvant. Acesta este de obicei ultimul argument, dar se va extinde la zero
cuvânt dacă există un singur cuvânt în rând.
% Cuvântul potrivit cu cel mai recent `?şir?' căutare.
x-y O serie de cuvinte; `-y' prescurtează `0-y'.
* Toate cuvintele, în afară de zero. Acesta este un sinonim pentru `1- $'. Nu este o eroare
să utilizeze * dacă există doar un cuvânt în eveniment; șirul gol este returnat în
acel caz.
x* Abreviază x-$.
x- Abreviază x-$ ca x*, dar omite ultimul cuvânt.

Dacă un desemnator de cuvânt este furnizat fără o specificație de eveniment, comanda anterioară este
folosit ca eveniment.

Modificatorii
După indicatorul de cuvânt opțional, poate apărea o secvență de unul sau mai multe dintre
următorii modificatori, fiecare precedat de un „:”.

h Eliminați o componentă de nume de fișier final, lăsând doar capul.
t Îndepărtați toate componentele principale ale numelui fișierului, lăsând coada.
r Eliminați un sufix final al formularului Xxx., lăsând numele de bază.
e Eliminați toate, cu excepția sufixului final.
p Imprimați noua comandă, dar nu o executați.
q Citați cuvintele substituite, scăpând de alte substituții.
x Citați cuvintele substituite ca cu q, dar sparge în cuvinte la goluri și linii noi.
s/vechi/nou/
Substitui nou pentru prima apariţie a vechi în linia evenimentului. Orice delimitator
poate fi folosit în locul /. Delimitatorul final este opțional dacă este ultimul
caracterul liniei de eveniment. Delimitatorul poate fi citat în vechi și nou cu
o singură bară oblică inversă. Dacă & apare în nou, este înlocuit cu vechi. O singură bară oblică inversă
va cita &. Dacă vechi este nul, este setat la ultimul vechi înlocuit, sau, dacă nu
au avut loc înlocuiri ale istoriei anterioare, ultima şir într-un !?şir[?]
căutare.
& Repetați înlocuirea anterioară.
g Faceți ca modificările să fie aplicate pe întreaga linie a evenimentului. Aceasta este folosită în
conjuncție cu `:s' (de exemplu, `:gs/vechi/nou/') sau `:&'. Dacă este folosit cu `:s', orice
delimitatorul poate fi folosit în locul lui /, iar delimitatorul final este opțional dacă este
ultimul caracter al liniei de eveniment. Un a poate fi folosit ca sinonim pentru g.
G Aplicați următorul `s' modificator o dată la fiecare cuvânt din linia evenimentului.

COAJĂ INCORPORAT COMANDE


Dacă nu este menționat altfel, fiecare comandă încorporată documentată în această secțiune ca acceptă
opțiuni precedate de - acceptă -- pentru a semnifica sfârșitul opțiunilor. The :, adevărat, fals,
și test modulele interne nu acceptă opțiuni și nu tratează -- special. The ieşire, Logout,
rupe, continua, lăsa, și schimbare modulele interne acceptă și procesează argumentele începând cu -
fără a necesita --. Alte built-in care acceptă argumente, dar nu sunt specificate ca
acceptând opțiunile interpretează argumentele începând cu - ca opțiuni nevalide și necesită --
pentru a preveni această interpretare.
: [argumente]
Fara efect; comanda nu face nimic în afară de extindere argumente și efectuând orice
redirecționări specificate. Este returnat un cod de ieșire zero.

. nume de fișier [argumente]
sursă nume de fișier [argumente]
Citiți și executați comenzi de la nume de fișier în mediul shell actual și revenire
starea de ieșire a ultimei comenzi executate din nume de fișier. Dacă nume de fișier nu
conține o bară oblică, nume de fișiere în PATH sunt folosite pentru a găsi directorul care conține
nume de fișier. Fișierul căutat în PATH nu trebuie să fie executabil. Când pocni nu este
in POSIX mod, directorul curent este căutat dacă nu se găsește niciun fișier în PATH. Dacă
il cale sursă opțiune la magazin comanda încorporată este dezactivată, PATH nu este
căutat. Dacă există argumente sunt furnizate, ei devin parametrii poziționali
cand nume de fișier este executat. În caz contrar, parametrii de poziție rămân neschimbați. The
starea de returnare este starea ultimei comenzi ieșite din script (0 dacă nu
comenzile sunt executate) și false dacă nume de fișier nu este găsit sau nu poate fi citit.

alias [-p] [nume[=valoare] ...]
Alias fără argumente sau cu -p opțiunea imprimă lista de aliasuri din
formă alias nume=valoare la ieșire standard. Când sunt furnizate argumente, este un alias
definite pentru fiecare nume a caror valoare este dată. Un spațiu în urmă valoare provoacă
următorul cuvânt care trebuie verificat pentru înlocuirea alias-ului atunci când aliasul este extins. Pentru
fiecare nume în lista de argumente pentru care nr valoare este furnizat, numele și valoarea
a alias-ului este tipărit. Alias returnează adevărat cu excepția cazului în care a nume este dat pentru care nr
aliasul a fost definit.

bg [spec ...]
Reluați fiecare lucrare suspendată spec în fundal, de parcă ar fi început cu
&. Dacă spec nu este prezentă, noțiunea de coajă a curent muncă este folosit. bg
spec returnează 0 dacă nu rulează când controlul jobului este dezactivat sau când rulează cu job
control activat, orice specificat spec nu a fost găsit sau a fost început fără loc de muncă
controla.

lega [-m harta tastelor] [-lpsvPSVX]
lega [-m harta tastelor] [-q funcţie] [-u funcţie] [-r keyseq]
lega [-m harta tastelor] -f nume de fișier
lega [-m harta tastelor] -x keyseq:comandă-shell
lega [-m harta tastelor] keyseq:nume-funcție
lega readline-comandă
Afișați curent Citeste linia legături de taste și funcții, legați o secvență de taste la a
Citeste linia funcție sau macro sau setați a Citeste linia variabil. Fiecare argument non-opțiune
este o comandă așa cum ar apărea în .inputrc, dar fiecare legare sau comandă trebuie să fie
trecut ca argument separat; de exemplu, „"\Cx\Cr": re-read-init-file'. Opțiuni, dacă
furnizate, au următoarele semnificații:
-m harta tastelor
Utilizare harta tastelor ca harta de taste care urmează să fie afectată de legările ulterioare.
Acceptabil harta tastelor numele sunt emacs, emacs-standard, emacs-meta, emacs-ctlx,
tu, vi-mutare, vi-comandă, și vi-inserare. vi este echivalent cu vi-comandă;
emacs este echivalent cu emacs-standard.
-l Listați numele tuturor Citeste linia funcții.
-p Afişa Citeste linia nume de funcții și legături în așa fel încât să poată fi
recitit.
-P Lista curentă Citeste linia nume de funcții și legături.
-s Afişa Citeste linia secvențe de taste legate de macrocomenzi și șiruri de caractere pe care acestea le scot
în aşa fel încât să poată fi recitit.
-S Afişa Citeste linia secvențe de taste legate de macrocomenzi și șiruri de caractere pe care acestea le scot.
-v Afişa Citeste linia nume de variabile și valori în așa fel încât acestea să poată fi
recitit.
-V Lista curentă Citeste linia nume și valori ale variabilelor.
-f nume de fișier
Citiți legăturile de taste de la nume de fișier.
-q funcţie
Interogați despre ce chei invocă numele funcţie.
-u funcţie
Deconectați toate cheile legate de cele numite funcţie.
-r keyseq
Eliminați orice legătură curentă pentru keyseq.
-x keyseq:comandă-shell
Provoca comandă-shell să fie executat oricând keyseq este introdus. Când
comandă-shell este executat, shell-ul setează READLINE_LINE variabilă la
continutul Citeste linia tampon de linie și READLINE_POINT variabilă la
locația curentă a punctului de inserție. Dacă comanda executată se modifică
valoarea READLINE_LINE or READLINE_POINT, acele noi valori vor fi
reflectată în starea de editare.
-X Listați toate secvențele de taste legate de comenzile shell și comenzile asociate
într-un format care poate fi reutilizat ca intrare.

Valoarea returnată este 0, cu excepția cazului în care este dată o opțiune nerecunoscută sau a apărut o eroare.

rupe [n]
Ieșire din interior a pentru, în timp ce, până la, Sau selecta buclă. Dacă n este specificat, pauză n
niveluri. n trebuie să fie ≥ 1. Dacă n este mai mare decât numărul de bucle de încadrare, toate
buclele care înconjoară sunt ieșite. Valoarea returnată este 0 dacă nu n nu este mai mare decât sau
egal cu 1.

builtin încorporat în coajă [argumente]
Executați shell-ul încorporat specificat, trecându-l argumente, și întoarce-i ieșirea
stare. Acest lucru este util atunci când definiți o funcție al cărei nume este același cu un shell
builtin, păstrând funcționalitatea builtin-ului în cadrul funcției. The cd
builtin este de obicei redefinit în acest fel. Starea returnării este falsă dacă
încorporat în coajă nu este o comandă încorporată în shell.

apelantului [expres]
Returnează contextul oricărui apel de subrutină activ (o funcție shell sau un script
executat cu . or sursă încorporate). Fără expres, apelantului afișează linia
numărul și numele fișierului sursă al apelului subrutinei curente. Dacă un non-negativ
întreg este furnizat ca expres, apelantului afișează numărul liniei, numele subrutinei și
fișier sursă corespunzător acelei poziții în stiva de apeluri de execuție curentă.
Aceste informații suplimentare pot fi utilizate, de exemplu, pentru a tipări o urmă de stivă. The
cadrul curent este cadrul 0. Valoarea returnată este 0, cu excepția cazului în care shell-ul nu se execută
un apel de subrutină sau expres nu corespunde unei poziții valide în apel
grămadă.

cd [-L|[-P [-e]] [-@]] [dir]
Schimbați directorul curent în dir. dacă dir nu este furnizat, valoarea ACASA
variabila shell este implicită. Urmează orice argumente suplimentare dir sunt ignorate.
Variabila CDPATH definește calea de căutare pentru directorul care conține dir: fiecare
numele directorului în CDPATH este căutat dir. Nume alternative de directoare în
CDPATH sunt separate prin două puncte (:). Un nume de director nul în CDPATH e aceeasi
ca directorul curent, adică ``.''. Dacă dir începe cu o bară oblică (/), apoi CDPATH
nu este folosit. -P cauzele opțiunii cd pentru a utiliza structura directorului fizic prin
rezolvarea legăturilor simbolice în timpul traversării dir și înainte de procesarea instanțelor de ..
in dir (vezi și -P opțiune la set comandă încorporată); cel -L forțe de opțiune
legături simbolice de urmat prin rezolvarea legăturii după procesarea instanțelor de
.. in dir. Dacă .. apare în dir, este procesat prin eliminarea imediată
componenta de cale anterioară din dir, înapoi la o bară oblică sau la începutul lui dir. Dacă
il -e opțiunea este furnizată cu -P, iar directorul de lucru curent nu poate fi
determinat cu succes după o schimbare cu succes a directorului, cd va returna o
statut nereușit. Pe sistemele care îl suportă, -@ opțiunea prezintă
atribute extinse asociate unui fișier ca director. Un argument al - is
convertit la $OLDPWD înainte de a încerca schimbarea directorului. Dacă un non-gol
numele directorului de la CDPATH este folosit, sau dacă - este primul argument, iar cel
modificarea directorului a avut succes, calea absolută a noului director de lucru
este scris la ieșirea standard. Valoarea returnată este adevărată dacă directorul a fost
schimbat cu succes; fals altfel.

comandă [-pVv] comandă [arg ...]
Alerga comandă cu args suprimarea căutării normale a funcției shell. Doar încorporat
comenzi sau comenzi găsite în PATH sunt executate. Dacă -p este dată opțiunea,
căutarea pentru comandă se realizează folosind o valoare implicită pentru PATH acesta este
garantat pentru a găsi toate utilitățile standard. Dacă fie -V or -v opțiunea este
furnizate, o descriere a comandă este tipărită. The -v opțiunea provoacă un singur cuvânt
indicând comanda sau numele fișierului folosit pentru a invoca comandă să fie afișat; cel -V
opțiunea produce o descriere mai detaliată. Dacă -V or -v opțiunea este furnizată,
starea de ieșire este 0 dacă comandă a fost găsit și 1 dacă nu. Dacă nici una dintre opțiuni nu este
furnizate și a apărut o eroare sau comandă nu poate fi găsit, starea de ieșire este 127.
În caz contrar, starea de ieșire a comandă builtin este starea de ieșire a comandă.

compgen [opțiune] [cuvânt]
Generați posibile potriviri de finalizare pentru cuvânt in conformitate cu opțiunes, care poate
fie orice opțiune acceptată de către Completă builtin cu excepția -p și -r, și
scrieți potrivirile la ieșirea standard. Când utilizați -F or -C opțiuni,
diverse variabile shell stabilite de facilitățile de completare programabile, în timp ce
disponibil, nu va avea valori utile.

Potrivirile vor fi generate în același mod ca și în cazul finalizării programabile
codul le generase direct dintr-o specificație de completare cu aceeași
steaguri. Dacă cuvânt este specificat, doar acele completări se potrivesc cuvânt va fi
afișat.

Valoarea returnată este adevărată, cu excepția cazului în care este furnizată o opțiune nevalidă sau nu există potriviri
generat.

Completă [-abcdefgjksuv] [-o opțiune comp] [-DE] [-A acțiune] [-G globpat] [-W listă de cuvinte] [-F
funcţie] [-C comandă]
[-X filterpat] [-P prefix] [-S sufix] nume [nume ...]
Completă -relatii cu publicul [-DE] [nume ...]
Specificați cum argumente fiecare nume ar trebui completat. Dacă -p opțiunea este
furnizate sau, dacă nu sunt furnizate opțiuni, specificațiile de finalizare existente sunt
tipărite într-un mod care să le permită să fie reutilizate ca intrare. The -r opțiunea elimină a
caietul de sarcini de finalizare pentru fiecare nume, sau, dacă nu numes sunt furnizate, toate
caietul de sarcini de finalizare. The -D opțiunea indică faptul că opțiunile rămase și
acțiunile ar trebui să se aplice la finalizarea comenzii ``default''; adică finalizarea
încercat la o comandă pentru care nu a fost definită anterior nicio finalizare. The -E
opțiunea indică faptul că opțiunile și acțiunile rămase ar trebui să se aplice pentru „gol”
finalizarea comenzii; adică completarea încercată pe o linie goală.

Procesul de aplicare a acestor specificații de completare atunci când completarea cuvintelor este
încercat este descris mai sus sub Programabile Finalizare tranzactiei.

Alte opțiuni, dacă sunt specificate, au următoarele semnificații. Argumentele la -G,
-W, și -X opțiuni (și, dacă este necesar, -P și -S opțiuni) ar trebui citate la
protejați-le de expansiune înainte de Completă builtin este invocat.
-o opțiune comp
opțiune comp controlează mai multe aspecte ale comportamentului compspec dincolo
simpla generare de completari. opțiune comp poate fi unul dintre:
bashdefault
Efectuați restul implicit pocni completări dacă compspec
nu generează potriviri.
lipsă Utilizați completarea implicită a numelui de fișier din readline dacă compspec
nu generează potriviri.
nume de nume
Efectuați completarea numelui directorului dacă compspec generează nr
chibrituri.
nume de fișiere
Spuneți readline că compspec generează nume de fișiere, așa că poate
efectuați orice procesare specifică numelui de fișier (cum ar fi adăugarea unei bare oblice la
nume de director, citarea caracterelor speciale sau suprimarea
spații de sfârșit). Destinat să fie utilizat cu funcții shell.
noquote Spuneți readline să nu citeze cuvintele completate dacă sunt
nume de fișiere (citarea numelor de fișiere este implicită).
nici un spațiu Spuneți readline să nu adauge un spațiu (prestabilit) la cuvinte
finalizat la sfârșitul liniei.
plusdirs
După ce sunt generate orice potriviri definite de compspec, directorul
se încearcă completarea numelui și orice potrivire sunt adăugate la
rezultatele celorlalte acțiuni.
-A acțiune
acțiune poate fi unul dintre următoarele pentru a genera o listă de posibile
completari:
alias Nume de pseudonim. Poate fi specificat și ca -a.
arrayvar
Nume de variabile matrice.
legare Citeste linia nume de legare a tastelor.
builtin Numele comenzilor interne ale shell-ului. Poate fi specificat și ca -b.
comandă Numele comenzilor. Poate fi specificat și ca -c.
director
Nume de director. Poate fi specificat și ca -d.
invalid
Numele shell-urilor interne dezactivate.
activat Numele elementelor interne de shell activate.
exporturile Numele variabilelor shell exportate. Poate fi specificat și ca -e.
fişier Nume de fișiere. Poate fi specificat și ca -f.
funcţie
Numele funcțiilor shell.
grup Nume de grup. Poate fi specificat și ca -g.
topic de ajutor
Subiectele de ajutor așa cum sunt acceptate de ajutor incorporat.
nume de gazdă
Nume de gazdă, așa cum sunt preluate din fișierul specificat de HOSTFILE coajă
variabilă.
muncă Numele jobului, dacă controlul jobului este activ. Poate fi specificat și ca -j.
cuvinte cheie Shell cuvinte rezervate. Poate fi specificat și ca -k.
funcţionare Numele joburilor care rulează, dacă controlul jobului este activ.
serviciu Nume de servicii. Poate fi specificat și ca -s.
setopt Argumente valide pentru -o opțiune la set incorporat.
magazin Numele opțiunilor Shell așa cum sunt acceptate de magazin incorporat.
semnal Nume de semnal.
oprit Numele lucrărilor oprite, dacă controlul lucrărilor este activ.
utilizator Nume de utilizatori. Poate fi specificat și ca -u.
variabil
Numele tuturor variabilelor shell. Poate fi specificat și ca -v.
-C comandă
comandă este executat într-un mediu subshell și ieșirea sa este folosită ca
eventualele completări.
-F funcţie
Funcția shell funcţie este executat în mediul shell curent.
Când funcția este executată, primul argument ($1) este numele
comandă ale cărei argumente sunt în curs de completare, al doilea argument ($2) este
cuvântul fiind completat și al treilea argument ($3) este cuvântul care precede
cuvântul fiind completat pe linia de comandă curentă. Când se termină,
eventualele completări sunt preluate din valoarea lui COMPREPLY
variabilă matrice.
-G globpat
Modelul de extindere a numelui de cale globpat este extins pentru a genera posibilul
completări.
-P prefix
prefix se adaugă până la urmă la începutul fiecărei finalizări posibile
au fost aplicate alte variante.
-S sufix
sufix este atașat la fiecare completare posibilă după ce au toate celelalte opțiuni
a fost aplicat.
-W listă de cuvinte
listă de cuvinte este împărțit folosind caracterele din IFS variabilă specială ca
delimitatori și fiecare cuvânt rezultat este extins. Finalizările posibile
sunt membrii listei rezultate care se potrivesc cu cuvântul care se completează.
-X filterpat
filterpat este un model așa cum este utilizat pentru extinderea numelui de cale. Se aplica la
lista completărilor posibile generate de opțiunile precedente și
argumente și fiecare completare potrivire filterpat este eliminat din listă.
Un lider ! in filterpat neagă tiparul; în acest caz, orice completare
nepotrivit filterpat este eliminat.

Valoarea returnată este adevărată, cu excepția cazului în care este furnizată o opțiune nevalidă, o altă opțiune decât
-p or -r este furnizat fără a nume argument, se încearcă eliminarea a
caietul de sarcini de finalizare pentru a nume pentru care nu există specificații sau o eroare
apare prin adăugarea unei specificații de finalizare.

compopt [-o opțiune] [-DE] [+o opțiune] [nume]
Modificați opțiunile de finalizare pentru fiecare nume in conformitate cu opțiunes, sau pentru
finalizare în curs de execuție dacă nu numesunt furnizate. Daca nu opțiunesunt date,
afișați opțiunile de finalizare pentru fiecare nume sau finalizarea curentă. The
valorile posibile ale opțiune sunt cele valabile pentru Completă încorporat descris mai sus.
-D opțiunea indică faptul că opțiunile rămase ar trebui să se aplice la „implicit”
finalizarea comenzii; adică finalizarea încercată la o comandă pentru care nr
finalizarea a fost definită anterior. The -E opțiunea indică faptul că restul
opțiunile ar trebui să se aplice la finalizarea comenzii „vide”; adică s-a încercat finalizarea
pe o linie goală.

Valoarea returnată este adevărată, cu excepția cazului în care este furnizată o opțiune nevalidă, se face o încercare
pentru a modifica opțiunile pentru a nume pentru care nu există specificații de finalizare sau
apare o eroare de ieșire.

continua [n]
Reluați următoarea iterație a anexării pentru, în timp ce, până la, Sau selecta buclă. Dacă n
este specificat, reluați la nbucla de încadrare. n trebuie să fie ≥ 1. Dacă n este mai mare
decât numărul de bucle de încadrare, ultima buclă de închidere („nivelul superior”
buclă) este reluată. Valoarea returnată este 0 dacă nu n nu este mai mare sau egal cu
1.

declara [-aAfFgilnrtux] [-p] [nume[=valoare] ...]
tipărit [-aAfFgilnrtux] [-p] [nume[=valoare] ...]
Declarați variabile și/sau atribuiți-le atribute. Daca nu numesunt date apoi afișate
valorile variabilelor. The -p opțiunea va afișa atributele și valorile
fiecare nume. Când -p este folosit cu nume argumente, opțiuni suplimentare, altele decât -f
și -F, sunt ignorate. Când -p se livreaza fara nume argumente, se va afișa
atributele și valorile tuturor variabilelor având atributele specificate de
opțiuni suplimentare. Dacă nu sunt furnizate alte opțiuni -p, declara se va afișa
atributele și valorile tuturor variabilelor shell. The -f opțiunea va restricționa
funcții de afișare în shell. The -F opțiunea inhibă afișarea funcției
definiții; sunt tipărite doar numele și atributele funcției. Dacă extdebug
Opțiunea shell este activată folosind magazin, numele fișierului sursă și numărul liniei unde este
funcția este definită sunt de asemenea afișate. The -F opțiunea implică -f. -g
opțiunea forțează ca variabilele să fie create sau modificate la sfera globală, chiar și atunci când
declara este executat într-o funcție shell. Este ignorat în toate celelalte cazuri. The
Următoarele opțiuni pot fi utilizate pentru a restricționa ieșirea la variabilele cu valoarea specificată
atribut sau pentru a da atribute variabilelor:
-a Fiecare nume este o variabilă matrice indexată (vezi Arrays de mai sus).
-A Fiecare nume este o variabilă matrice asociativă (vezi Arrays de mai sus).
-f Utilizați numai nume de funcții.
-i Variabila este tratată ca un număr întreg; evaluarea aritmetică (vezi ARITMETIC
EVALUARE de mai sus) se realizează atunci când variabilei i se atribuie o valoare.
-l Când variabilei i se atribuie o valoare, toate caracterele majuscule sunt
convertit în litere mici. Atributul majuscule este dezactivat.
-n Dă-le fiecăruia nume il numeref atribut, făcându-l o referință de nume la altul
variabil. Acea altă variabilă este definită de valoarea lui nume. Toate
referințe și atribuții către nume, cu excepția schimbării -n atribut
în sine, sunt efectuate asupra variabilei la care face referire numevaloarea lui. The -n
atributul nu poate fi aplicat variabilelor matrice.
-r Faceți suporterii vedetele spectacolului, evidențiați contribuțiile noilor veniți și distrați-vă! Nu vă fie teamă să colaborați și să acordați credit altor grupuri care se ocupă de probleme similare. Prezentați-vă la cauzele lor, karma este reală! numeeste doar în citire. Aceste nume nu pot fi apoi atribuite valori prin
declarații de atribuire ulterioare sau dezactivate.
-t Dă-le fiecăruia nume il urmări atribut. Funcțiile urmărite moștenesc REMEDIERE și
A REVENI capcane din cochilia chematoare. Atributul trace nu are nicio specialitate
sens pentru variabile.
-u Când variabilei i se atribuie o valoare, toate caracterele minuscule sunt
convertit în majuscule. Atributul cu litere mici este dezactivat.
-x marca numes pentru export la comenzile ulterioare prin mediu.

Utilizarea „+” în loc de „-” dezactivează atributul, cu excepțiile care
+a nu poate fi folosit pentru a distruge o variabilă matrice și +r nu va elimina doar citirea
atribut. Când este utilizat într-o funcție, declara și tipărit face fiecare nume local, ca
cu local comanda, cu excepția cazului în care -g opțiunea este furnizată. Dacă un nume de variabilă este
urmat de =valoare, valoarea variabilei este setată la valoare. Atunci când se utilizează -a or -A
și sintaxa de atribuire compusă pentru a crea variabile matrice, atribute suplimentare
nu intră în vigoare până la sarcinile ulterioare. Valoarea returnată este 0, cu excepția cazului în care an
este întâlnită o opțiune invalidă, se încearcă definirea unei funcții folosind ``-f
foo=bar'', se încearcă atribuirea unei valori unei variabile numai în citire, o încercare
este făcut să atribuie o valoare unei variabile matrice fără a utiliza compusul
sintaxa de atribuire (vezi Arrays mai sus), unul dintre nume nu este un shell valid
nume variabilă, se încearcă dezactivarea stării numai în citire pentru o versiune numai în citire
variabilă, se încearcă dezactivarea stării matricei pentru o variabilă matrice sau un
se încearcă afișarea unei funcții inexistente cu -f.

dirs [-clpv] [+n] [-n]
Fără opțiuni, afișează lista directoarelor memorate în prezent. The
Afișarea implicită este pe o singură linie cu nume de directoare separate prin spații.
Directoarele sunt adăugate la listă cu pushd comanda; cel popd comanda elimină
intrări din listă.
-c Șterge stiva de directoare ștergând toate intrările.
-l Produce o listă folosind căi complete; formatul implicit de listare folosește a
tilde pentru a desemna directorul principal.
-p Imprimați stiva de directoare cu o intrare pe linie.
-v Imprimați stiva de directoare cu o intrare pe linie, prefixând fiecare intrare cu
indicele său în stivă.
+n Afișează nintrarea numărând din stânga listei afișate de dirs cand
invocat fără opțiuni, începând cu zero.
-n Afișează nintrarea numărând din dreapta listei afișate de dirs
atunci când este invocat fără opțiuni, începând cu zero.

Valoarea returnată este 0, cu excepția cazului în care este furnizată o opțiune nevalidă sau n indici dincolo de
sfârşitul stivei de directoare.

dezmoșteni [-aer] [-h] [spec ...]
Fără opțiuni, eliminați fiecare spec din tabelul locurilor de muncă active. Dacă spec is
nu este prezent și nici cel -a nici -r este furnizată opțiunea curent muncă is
folosit. Dacă -h opțiunea este dată, fiecare spec nu este scos de pe masă, dar
este marcat astfel încât LUMEA nu este trimis la job dacă shell-ul primește a LUMEA. Dacă
Nu. spec este furnizat, the -a opțiune înseamnă eliminarea sau marcarea tuturor lucrărilor; cel -r
opțiune fără a spec argumentul restricționează operarea la executarea joburilor. Întoarcerea
valoarea este 0, cu excepția cazului în care a spec nu specifică un loc de muncă valid.

ecou [-neE] [arg ...]
Ieșiți args, separate prin spații, urmate de o nouă linie. Starea de retur este
0 dacă nu apare o eroare de scriere. Dacă -n este specificat, noua linie finală este
suprimat. Dacă -e este dată opțiunea, interpretarea următoarei bară oblică inversă-
caracterele escape sunt activate. The -E opțiunea dezactivează interpretarea acestora
caractere de escape, chiar și pe sistemele în care sunt interpretate implicit. The
xpg_echo Opțiunea shell poate fi utilizată pentru a determina dinamic dacă sau nu ecou
extinde aceste caractere de escape în mod implicit. ecou nu interpretează -- a însemna
sfârşitul opţiunilor. ecou interpretează următoarele secvențe de evadare:
\a alertă (clopot)
\b spate spate
\c suprima ieșirea ulterioară
\e
\E un personaj de evadare
\f furaj de formulare
\n linie nouă
\r retur transport
\t filă orizontală
\v filă verticală
\\ backslash
\0NNN caracterul de opt biți a cărui valoare este valoarea octală NNN (de la zero la trei
cifre octale)
\xHH caracterul de opt biți a cărui valoare este valoarea hexazecimală HH (unul sau doi
cifre hexadecimale)
\uHHHH caracterul Unicode (ISO/IEC 10646) a cărui valoare este valoarea hexazecimală
HHHH (una până la patru cifre hexadecimale)
\UHHHHHHHH
caracterul Unicode (ISO/IEC 10646) a cărui valoare este valoarea hexazecimală
HHHHHHHH (una până la opt cifre hexadecimale)

permite [-a] [-dnps] [-f nume de fișier] [nume ...]
Activați și dezactivați comenzile shell încorporate. Dezactivarea unei încorporate permite un disc
comandă care are același nume ca o shell încorporată pentru a fi executată fără
specificarea unui nume complet de cale, chiar dacă shell-ul caută în mod normal modulele interne
înainte de comenzile de pe disc. Dacă -n este folosit, fiecare nume este dezactivat; in caz contrar, nume sunt
activat. De exemplu, pentru a utiliza test binar găsit prin intermediul PATH în loc de
versiunea shell încorporată, rulați ``enable -n test''. The -f opțiune înseamnă încărcarea noului
comandă încorporată nume din obiectul comun nume de fișier, pe sisteme care suportă dinamica
Se încarcă. The -d opțiunea va șterge o versiune încorporată încărcată anterior -f. Daca nu
nume sunt date argumente, sau dacă -p este furnizată opțiunea, o listă de shell-uri încorporate
este tipărită. Fără alte argumente de opțiune, lista constă din toate shell-urile activate
încorporate. Dacă -n este furnizat, sunt imprimate numai modulele interne dezactivate. Dacă -a is
furnizate, lista tipărită include toate elementele încorporate, cu indicarea dacă sau
nu fiecare este activat. Dacă -s este furnizat, ieșirea este limitată la POSIX
special încorporate. Valoarea returnată este 0, cu excepția cazului în care a nume nu este un shell încorporat sau
există o eroare la încărcarea unei noi funcții încorporate dintr-un obiect partajat.

eval [arg ...]
argE-urile sunt citite și concatenate împreună într-o singură comandă. Această comandă este
apoi citit și executat de shell, iar starea sa de ieșire este returnată ca valoare
of eval. Dacă nu există args, sau doar argumente nule, eval returnează 0.

Exec [-cl] [-a nume] [comandă [argumente]]
If comandă este specificat, înlocuiește shell-ul. Nu este creat niciun proces nou. The
argumente devin argumentele pentru comandă. Dacă -l opțiunea este furnizată, carcasa
plasează o liniuță la începutul argumentului zero la care a fost transmis comandă. Acest lucru este
ceea ce Logare(1) face. The -c cauzele opțiunii comandă a fi executat cu un gol
mediu inconjurator. Dacă -a este furnizat, cochilia trece nume ca argument zero la
comanda executată. Dacă comandă nu poate fi executat dintr-un motiv oarecare, o non-
shell-ul interactiv iese, cu excepția cazului în care execfail opțiunea shell este activată. In aceea
caz, returnează eșec. Un shell interactiv returnează eșec dacă fișierul nu poate
fi executat. Dacă comandă nu este specificat, orice redirecționări intră în vigoare în
shell-ul curent, iar starea de returnare este 0. Dacă există o eroare de redirecționare,
starea de returnare este 1.

ieşire [n]
Determină ieșirea shell-ului cu starea n. Dacă n este omis, starea de ieșire este
cel al ultimei comenzi executate. O capcană pe EXIT este executat înainte de shell
se termină.

exporturile [-fn] [nume[=cuvânt]] ...
exporturile -p
Furnizat nume sunt marcate pentru export automat în mediul de
comenzile executate ulterior. Dacă -f este dată opțiunea nume a se referi la
funcții. Daca nu nume sunt date, sau dacă -p este furnizată opțiunea, o listă de nume
din toate variabilele exportate este tipărită. The -n opțiunea determină proprietatea de export să
fi eliminat din fiecare nume. Dacă un nume de variabilă este urmat de =cuvânt, valoarea a
variabila este setată la cuvânt. exporturile returnează o stare de ieșire de 0, cu excepția cazului în care este invalid
este întâlnită opțiunea, una dintre nume nu este un nume valid de variabilă shell sau -f
este furnizat cu a nume asta nu este o functie.

fc [-e ename] [-lnr] [primul] [ultimul]
fc -s [bătaie=reprezentant] [cmd]
Prima formă selectează o serie de comenzi din primul la ultimul din lista de istorie
și le afișează sau le editează și le reexecută. First și ultimul poate fi specificat ca a
șir (pentru a localiza ultima comandă care începe cu acel șir) sau ca număr (an
index în lista de istorie, unde un număr negativ este folosit ca o compensare față de
numărul de comandă curent). Dacă ultimul nu este specificat, este setat la comanda curentă
pentru listare (astfel încât ``fc -l -10'' să afișeze ultimele 10 comenzi) și să primul
in caz contrar. Dacă primul nu este specificat, este setată la comanda anterioară pentru editare
și -16 pentru listare.

-n opțiunea suprimă numerele de comandă la listare. The -r opțiunea se inversează
ordinea comenzilor. Dacă -l este dată, comenzile sunt listate pe
ieșire standard. În rest, editorul dat de ename este invocat pe un fișier
care conțin acele comenzi. Dacă ename nu este dat, valoarea lui FCEDIT variabil
este folosit, iar valoarea de EDITOR if FCEDIT nu este setat. Dacă nicio variabilă nu este setată,
vi este folosit. Când editarea este completă, comenzile editate sunt repetate și executate.

În a doua formă, comandă este re-executat după fiecare instanță de bătaie este înlocuit
by reprezentant. Comandă este interpretat la fel ca primul de mai sus. Un alias util de folosit
acesta este ``r="fc -s"'', astfel încât tastând ``r cc'' rulează ultima comandă începând cu
``cc'' și tastând ``r'' reexecută ultima comandă.

Dacă se folosește primul formular, valoarea returnată este 0, cu excepția cazului în care este o opțiune nevalidă
întâlnit sau primul or ultimul specificați liniile istorice în afara intervalului. Dacă -e opțiune
este furnizat, valoarea returnată este valoarea ultimei comenzi executate sau eșec
dacă apare o eroare cu fișierul temporar de comenzi. Dacă a doua formă este
folosit, starea de returnare este cea a comenzii re-executate, cu excepția cazului în care cmd nu
specificați o linie de istoric validă, caz în care fc returnează eșecul.

fg [spec]
Relua spec în prim-plan și transformă-l în locul de muncă actual. Dacă spec nu este
prezent, noțiunea de coajă a curent muncă este folosit. Valoarea de returnare este aceea
a comenzii plasate în prim-plan sau eșec dacă este executat când este controlul jobului
dezactivat sau, când rulează cu controlul jobului activat, dacă spec nu specifică un valid
job sau spec specifică un job care a fost început fără control al jobului.

getopts optstring nume [args]
getopts este folosit de procedurile shell pentru a analiza parametrii poziționali. optstring
conține caracterele de opțiune care trebuie recunoscute; dacă un caracter este urmat de a
două puncte, se așteaptă ca opțiunea să aibă un argument, care ar trebui separat de
aceasta prin spatiu alb. Caracterele două puncte și semnul de întrebare nu pot fi folosite ca
caractere de opțiune. De fiecare dată când este invocat, getopts plasează următoarea opțiune în
variabila shell nume, inițializare nume dacă nu există, iar indexul lui
următorul argument care urmează să fie procesat în variabilă OPTIND. OPTIND este inițializată la 1
de fiecare dată când shell-ul sau un script shell este invocat. Când o opțiune necesită un
argument, getopts plasează acel argument în variabilă OPTARG. Cochilia face
nu resetat OPTIND automat; trebuie să fie resetat manual între apeluri multiple către
getopts în cadrul aceleiași invocari de shell dacă urmează să fie utilizat un nou set de parametri.

Când se întâlnește sfârșitul opțiunilor, getopts iese cu o valoare de returnare mai mare
decât zero. OPTIND este setat la indexul primului argument non-opțiune și nume
este setat sa ?.

getopts în mod normal analizează parametrii de poziție, dar dacă sunt date mai multe argumente
in args, getopts le analizează în schimb.

getopts poate raporta erori în două moduri. Dacă primul personaj al optstring este
colon, tăcut se utilizează raportarea erorilor. În funcționare normală, mesaje de diagnosticare
sunt tipărite atunci când sunt întâlnite opțiuni nevalide sau argumente lipsă ale opțiunii. Dacă
variabila OPTERR este setat la 0, nu vor fi afișate mesaje de eroare, chiar dacă
primul personaj al optstring nu este un colon.

Dacă se vede o opțiune nevalidă, getopts locuri? în nume și, dacă nu tăcut, imprimă
un mesaj de eroare și se dezactivează OPTARG. Dacă getopts tace, caracterul de optiune
găsit este plasat în OPTARG și nu este tipărit niciun mesaj de diagnosticare.

Dacă nu se găsește un argument necesar și getopts nu tace, un semn de intrebare (?)
este plasat în nume, OPTARG este dezactivat și este tipărit un mesaj de diagnosticare. Dacă
getopts tace, apoi doua puncte (:) este plasat în nume și OPTARG este setat la
caracter de opțiune găsit.

getopts returnează true dacă o opțiune, specificată sau nespecificată, este găsită. Se întoarce
false dacă se întâlnește sfârșitul opțiunilor sau apare o eroare.

hașiș [-lr] [-p nume de fișier] [-dt] [nume]
De fiecare data hașiș este invocat, calea completă a comenzii nume este determinat de
căutând directoarele în $ PATH și amintit. Orice amintit anterior
calea este eliminată. Dacă -p opțiunea este furnizată, nu se efectuează nicio căutare a căii,
și nume de fișier este folosit ca nume de fișier complet al comenzii. The -r opțiunea provoacă
shell pentru a uita toate locațiile amintite. The -d opțiunea face ca shell-ul să uite
locația amintită a fiecăruia nume. Dacă -t opțiunea este furnizată, complet
calea către care fiecare nume corespunde este tipărită. Dacă sunt multiple nume argumentele sunt
aprovizionat cu -t, nume este tipărită înaintea căii complete cu hashing. The -l
opțiunea face ca rezultatul să fie afișat într-un format care poate fi reutilizat ca intrare. Dacă
nu se dau argumente, sau numai dacă -l este furnizat, informații despre reținut
comenzile este tipărită. Starea de returnare este adevărată, cu excepția cazului în care a nume nu se găsește sau an
este furnizată o opțiune nevalidă.

ajutor [-dms] [model]
Afișează informații utile despre comenzile încorporate. Dacă model este specificat, ajutor
oferă ajutor detaliat cu privire la potrivirea tuturor comenzilor model; altfel ajutor pentru toate
sunt tipărite builtins și structuri de control shell.
-d Afișați o scurtă descriere a fiecăruia model
-m Afișați descrierea fiecăruia model într-un format asemănător paginii de manual
-s Afișați doar un scurt rezumat de utilizare pentru fiecare model

Starea de returnare este 0, cu excepția cazului în care nu se potrivește nicio comandă model.

istorie [n]
istorie -c
istorie -d compensa
istorie -anrw [nume de fișier]
istorie -p arg [arg ...]
istorie -s arg [arg ...]
Fără opțiuni, afișați lista istoricului comenzilor cu numere de rând. Liniile enumerate
cu * au fost modificate. Un argument al n enumeră doar ultima n linii. Dacă
variabila shell HIST FORMAT ORĂ este setat și nu nul, este folosit ca șir de format
pentru strftime(3) pentru a afișa marca temporală asociată fiecărui istoric afișat
intrare. Nu este tipărit niciun spațiu liber intermediar între marcajul de timp formatat și
linia istoriei. Dacă nume de fișier este furnizat, este folosit ca nume al fișierului istoric;
dacă nu, valoarea lui HISTFILE este folosit. Opțiunile, dacă sunt furnizate, au următoarele
semnificații:
-c Ștergeți lista istorică ștergând toate intrările.
-d compensa
Ștergeți intrarea în istoric la poziție compensa.
-a Adăugați liniile de istorie „noile” (liniile de istorie introduse de la început
a curentului pocni sesiune) în fișierul istoric.
-n Citiți liniile istorice care nu sunt deja citite din fișierul istoric în
lista istorică curentă. Acestea sunt linii atașate fișierului istoric de atunci
începutul curentului pocni sesiune.
-r Citiți conținutul fișierului istoric și adăugați-l la istoricul curent
listă.
-w Scrieți lista istorică curentă în fișierul istoric, suprascriind istoricul
conținutul fișierului.
-p Efectuați înlocuirea istoricului pentru următoarele args și afișați rezultatul pe
ieșirea standard. Nu stochează rezultatele în lista istorică. Fiecare
arg trebuie citat pentru a dezactiva extinderea normală a istoricului.
-s Păstrați args în lista istorică ca o singură intrare. Ultima comandă în
lista istorică este eliminată înainte de args sunt adăugate.

În cazul în care HIST FORMAT ORĂ este setată variabila, informațiile de marcare temporală asociate cu
fiecare intrare istorică este scrisă în fișierul istoric, marcată cu comentariul istoric
caracter. Când fișierul istoric este citit, rândurile care încep cu comentariul istoric
caracterul urmat imediat de o cifră sunt interpretate ca marcaje temporale pentru
linia anterioară a istoriei. Valoarea returnată este 0, cu excepția cazului în care este o opțiune nevalidă
întâlnită, apare o eroare la citirea sau scrierea fișierului istoric, o eroare invalidă
compensa este furnizat ca argument pentru -d, sau extinderea istoricului furnizată ca un
argument pentru -p eșuează.

de locuri de muncă [-lnprs] [ spec ... ]
de locuri de muncă -x comandă [ args ... ]
Primul formular listează joburile active. Opțiunile au următoarele semnificații:
-l Listați ID-urile proceselor în plus față de informațiile normale.
-n Afișați informații numai despre joburile care s-au schimbat de la utilizator
a fost informat ultima dată despre starea lor.
-p Listați numai ID-ul de proces al liderului grupului de procese al jobului.
-r Afișează numai lucrările în curs de desfășurare.
-s Afișează numai lucrările oprite.

If spec este dat, rezultatul este limitat la informații despre acel loc de muncă. The
starea de returnare este 0, cu excepția cazului în care este întâlnită o opțiune nevalidă sau o opțiune invalidă spec is
furnizat.

În cazul în care -x opțiunea este furnizată, de locuri de muncă înlocuiește orice spec gasit in comandă or args
cu ID-ul grupului de procese corespunzător și se execută comandă trecându-l args,
returnându-și starea de ieșire.

ucide [-s sigspec | -n semnum | -sigspec] [pid | spec] ...
ucide -l [sigspec | stare_ieșire]
Trimite semnalul numit de sigspec or semnum la procesele numite de pid or
spec. sigspec este fie un nume de semnal fără majuscule, cum ar fi SIGKILL (cu sau
fara SIG prefix) sau un număr de semnal; semnum este un număr semnal. Dacă sigspec
nu este prezent, atunci TERMEN ȚINTĂ este asumat. Un argument al -l listează numele semnalelor.
Dacă sunt furnizate argumente când -l este dat, numele semnalelor
corespunzătoare argumentelor sunt listate, iar starea de returnare este 0
stare_ieșire argument pentru -l este un număr care specifică fie un număr de semnal, fie
starea de ieșire a unui proces încheiat cu un semnal. ucide returnează adevărat dacă cel puțin unul
semnalul a fost trimis cu succes sau fals dacă apare o eroare sau este o opțiune invalidă
întâlnite.

lăsa arg [arg ...]
Fiecare arg este o expresie aritmetică care trebuie evaluată (vezi ARITMETIC EVALUARE
de mai sus). Dacă ultimul arg se evaluează la 0, lăsa returnează 1; 0 este returnat altfel.

local [opțiune] [nume[=valoare] ...]
Pentru fiecare argument, o variabilă locală numită nume este creat și atribuit valoare.
opțiune poate fi oricare dintre opțiunile acceptate de declara. Când local este folosit în cadrul unui
funcția, determină variabila nume să aibă o sferă vizibilă limitată la asta
funcția și copiii ei. Fără operanzi, local scrie o listă de local
variabile la ieșirea standard. Este o eroare de utilizat local când nu în cadrul unei
funcţie. Starea de returnare este 0 dacă nu local este folosit în afara unei funcții, an
invalid nume este furnizat, sau nume este o variabilă numai în citire.

Logout Ieșiți dintr-un shell de conectare.

mapfile [-n conta] [-O origine] [-s conta] [-t] [-u fd] [-C suna inapoi] [-c cuantic] [mulțime]
readarray [-n conta] [-O origine] [-s conta] [-t] [-u fd] [-C suna inapoi] [-c cuantic]
[mulțime]
Citiți linii de la intrarea standard în variabila matrice indexată mulțime, Sau de la
descriptor de fișier fd dacă -u opțiunea este furnizată. Variabila MAPFILE este
lipsă mulțime. Opțiunile, dacă sunt furnizate, au următoarele semnificații:
-n Copiați cel mult conta linii. Dacă conta este 0, toate liniile sunt copiate.
-O Începeți să vă atribuiți mulțime la index origine. Indicele implicit este 0.
-s Aruncă-l pe primul conta rânduri citite.
-t Eliminați o linie nouă de la fiecare linie citită.
-u Citiți linii din descriptorul fișierului fd în loc de intrarea standard.
-C Evalua suna inapoi de fiecare data cuantic se citesc rândurile. The -c opțiunea specifică
cuantic.
-c Specificați numărul de linii citite între fiecare apel către suna inapoi.

If -C este specificat fără -c, valoarea implicită este 5000. Când suna inapoi is
evaluat, i se furnizează indexul următorului element de matrice care urmează să fie alocat și
linia care urmează să fie atribuită acelui element ca argumente suplimentare. suna inapoi is
evaluat după ce linia este citită, dar înainte ca elementul de matrice să fie atribuit.

Dacă nu este furnizat cu o origine explicită, mapfile se va limpezi mulțime înainte de a atribui
să-l.

mapfile returnează cu succes, cu excepția cazului în care o opțiune sau un argument de opțiune este nevalid
furnizat, mulțime este invalid sau neatribuibil sau dacă mulțime nu este o matrice indexată.

popd [-n] [+n] [-n]
Elimină intrările din stiva de directoare. Fără argumente, elimină partea de sus
directorul din stivă și efectuează a cd în noul director de top. Argumente,
dacă sunt furnizate, au următoarele semnificații:
-n Suprimă schimbarea normală a directorului la eliminarea directoarelor din
stiva, astfel încât numai stiva să fie manipulată.
+n Îndepărtează nintrarea numărând din stânga listei afișate de dirs,
începând cu zero. De exemplu: ``popd +0'' elimină primul director,
``popd +1'' al doilea.
-n Îndepărtează nintrarea numărând din dreapta listei afișate de dirs,
începând cu zero. De exemplu: ``popd -0'' elimină ultimul director,
``popd -1'' penultimul.

În cazul în care popd comanda are succes, a dirs se efectuează de asemenea, iar întoarcerea
starea este 0. popd returnează false dacă este întâlnită o opțiune nevalidă, directorul
stiva este goală, este specificată o intrare de stivă de director inexistentă sau directorul
schimbarea eșuează.

printf [-v a fost] format [argumente]
Scrieți formatul argumente la ieșirea standard sub controlul
format. -v opțiunea face ca ieșirea să fie atribuită variabilei a fost mai degraba
decât să fie tipărit la ieşirea standard.

format este un șir de caractere care conține trei tipuri de obiecte: simplu
caractere, care sunt pur și simplu copiate în ieșirea standard, secvențe de escape de caractere,
care sunt convertite și copiate la ieșirea standard și specificațiile de format,
fiecare dintre ele determină tipărirea următoarei succesive argument. În plus față de
standard printf(1) specificații de format, printf interpretează următoarele
extensii:
%b cauze printf pentru a extinde secvențele de evadare backslash în secvențele corespunzătoare
argument (cu excepția faptului că \c termină ieșirea, face bară oblică inversă \', \", și \?
nu sunt eliminate, iar scăpările octale începând cu \0 poate conține până la patru
cifre).
%q cauze printf pentru a scoate corespunzătoare argument într-un format care poate fi
reutilizat ca intrare shell.
%(datefmt)T
cauze printf pentru a scoate șirul dată-oră rezultat în urma utilizării datefmt as
un șir de format pentru strftime(3). Corespondența argument este un număr întreg
reprezentând numărul de secunde de la epocă. Două argumente speciale
pot fi utilizate valori: -1 reprezintă ora curentă, iar -2 reprezintă
momentul în care shell-ul a fost invocat. Dacă nu este specificat niciun argument, conversia se comportă
de parcă s-ar fi dat -1. Aceasta este o excepție de la obișnuit printf comportament.

Argumentele pentru specificatorii de format fără șir sunt tratate ca constante C, cu excepția faptului că a
semnul plus sau minus este permis, iar dacă caracterul principal este un singur sau
ghilimele duble, valoarea este valoarea ASCII a următorului caracter.

format este reutilizat după cum este necesar pentru a consuma tot argumente. Dacă format
necesită mai mult argumente decât sunt furnizate, specificațiile de format suplimentar se comportă
ca și cum ar fi fost furnizată o valoare zero sau șir nul, după caz. Întoarcerea
valoarea este zero la succes, diferită de zero la eșec.

pushd [-n] [+n] [-n]
pushd [-n] [dir]
Adaugă un director în partea de sus a stivei de directoare sau rotește stiva, creând
noul vârf al stivei directorul de lucru curent. Fara argumente,
schimbă primele două directoare și returnează 0, cu excepția cazului în care stiva de directoare este
gol. Argumentele, dacă sunt furnizate, au următoarele semnificații:
-n Suprimă schimbarea normală a directorului atunci când se adaugă directoare la
stiva, astfel încât numai stiva să fie manipulată.
+n Rotește stiva astfel încât nal-lea director (numărând din stânga a
lista afisata de dirs, începând cu zero) este în partea de sus.
-n Rotește stiva astfel încât nal-lea director (numărând din dreapta a
lista afisata de dirs, începând cu zero) este în partea de sus.
dir Adaugă dir la stiva de directoare din partea de sus, făcându-l noul curent
directorul de lucru ca și cum ar fi fost furnizat ca argument pentru cd
incorporat.

În cazul în care pushd comanda are succes, a dirs se efectuează de asemenea. Dacă prima formă
este folosit, pushd returnează 0, cu excepția cazului în care CD-ul la dir eșuează. Cu a doua formă, pushd
returnează 0, cu excepția cazului în care stiva de directoare este goală, o stivă de directoare inexistentă
elementul este specificat sau directorul se schimbă la noul curent specificat
directorul eșuează.

PWD [-LP]
Tipăriți calea absolută a directorului de lucru curent. Calea este tipărită
nu conține legături simbolice dacă -P opțiunea este furnizată sau -o fizic opțiune
la set comanda încorporată este activată. Dacă -L este folosită opțiunea, numele căii
tipărite pot conține legături simbolice. Starea de returnare este 0, cu excepția cazului în care apare o eroare
în timp ce citiți numele directorului curent sau este furnizată o opțiune nevalidă.

citit [-eri] [-a un nume] [-d delim] [-i a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. ] [-n nchars] [-N nchars] [-p prompt] [-t
timeout] [-u fd] [nume ...]
O linie este citită din intrarea standard sau din descriptorul de fișier fd furnizat
ca argument la -u opțiunea, iar primul cuvânt este atribuit primului nume,
al doilea cuvânt la al doilea nume, și așa mai departe, cu cuvintele rămase și lor
separatoare de intervenţie atribuite ultimului nume. Dacă sunt mai puține cuvinte citite
din fluxul de intrare decât nume, numelor rămase li se atribuie valori goale.
Personajele din IFS sunt folosite pentru a împărți linia în cuvinte folosind aceleași reguli
shell-ul folosește pentru expansiune (descris mai sus sub Cuvânt Despicare). Bara oblică inversă
caracter (\) poate fi folosit pentru a elimina orice semnificație specială pentru următorul caracter citit
iar pentru continuarea liniei. Opțiunile, dacă sunt furnizate, au următoarele semnificații:
-a un nume
Cuvintele sunt alocate indicilor secvențiali ai variabilei matrice un nume,
incepand cu 0. un nume este nesetat înainte de a se atribui orice valoare nouă. Alte
nume argumentele sunt ignorate.
-d delim
Primul personaj al delim este folosit pentru a termina linia de intrare, mai degrabă
decât newline.
-e Dacă intrarea standard vine de la un terminal, Citeste linia (A se vedea CITESTE LINIA
de mai sus) este folosit pentru a obține linia. Readline folosește curentul (sau implicit,
dacă editarea liniilor nu a fost activă anterior) setări de editare.
-i a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match.
If Citeste linia este folosit pentru a citi linia, a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. este plasat în editare
tampon înainte de a începe editarea.
-n nchars
citit revine după citire nchars personaje în loc să aștepte o
linie completă de intrare, dar onorează un delimitator dacă este mai mic decât nchars
caracterele sunt citite înaintea delimitatorului.
-N nchars
citit revine dupa ce a citit exact nchars personaje în loc să aștepte
o linie completă de intrare, cu excepția cazului în care este întâlnită EOF sau citit timpul a expirat.
Caracterele delimitare întâlnite în intrare nu sunt tratate special și
nu cauza citit să se întoarcă până când nchars sunt citite personaje.
-p prompt
Afişa prompt pe eroare standard, fără o linie nouă în urmă, înainte
încercând să citească orice intrare. Solicitarea este afișată numai dacă este introdus
provenind dintr-un terminal.
-r Backslash nu acționează ca un caracter de evadare. Se ia în considerare bara oblică inversă
a face parte din linie. În special, o pereche backslash-newline poate să nu fie
folosit ca continuare de linie.
-s Mod silențios. Dacă intrarea vine de la un terminal, caracterele nu au ecou.
-t timeout
Provoca citit să expire și să returneze eșecul dacă o linie completă de intrare (sau a
numărul specificat de caractere) nu este citit în interior timeout secunde. timeout
poate fi un număr zecimal cu o porțiune fracțională după zecimală
punct. Această opțiune este eficientă numai dacă citit citește intrarea de la a
terminal, conductă sau alt fișier special; nu are niciun efect la citirea din
fișiere obișnuite. Dacă citit timpul a expirat, citit salvează orice intrare parțială citită în
variabila specificată nume. Dacă timeout este 0, citit revine imediat,
fără a încerca să citească nicio dată. Starea de ieșire este 0 dacă intrarea este disponibilă
pe descriptorul de fișier specificat, diferit de zero în caz contrar. Starea de ieșire este
mai mare de 128 dacă timpul de expirare este depășit.
-u fd Citiți intrarea din descriptorul fișierului fd.

Daca nu nume sunt furnizate, linia citită este atribuită variabilei RĂSPUNS.
codul de returnare este zero, cu excepția cazului în care se întâlnește sfârșitul fișierului, citit time out (în care
în cazul în care codul de returnare este mai mare decât 128), o eroare de atribuire a variabilei (cum ar fi
are loc atribuirea unei variabile numai în citire) sau este furnizat un descriptor de fișier nevalid
ca argument la -u.

numai în citire [-aAf] [-p] [nume[=cuvânt] ...]
A dat nume sunt marcate doar în citire; valorile acestora nume nu poate fi schimbat
prin atribuirea ulterioară. Dacă -f opțiunea este furnizată, funcțiile
corespunzând nume sunt atât de marcate. The -a opțiunea restricționează variabilele la
tablouri indexate; cel -A opțiunea restricționează variabilele la tablouri asociative. Dacă
ambele opțiuni sunt furnizate, -A are prioritate. Daca nu nume se dau argumente, sau
dacă -p opțiunea este furnizată, este tipărită o listă cu toate numele numai în citire. Celălalt
opțiunile pot fi utilizate pentru a restricționa ieșirea la un subset al setului de numai citire
nume. The -p opțiunea face ca rezultatul să fie afișat într-un format care poate fi reutilizat
ca intrare. Dacă un nume de variabilă este urmat de =cuvânt, valoarea variabilei este
setat la cuvânt. Starea de returnare este 0, cu excepția cazului în care este întâlnită o opțiune nevalidă, una
a nume nu este un nume valid de variabilă shell sau -f este furnizat cu a nume acea
nu este o funcție.

reveni [n]
Determină oprirea executării unei funcții și returnarea valorii specificate de n a acesteia
apelant. Dacă n este omis, starea de returnare este cea a ultimei comenzi executate în
corpul funcțional. Dacă reveni este utilizat în afara unei funcții, dar în timpul execuției unei
scenariu de către . (sursă), face ca shell-ul să nu mai execute asta
script și returnează fie n sau starea de ieșire a ultimei comenzi executate în interior
scriptul ca stare de ieșire a scriptului. Dacă n este furnizat, valoarea returnată este
cei 8 biți cei mai puțin importanți. Starea de returnare este diferită de zero dacă reveni este furnizat
un argument non-numeric sau este utilizat în afara unei funcții și nu în timpul execuției unei
scenariu de . or sursă. Orice comandă asociată cu A REVENI se execută capcana
înainte ca execuția să se reia după funcție sau script.

set [--abefhkmnptuvxBCEHPT] [-o opțiune-nume] [arg ...]
set [+abefhkmnptuvxBCEHPT] [+o opțiune-nume] [arg ...]
Fără opțiuni, numele și valoarea fiecărei variabile shell sunt afișate în a
format care poate fi reutilizat ca intrare pentru setarea sau resetarea configurației curente
variabile. Variabilele numai pentru citire nu pot fi resetate. În POSIX mod, numai coajă
sunt enumerate variabilele. Ieșirea este sortată în funcție de localitatea curentă. Când
sunt specificate opțiuni, ele setează sau dezactivează atributele shell. Au mai rămas orice argumente
după procesarea opțiunilor sunt tratate ca valori pentru parametrii de poziție și sunt
atribuit, în ordine, să $1, $2, ... $n. Opțiunile, dacă sunt specificate, au următoarele
semnificații:
-a Marcați automat variabilele și funcțiile care sunt modificate sau create
pentru exportul în mediul comenzilor ulterioare.
-b Raportați imediat starea joburilor de fundal încheiate, mai degrabă decât
înainte de următorul prompt primar. Acest lucru este eficient numai atunci când este controlul locului de muncă
activat.
-e Ieșiți imediat dacă a conducte (care poate consta dintr-un singur simplu
comandă), O listă, Sau un compus comandă (A se vedea COAJĂ GRAMATICĂ mai sus), ieșiri
cu un statut diferit de zero. Shell-ul nu iese dacă comanda eșuează
face parte din lista de comenzi imediat după a în timp ce or până la cuvânt cheie,
parte a testului care urmează if or Elif cuvinte rezervate, parte din oricare
comanda executata in a && or || listă cu excepția comenzii care urmează finalei
&& or ||, orice comandă dintr-o conductă, în afară de ultima, sau dacă este comanda
valoarea returnată este inversată cu !. Dacă o comandă compusă, alta decât a
subshell returnează o stare diferită de zero deoarece o comandă a eșuat în timp ce -e a fost
fiind ignorat, carcasa nu iese. O capcană pe ERR, dacă este setat, este executat
înainte ca obuzul să iasă. Această opțiune se aplică mediului shell și
fiecare mediu subshell separat (vezi COMMAND EXECUŢIE MEDIUL
de mai sus), și poate determina ieșirea subshell-urilor înainte de a executa toate comenzile
în subshell.

Dacă o comandă compusă sau o funcție shell se execută într-un context în care -e is
fiind ignorată, niciuna dintre comenzile executate în cadrul comenzii compuse sau
funcția organismului va fi afectată de -e setare, chiar dacă -e este setat și a
comanda returnează o stare de eșec. Dacă o comandă compusă sau o funcție shell
seturi -e în timp ce se execută într-un context în care -e este ignorată, acea setare va fi
nu au niciun efect până la comanda compusă sau comanda care conține
apelul funcției se încheie.
-f Dezactivați extinderea numelui de cale.
-h Amintiți-vă locația comenzilor pe măsură ce sunt căutate pentru execuție.
Aceasta este activată implicit.
-k Toate argumentele sub formă de declarații de atribuire sunt plasate în
mediu pentru o comandă, nu doar cele care preced numele comenzii.
-m Modul monitor. Controlul jobului este activat. Această opțiune este activată implicit pentru
shell-uri interactive pe sistemele care îl suportă (vezi JOB CONTROL de mai sus). Toate
procesele rulează într-un grup de procese separat. Când un job de fundal
termină, shell-ul imprimă o linie care conține starea sa de ieșire.
-n Citiți comenzile, dar nu le executați. Acesta poate fi folosit pentru a verifica un shell
script pentru erori de sintaxă. Acest lucru este ignorat de shell-urile interactive.
-o opțiune-nume
opțiune-nume poate fi una dintre următoarele:
allexport
La fel ca -a.
braceexpand
La fel ca -B.
emacs Utilizați o interfață de editare în linie de comandă în stil emacs. Acest lucru este activat
implicit atunci când shell-ul este interactiv, cu excepția cazului în care shell-ul este
a început cu --noeditare opțiune. Acest lucru afectează și editarea
interfata folosita pentru citit -e.
errexit La fel ca -e.
errtrace
La fel ca -E.
functrace
La fel ca -T.
hashall La fel ca -h.
histexpand
La fel ca -H.
istorie Activați istoricul comenzilor, așa cum este descris mai sus ISTORIE. Acest
opțiunea este activată implicit în shell-urile interactive.
ignoreeof
Efectul este ca și cum comanda shell ``IGNOREEOF=10'' ar fi fost
executat (vezi Coajă Variabile de mai sus).
cuvinte cheie La fel ca -k.
monitorizează La fel ca -m.
noclobber
La fel ca -C.
noexec La fel ca -n.
noglob La fel ca -f.
nolog Momentan ignorat.
notifica La fel ca -b.
substantiv La fel ca -u.
onecmd La fel ca -t.
fizic
La fel ca -P.
eşecul conductei
Dacă este setată, valoarea returnată a unei conducte este valoarea ultimei
(cea mai din dreapta) comandă pentru a ieși cu o stare diferită de zero sau zero, dacă toate
comenzile din pipeline ies cu succes. Această opțiune este
dezactivat implicit.
POSIX Schimbați comportamentul lui pocni unde operațiunea implicită diferă
de la standardul POSIX pentru a se potrivi cu standardul (POSIX mod). Vedea
VEZI SAU mai jos pentru o referire la un document care detaliază cum posix
modul afectează comportamentul lui bash.
privilegiat
La fel ca -p.
prolix La fel ca -v.
vi Utilizați o interfață de editare în linie de comandă în stil vi. Acest lucru afectează și
interfața de editare folosită pentru citit -e.
xtrace La fel ca -x.
If -o este furnizat cu nr opțiune-nume, valorile opțiunilor curente
sunt tipărite. Dacă +o este furnizat cu nr opțiune-nume, o serie de set
comenzile pentru a recrea setările curente ale opțiunii sunt afișate pe
ieșire standard.
-p Porniți privilegiat modul. În acest mod, $ENV și $BASH_ENV fișierele sunt
nu sunt procesate, funcțiile shell nu sunt moștenite din mediu și
il SHELLOPTS, BASHOPTS, CDPATH, și GLOBIGNORE variabile, dacă apar
în mediu, sunt ignorate. Dacă shell-ul este pornit cu
ID-ul utilizatorului (grup) efectiv nu este egal cu id-ul utilizatorului (grupului) real și -p
opțiunea nu este furnizată, aceste acțiuni sunt întreprinse și ID-ul de utilizator efectiv
este setat la ID-ul utilizatorului real. Dacă -p opțiunea este furnizată la pornire,
ID-ul de utilizator efectiv nu este resetat. Dezactivarea acestei opțiuni provoacă
ID-uri efective de utilizator și grup să fie setate la ID-urile reale de utilizator și grup.
-t Ieșiți după citirea și executarea unei comenzi.
-u Tratați variabilele nesetate și parametrii, alții decât parametrii speciali „@”
și „*” ca o eroare la efectuarea extinderii parametrilor. Dacă expansiunea este
încercat pe o variabilă sau un parametru nesetat, shell-ul afișează o eroare
mesaj și, dacă nu este interactiv, iese cu o stare diferită de zero.
-v Imprimați liniile de intrare shell pe măsură ce sunt citite.
-x După extinderea fiecăruia simplu comandă, pentru comanda, caz comanda, selecta
comandă sau aritmetică pentru comanda, afișați valoarea extinsă a PS4,
urmată de comandă și argumentele ei extinse sau lista de cuvinte asociată.
-B Carcasa efectuează extinderea bretelor (vezi Bretele Expansiune de mai sus). Aceasta este activată
în mod implicit.
-C Dacă este setat, pocni nu suprascrie un fișier existent cu >, >&, și <>
operatori de redirecţionare. Acest lucru poate fi suprascris la crearea fișierelor de ieșire
prin utilizarea operatorului de redirecționare >| în loc de >.
-E Dacă este setat, orice capcană ERR este moștenit de funcțiile shell, comandă
substituții și comenzi executate într-un mediu subshell. The ERR
în mod normal, capcana nu este moștenită în astfel de cazuri.
-H Permite ! înlocuirea istoriei stilului. Această opțiune este activată implicit când
shell-ul este interactiv.
-P Dacă este setat, shell-ul nu rezolvă legăturile simbolice la executarea comenzilor
precum cd care schimbă directorul de lucru curent. Folosește fizicul
în schimb, structura directoarelor. În mod implicit, pocni urmează lanţul logic al
directoare atunci când executați comenzi care schimbă directorul curent.
-T Dacă este setat, orice capcană REMEDIERE și A REVENI sunt moștenite de funcțiile shell,
substituții de comenzi și comenzi executate într-un mediu subshell.
REMEDIERE și A REVENI în mod normal, capcanele nu sunt moștenite în astfel de cazuri.
-- Dacă niciun argument nu urmează această opțiune, atunci parametrii poziționali sunt
neasezat. În caz contrar, parametrii de poziție sunt setați la args, chiar dacă
unele dintre ele încep cu a -.
- Semnalează sfârșitul opțiunilor, provoacă toate rămase args pentru a fi atribuite la
parametrii poziționali. The -x și -v opțiunile sunt dezactivate. Dacă există
Nu. args, parametrii de poziție rămân neschimbați.

Opțiunile sunt dezactivate în mod implicit, dacă nu se specifică altfel. Folosind + în loc de -
face ca aceste opțiuni să fie dezactivate. Opțiunile pot fi specificate și ca
argumente pentru o invocare a shell-ului. Setul curent de opțiuni poate fi găsit
in $-. Starea returnării este întotdeauna adevărată, cu excepția cazului în care este întâlnită o opțiune nevalidă.

schimbare [n]
Parametrii de pozitie din n+1 ... sunt redenumite în $1 .... parametrii
reprezentate prin numere $# până la $#-n+1 sunt nesetate. n trebuie să fie un non-negativ
număr mai mic sau egal cu $#. Dacă n este 0, nu se modifică niciun parametri. Dacă n is
nedată, se presupune că este 1. Dacă n este mai mare decât $#, poziționalul
parametrii nu sunt modificați. Starea returnării este mai mare decât zero dacă n este mai mare
decât $# sau mai puțin de zero; altfel 0.

magazin [-pqsu] [-o] [optname ...]
Comutați între valorile setărilor care controlează comportamentul opțional al shell-ului. Setările
pot fi fie cele enumerate mai jos, fie, dacă -o este folosită opțiunea, cele disponibile
cu -o opțiune la set comandă încorporată. Fără opțiuni, sau cu -p
opțiunea, este afișată o listă cu toate opțiunile setabile, cu indicația dacă
sau nu fiecare este setat. The -p opțiunea face ca rezultatul să fie afișat într-o formă care poate
fi reutilizat ca intrare. Alte opțiuni au următoarele semnificații:
-s Activați (setați) fiecare optname.
-u Dezactivați (dezactivați) fiecare optname.
-q Suprimă ieșirea normală (mod silențios); starea de returnare indică dacă
il optname este setat sau dezactivat. Dacă sunt multiple optname argumentele sunt date cu
-q, starea de returnare este zero dacă toate optnames sunt activate; diferit de zero
in caz contrar.
-o Restricţionează valorile lui optname să fie cele definite pentru -o opțiune la
set incorporat.

În cazul în care fie -s or -u este folosit cu nr optname argumente, magazin arata doar acelea
opțiuni care sunt setate sau, respectiv, dezactivate. Dacă nu se specifică altfel, magazin
opțiunile sunt dezactivate (dezactivate) în mod implicit.

Starea de returnare la listarea opțiunilor este zero dacă toate optnames sunt activate, non-
zero altfel. Când setați sau dezactivați opțiunile, starea de retur este zero
cu excepția cazului în care an optname nu este o opțiune shell validă.

Lista de magazin opțiunile sunt:

autocd Dacă este setat, un nume de comandă care este numele unui director este executat ca și cum ar fi
au fost argumentul pentru cd comanda. Această opțiune este folosită numai de
shell-uri interactive.
cdable_vars
Dacă este setat, un argument pentru cd comandă încorporată care nu este un director este
se presupune că este numele unei variabile a cărei valoare este directorul de schimbat
la.
cdspell Dacă este setat, erori minore de ortografie a unei componente de director în a cd
comanda va fi corectată. Erorile verificate sunt transpuse
personaje, un personaj lipsă și un personaj prea multe. În cazul în care un
corecția este găsită, numele fișierului corectat este tipărit și comanda
încasări. Această opțiune este utilizată numai de shell-urile interactive.
checkhash
Dacă este setat, pocni verifică dacă o comandă găsită în tabelul hash există înainte
încercând să o execute. Dacă o comandă hashing nu mai există, o cale normală
se efectuează căutarea.
joburi de verificare
Dacă este setat, pocni listează starea oricăror joburi oprite și care rulează anterior
ieșirea dintr-un shell interactiv. Dacă rulează lucrări, acest lucru provoacă
ieșirea trebuie amânată până când se încearcă o a doua ieșire fără intervenție
comanda (vezi JOB CONTROL de mai sus). Shell-ul amână întotdeauna ieșirea, dacă există
locurile de muncă sunt oprite.
checkwinsize
Dacă este setat, pocni verifică dimensiunea ferestrei după fiecare comandă și, dacă este necesar,
actualizează valorile de LINII și COLOANE.
cmdhist Dacă este setat, pocni încearcă să salveze toate liniile unei comenzi cu mai multe linii în
aceeași intrare în istorie. Acest lucru permite reeditarea ușoară a comenzilor cu mai multe linii.
compat31
Dacă este setat, pocni își schimbă comportamentul în cel al versiunii 3.1 în ceea ce privește
argumente citate la [[ comenzile condiționale =~ operator și local-
comparație specifică de șiruri atunci când se utilizează [[ comenzile condiționale < și >
operatori. Versiunile Bash anterioare bash-4.1 folosesc colarearea ASCII și
strcmp(3); bash-4.1 și mai târziu utilizează secvența de colare a localului curent
și strcoll(3).
compat32
Dacă este setat, pocni își schimbă comportamentul în cel al versiunii 3.2 în ceea ce privește
comparație de șiruri specifice localității atunci când utilizați [[ comenzile condiționale <
și > operatori (vezi articolul precedent).
compat40
Dacă este setat, pocni își schimbă comportamentul în cel al versiunii 4.0 în ceea ce privește
comparație de șiruri specifice localității atunci când utilizați [[ comenzile condiționale <
și > operatori (vezi descrierea compat31) și efectul de
întreruperea unei liste de comenzi. Versiunile Bash 4.0 și ulterioare întrerup
listează ca și cum shell-ul a primit întrerupere; versiunile anterioare continuă
cu următoarea comandă din listă.
compat41
Dacă este setat, pocni, când se află POSIX modul, tratează un singur ghilimeleu într-un ghilimele duble
extinderea parametrilor ca caracter special. Ghilimelele simple trebuie să se potrivească
(un număr par) și caracterele dintre ghilimele simple sunt
considerat citat. Acesta este comportamentul modului posix prin versiunea 4.1.
Comportamentul bash implicit rămâne ca în versiunile anterioare.
compat42
Dacă este setat, pocni nu procesează șirul de înlocuire din model
extinderea cuvintelor de substituție folosind eliminarea ghilimelelor.
complete_fullquote
Dacă este setat, pocni citează toate metacaracterele shell în numele fișierelor și în director
nume la efectuarea completării. Dacă nu este setat, pocni elimină metacaracterele
precum semnul dolarului din setul de caractere care vor fi citate în
nume de fișiere completate când aceste metacaractere apar în variabila shell
referințe în cuvinte de completat. Aceasta înseamnă că dolarul se conectează
numele de variabile care se extind în directoare nu vor fi citate; cu toate acestea, orice
Nici semnele de dolar care apar în numele fișierelor nu vor fi citate. Aceasta este
activ numai atunci când bash folosește bare oblice inverse pentru a cita numele fișierelor completate.
Această variabilă este setată implicit, care este comportamentul implicit în bash
versiuni până la 4.2.
direexpand
Dacă este setat, pocni înlocuiește numele directoarelor cu rezultatele extinderii cuvintelor
când efectuați completarea numelui fișierului. Acest lucru modifică conținutul
buffer de editare readline. Dacă nu este setat, pocni încearcă să păstreze ceea ce
utilizator a tastat.
dirspell
Dacă este setat, pocni încearcă să corecteze ortografia numelor de directoare în timpul cuvântului
completare dacă numele directorului furnizat inițial nu există.
dotglob Dacă este setat, pocni include nume de fișiere care încep cu un `.' în rezultatele de
extinderea numelui de cale.
execfail
Dacă este setat, un shell non-interactiv nu va ieși dacă nu poate executa fișierul
specificat ca argument la Exec comandă încorporată. O carcasă interactivă
nu iese dacă Exec eșuează.
expand_aliases
Dacă se setează, aliasurile sunt extinse așa cum este descris mai sus, mai sus ALIASSE. Această opțiune
este activat implicit pentru shell-uri interactive.
extdebug
Dacă este setat, comportamentul destinat utilizării de către depanatori este activat:
1. -F opțiune la declara încorporat afișează numele fișierului sursă
și numărul de linie corespunzător fiecărui nume de funcție furnizat ca un
a susținut.
2. Dacă comanda rulată de REMEDIERE capcană returnează o valoare diferită de zero, the
următoarea comandă este omisă și nu este executată.
3. Dacă comanda rulată de REMEDIERE trap returnează o valoare de 2 și
shell-ul se execută într-o subrutină (o funcție shell sau un shell
scriptul executat de către . or sursă builtins), un apel la reveni is
simulat.
4. BASH_ARGC și BASH_ARGV sunt actualizate conform descrierii lor
descrierile de mai sus.
5. Urmărirea funcțiilor este activată: înlocuirea comenzilor, funcții shell,
și subshell-uri invocate cu ( comandă ) moștenește REMEDIERE și A REVENI
capcane.
6. Urmărirea erorilor este activată: înlocuirea comenzilor, funcțiile shell,
și subshell-uri invocate cu ( comandă ) moștenește ERR capcană.
extglob Dacă este setată, caracteristicile extinse de potrivire a modelului descrise mai sus mai jos
Nume cale Expansiune sunt activate.
extquote
Dacă este setat, $'şir' și $"şir" citarea se efectuează în cadrul ${parametru}
expansiuni cuprinse între ghilimele duble. Această opțiune este activată implicit.
failglob
Dacă se setează, modele care nu se potrivesc cu numele fișierelor în timpul extinderii numelor de cale
duce la o eroare de expansiune.
force_fignore
Dacă sunt setate, sufixele specificate de FIGNORE variabila shell provoacă cuvinte să
fi ignorat atunci când se realizează completarea cuvintelor chiar dacă cuvintele ignorate sunt
singurele completări posibile. Vedea COAJĂ VARIABILE mai sus pentru o descriere
of FIGNORE. Această opțiune este activată în mod implicit.
globasciiranges
Dacă este setat, expresiile de interval utilizate în expresiile paranteze de potrivire a modelelor (vezi
Model De potrivire mai sus) se comportă ca în localul tradițional C când
efectuarea de comparații. Adică, secvența de aranjare a locației curente
nu este luată în considerare, deci b nu va aduna între A și B, și
Caracterele ASCII majuscule și minuscule se vor aduna împreună.
globstar
Dacă este setat, modelul ** folosit într-un context de extindere a numelui de cale se va potrivi cu toate
fișiere și zero sau mai multe directoare și subdirectoare. Dacă modelul este
urmată de a /, numai directoarele și subdirectoarele se potrivesc.
gnu_errfmt
Dacă este setat, mesajele de eroare shell sunt scrise în mesajul de eroare standard GNU
format.
histappend
Dacă este setată, lista istorică este atașată la fișierul numit după valoarea lui
HISTFILE variabilă atunci când shell-ul iese, în loc să suprascrieți fișierul.
histreedit
Dacă este setat, și Citeste linia este utilizat, utilizatorului i se oferă posibilitatea de a re-
editați o înlocuire eșuată a istoricului.
histverify
Dacă este setat, și Citeste linia este utilizat, rezultatele înlocuirii istoricului sunt
nu a trecut imediat la analizatorul shell. În schimb, linia rezultată este
încărcat în Citeste linia editare tampon, permițând modificări ulterioare.
hostcomplete
Dacă este setat, și Citeste linia este utilizat, pocni va încerca să execute numele de gazdă
completare când un cuvânt care conține a @ este în curs de finalizare (vezi Finalizând
în CITESTE LINIA de mai sus). Aceasta este activată implicit.
huponexit
Dacă este setat, pocni va trimite LUMEA la toate joburile când un shell de conectare interactiv
iesirile.
comentarii_interactive
Dacă este setat, permiteți un cuvânt care începe cu # pentru a provoca acel cuvânt și tot ce rămâne
caracterele de pe acea linie să fie ignorate într-un shell interactiv (vezi MESAJ
de mai sus). Această opțiune este activată implicit.
ultima țeavă
Dacă este setat, iar controlul jobului nu este activ, shell-ul rulează ultima comandă a a
pipeline nu este executat în fundal în mediul shell curent.
litistă Dacă este setat, și cmdhist opțiunea este activată, comenzile cu mai multe linii sunt salvate în
istoricul cu linii noi încorporate în loc să utilizeze separatori punct și virgulă
acolo unde este posibil.
login_shell
Shell-ul setează această opțiune dacă este pornit ca un shell de conectare (vezi
INVOCARE de mai sus). Este posibil ca valoarea să nu fie modificată.
mailwarn
Dacă este setat, și un fișier care pocni verifică dacă e-mailul a fost accesat de atunci
ultima dată când a fost verificat, mesajul ``The mail in fisier mail a fost
read'' este afișat.
no_empty_cmd_completion
Dacă este setat, și Citeste linia este utilizat, pocni nu va încerca să caute
PATH pentru posibile completări atunci când se încearcă completarea pe un gol
linia.
nocaseglob
Dacă este setat, pocni potrivește numele fișierelor fără a ține seama de majuscule și minuscule când
efectuarea extinderii numelui de cale (vezi Nume cale Expansiune de mai sus).
nocasematch
Dacă este setat, pocni potrivește tiparele fără a ține seama de majuscule și minuscule atunci când executați
potrivire în timpul executării caz or [[ comenzi condiționale.
nullglob
Dacă este setat, pocni permite modele care nu se potrivesc cu niciun fișier (vezi Nume cale Expansiune
de mai sus) pentru a se extinde la un șir nul, mai degrabă decât ei înșiși.
progcomp
Dacă se setează, facilitățile de completare programabile (vezi Programabile Finalizare tranzactiei
de mai sus) sunt activate. Această opțiune este activată în mod implicit.
promptvars
Dacă sunt setate, șirurile de prompt sunt supuse extinderii parametrilor, înlocuirii comenzilor,
extinderea aritmetică și eliminarea cotațiilor după ce au fost extinse așa cum este descris
in FAPT CARE I-A DETERMINAT de mai sus. Această opțiune este activată în mod implicit.
restricted_shell
Shell-ul setează această opțiune dacă este pornit în modul restricționat (vezi
RESTRICTAT COAJĂ de mai jos). Este posibil ca valoarea să nu fie modificată. Acest lucru nu este resetat
când sunt executate fișierele de pornire, permițând descoperirea fișierelor de pornire
indiferent dacă un shell este sau nu restricționat.
shift_verbose
Dacă este setat, schimbare încorporat imprimă un mesaj de eroare atunci când contorizarea schimburilor
depășește numărul de parametri de poziție.
cale sursă
Dacă este setat, sursă (.) încorporat folosește valoarea lui PATH pentru a găsi directorul
conţinând fişierul furnizat ca argument. Această opțiune este activată de
Mod implicit.
xpg_echo
Dacă este setat, ecou încorporat extinde în mod implicit secvențele backslash-escape.

suspenda [-f]
Suspendați execuția acestui shell până când primește a NEXTCONT semnal. O autentificare
carcasa nu poate fi suspendată; cel -f opțiunea poate fi folosită pentru a anula acest lucru și pentru a forța
suspensie. Starea de returnare este 0, cu excepția cazului în care shell-ul este un shell de conectare și -f nu este
furnizate sau dacă controlul lucrărilor nu este activat.

test expres
[ expres ]
Returnează o stare de 0 (adevărat) sau 1 (fals), în funcție de evaluarea
expresie condiționată expres. Fiecare operator și operand trebuie să fie separat
argument. Expresiile sunt compuse din primarii descrise mai sus mai sus
CONDIŢIONAL EXPRESII. test nu acceptă nicio opțiune și nici nu acceptă și
ignora un argument de -- ca semnificând sfârşitul opţiunilor.

Expresiile pot fi combinate folosind următorii operatori, enumerați în descreștere
ordinea de prioritate. Evaluarea depinde de numărul de argumente; Vezi mai jos.
Precedența operatorului este utilizată atunci când există cinci sau mai multe argumente.
! expres Adevărat dacă expres este fals.
( expres )
Returnează valoarea lui expres. Aceasta poate fi folosită pentru a depăși normalul
prioritate a operatorilor.
expr1 -a expr2
Adevărat dacă ambele expr1 și expr2 sunt adevărate.
expr1 -o expr2
Adevărat dacă oricare expr1 or expr2 este adevarat.

test și [ evaluați expresiile condiționate folosind un set de reguli bazate pe
număr de argumente.

0 argumente
Expresia este falsă.
1 argument
Expresia este adevărată dacă și numai dacă argumentul nu este nul.
2 argumente
Dacă primul argument este !, expresia este adevărată dacă și numai dacă a doua
argumentul este nul. Dacă primul argument este unul din condiționalul unar
operatorii enumerați mai sus sub CONDIŢIONAL EXPRESII, expresia este adevărată
dacă testul unar este adevărat. Dacă primul argument nu este un unar valid
operator condițional, expresia este falsă.
3 argumente
Următoarele condiții sunt aplicate în ordinea enumerată. Dacă al doilea
argument este unul dintre operatorii condiționali binari enumerați mai sus sub
CONDIŢIONAL EXPRESII, rezultatul expresiei este rezultatul
test binar folosind primul și al treilea argument ca operanzi. The -a și -o
operatorii sunt considerați operatori binari atunci când există trei argumente.
Dacă primul argument este !, valoarea este negația celor două argumente
testați folosind al doilea și al treilea argument. Dacă primul argument este exact
( iar al treilea argument este exact ), rezultatul este testul cu un singur argument
al celui de-al doilea argument. În caz contrar, expresia este falsă.
4 argumente
Dacă primul argument este !, rezultatul este negația celor trei argumente
expresie compusă din argumentele rămase. În rest, expresia
este analizat și evaluat în funcție de prioritate folosind regulile enumerate
de mai sus.
5 sau mai multe argumente
Expresia este analizată și evaluată în funcție de precedență folosind
regulile enumerate mai sus.

Când este utilizat cu test or [, < și > operatorii sortează lexicografic folosind ASCII
comanda.

ori Imprimați timpii acumulați de utilizator și de sistem pentru shell și pentru procesele rulate
din coajă. Starea de returnare este 0.

capcană [-lp] [[arg] sigspec ...]
Comanda arg trebuie să fie citit și executat atunci când shell-ul primește semnal(e)
sigspec. Dacă arg este absent (și există un singur sigspec) Sau -, fiecare specificat
semnalul este resetat la dispoziția inițială (valoarea pe care o avea la intrarea în
coajă). Dacă arg este șirul nul semnalul specificat de fiecare sigspec este ignorat
de shell și de comenzile pe care le invocă. Dacă arg nu este prezentă şi -p a fost
furnizate, apoi comenzile capcană asociate fiecăruia sigspec sunt afișate. Daca nu
argumentele sunt furnizate sau numai dacă -p este dată, capcană tipărește lista de comenzi
asociat cu fiecare semnal. The -l opțiunea face ca shell-ul să imprime o listă de
numele semnalelor și numerele lor corespunzătoare. Fiecare sigspec este fie un nume de semnal
definit însemnal.h> sau un număr de semnal. Numele semnalelor nu fac distincție între majuscule și minuscule și
il SIG prefixul este optional.

În cazul în care o sigspec is EXIT (0) comanda arg este executat la ieșirea din shell. În cazul în care un
sigspec is REMEDIERE, comanda arg se execută înainte de fiecare simplu comandă, pentru
comanda, caz comanda, selecta comandă, fiecare aritmetică pentru comanda, iar înainte de
prima comandă se execută într-o funcție shell (vezi COAJĂ GRAMATICĂ de mai sus). Consultați
descrierea extdebug opțiune la magazin încorporat pentru detalii despre efectul său
pe REMEDIERE capcană. În cazul în care un sigspec is A REVENI, comanda arg se execută de fiecare dată când a
funcția shell sau un script executat cu . or sursă finisaje incorporate
executând.

În cazul în care o sigspec is ERR, comanda arg este executat ori de câte ori o conductă (care poate
consta dintr-o singură comandă simplă), o listă sau o comandă compusă returnează a
stare de ieșire diferită de zero, sub rezerva următoarelor condiții. The ERR capcana nu este
executat dacă comanda eșuată face parte din lista de comenzi imediat următoare a
în timp ce or până la cuvânt cheie, parte a testului într-un if declarație, parte a unei comenzi
executat într-o && or || listă cu excepția comenzii care urmează finalei && or ||, orice
comandă într-o conductă, dar ultima sau dacă valoarea returnată a comenzii este în curs
inversat folosind !. Acestea sunt aceleași condiții îndeplinite de errexit (-e) opțiune.

Semnalele ignorate la intrarea în carcasă nu pot fi captate sau resetate. Prins în capcană
semnalele care nu sunt ignorate sunt resetate la valorile lor originale într-un subshell
sau mediu subshell atunci când este creat unul. Starea returnării este falsă, dacă există
sigspec este invalid; in caz contrar capcană returnează adevărat.

tip [-aftpP] nume [nume ...]
Fără opțiuni, indicați cum fiecare nume ar fi interpretat dacă este folosit ca o comandă
Nume. Dacă -t este folosită opțiunea, tip tipărește un șir care este unul dintre alias,
cuvinte cheie, funcţie, builtin, Sau fişier if nume este un alias, cuvânt rezervat shell,
funcție, încorporat sau, respectiv, fișier disc. Dacă nume nu se găsește, atunci
nimic nu este tipărit și se returnează o stare de ieșire false. Dacă -p opțiunea este
folosit, tip fie returnează numele fișierului disc care ar fi executat dacă nume
au fost specificate ca nume de comandă sau nimic dacă ``type -t name'' nu ar reveni
fişier. -P opțiunea forțează a PATH cauta pentru fiecare nume, chiar dacă ``type -t name''
nu s-ar întoarce fişier. Dacă o comandă este hashing, -p și -P tipăriți valoarea hashed,
care nu este neapărat fișierul care apare primul în PATH. Dacă -a opțiunea este
folosit, tip tipărește toate locurile care conțin un executabil numit nume. Acest
include aliasuri și funcții, dacă și numai dacă -p opțiunea nu este de asemenea utilizată. The
tabelul comenzilor hashed nu este consultat la utilizare -a. -f opțiunea suprimă
căutarea funcției shell, ca și în cazul comandă incorporat. tip returnează adevărat dacă toate
argumentele sunt găsite, false dacă nu sunt găsite.

limită [-HSTabcdefilmnpqrstuvx [limita]]
Oferă control asupra resurselor disponibile pentru shell și pentru procesele începute
prin aceasta, pe sisteme care permit un astfel de control. The -H și -S opțiunile specifică faptul că
limita hard sau soft este setată pentru resursa dată. O limită strictă nu poate fi mărită
de către un utilizator non-root odată ce este setat; o limită slabă poate fi mărită până la valoarea de
limita grea. Dacă nici unul -H nici -S este specificat, atât limitele soft cât și cele hard
sunt setate. Valoarea a limita poate fi un număr din unitatea specificată pentru resursă
sau una dintre valorile speciale greu, moale, Sau nelimitat, care reprezintă curent
hard limit, limita actuală soft și, respectiv, no limit. Dacă limita is
este omisă, valoarea curentă a limitei soft a resursei este tipărită, cu excepția cazului în care
-H este dată opțiunea. Când sunt specificate mai multe resurse, numele limită și
unitate sunt tipărite înaintea valorii. Alte opțiuni sunt interpretate după cum urmează:
-a Toate limitele de curent sunt raportate
-b Dimensiunea maximă a tamponului de soclu
-c Dimensiunea maximă a fișierelor de bază create
-d Dimensiunea maximă a segmentului de date al unui proces
-e Prioritatea maximă de programare („frumos”)
-f Dimensiunea maximă a fișierelor scrise de shell și copiii săi
-i Numărul maxim de semnale în așteptare
-l Dimensiunea maximă care poate fi blocată în memorie
-m Dimensiunea maximă a setului rezident (multe sisteme nu respectă această limită)
-n Numărul maxim de descriptori de fișiere deschise (majoritatea sistemelor nu permit acest lucru
valoare de setat)
-p Dimensiunea conductei în blocuri de 512 octeți (este posibil să nu fie setată)
-q Numărul maxim de octeți din cozile de mesaje POSIX
-r Prioritatea maximă de programare în timp real
-s Dimensiunea maximă a stivei
-t Cantitatea maximă de timp CPU în secunde
-u Numărul maxim de procese disponibile pentru un singur utilizator
-v Cantitatea maximă de memorie virtuală disponibilă pentru shell și, pe unele
sistemelor, copiilor săi
-x Numărul maxim de blocări ale fișierelor
-T Numărul maxim de fire

If limita este dat, iar -a opțiunea nu este folosită, limita este noua valoare a
resursa specificata. Dacă nu se oferă nicio opțiune, atunci -f este asumat. Valorile sunt în
Creșteri de 1024 de octeți, cu excepția -t, care este în secunde; -p, care este în unități de
blocuri de 512 octeți; și -T, -b, -n, și -u, care sunt valori nescale. Întoarcerea
starea este 0, cu excepția cazului în care este furnizată o opțiune sau un argument nevalid sau dacă apare o eroare
în timp ce se stabilește o nouă limită.

masca [-p] [-S] [mod]
Masca de creare a fișierelor de utilizator este setată la mod. Dacă mod începe cu o cifră, este
interpretat ca un număr octal; altfel este interpretată ca o mască de mod simbolic
similar cu cel acceptat de chmod(1). Dacă mod este omisă, valoarea curentă a
masca este imprimata. The -S opțiunea face ca masca să fie imprimată în formă simbolică; cel
ieșirea implicită este un număr octal. Dacă -p opțiunea este furnizată și mod is
omisă, rezultatul este într-o formă care poate fi reutilizată ca intrare. Starea de retur este
0 dacă modul a fost schimbat cu succes sau dacă nu mod argumentul a fost oferit și
fals altfel.

Unalias [-a] [nume ...]
Scoateți fiecare nume din lista de aliasuri definite. Dacă -a este furnizat, toate alias
definițiile sunt eliminate. Valoarea returnată este adevărată, cu excepția cazului în care este furnizată nume nu este un
alias definit.

dezactivat [-fv] [-n] [nume ...]
Pentru fiecare nume, eliminați variabila sau funcția corespunzătoare. Dacă -v opțiunea este
dat, fiecare nume se referă la o variabilă shell și acea variabilă este eliminată. Citit-
numai variabilele nu pot fi dezactivate. Dacă -f este specificat, fiecare nume se referă la o coajă
funcția și definiția funcției este eliminată. Dacă -n opțiunea este furnizată,
și nume este o variabilă cu numeref atribut, nume va fi mai degrabă nesetat decât
variabila la care face referire. -n nu are efect dacă -f opțiunea este furnizată. Daca nu
sunt furnizate opțiuni, fiecare nume se referă la o variabilă; dacă nu există variabilă prin
acel nume, orice funcție cu acel nume este nesetată. Fiecare variabilă sau funcție nesetată
este eliminat din mediul trecut la comenzile ulterioare. Dacă vreuna dintre
COMP_WORDBREAKS, ÎNTÂMPLĂTOR, SECUNDE, LINENO, HISTCMD, FUNCNAME, GRUPURI, Sau DIRSTACK
sunt nesetate, își pierd proprietățile speciale, chiar dacă sunt resetate ulterior.
Starea de ieșire este adevărată, cu excepția cazului în care a nume este doar citire.

aștepta [-n] [n ...]
Așteptați fiecare proces copil specificat și returnați starea de terminare. Fiecare n
poate fi un ID de proces sau o specificație de job; dacă este dată o specificație de job, toate procesele
în conducta acelui job sunt așteptate. Dacă n nu este dat, toate active în prezent
procesele copil sunt așteptate, iar starea de returnare este zero. Dacă -n opțiunea este
furnizat, aștepta așteaptă terminarea oricărei lucrări și returnează starea de ieșire. Dacă n
specifică un proces sau un job inexistent, starea de returnare este 127. În caz contrar,
starea de returnare este starea de ieșire a ultimului proces sau job așteptat.

RESTRICTAT COAJĂ


If pocni începe cu numele rbash, Sau -r opțiunea este furnizată la invocare, the
coajă devine restricționată. Un shell restricționat este folosit pentru a configura mai mult un mediu
controlat decât carcasa standard. Se comportă identic cu pocni cu exceptia
că următoarele sunt interzise sau nu sunt efectuate:

· schimbarea directoarelor cu cd

· setarea sau dezactivarea valorilor de COAJĂ, PATH, ENV, Sau BASH_ENV

· specificarea numelor de comenzi care conțin /

· specificarea unui nume de fișier care conține a / ca argument la . comandă încorporată

· specificarea unui nume de fișier care conține o bară oblică ca argument pentru -p opțiune la
hașiș comandă încorporată

· importarea definițiilor de funcții din mediul shell la pornire

· analizarea valorii lui SHELLOPTS din mediul shell la pornire

· redirecționarea ieșirii folosind operatorii de redirecționare >, >|, <>, >&, &> și >>

· folosind Exec comandă încorporată pentru a înlocui shell-ul cu o altă comandă

· adăugarea sau ștergerea comenzilor încorporate cu -f și -d opțiuni la permite
comandă încorporată

· folosind permite comandă încorporată pentru a activa elementele încorporate de shell dezactivate

· specificarea -p opțiune la comandă comandă încorporată

· dezactivarea modului restricționat cu set +r or set +o limitat.

Aceste restricții sunt aplicate după citirea oricăror fișiere de pornire.

Când se execută o comandă care se dovedește a fi un script shell (vezi COMMAND EXECUŢIE
de mai sus), rbash dezactivează orice restricție din shell generată pentru a executa scriptul.

Utilizați bash online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    Pluginul Eclipse Tomcat
    Pluginul Eclipse Tomcat
    Pluginul Eclipse Tomcat oferă
    integrare simplă a unui servlet tomcat
    container pentru dezvoltarea java
    aplicatii web. Ne poți alătura pentru
    discutie...
    Descărcați pluginul Eclipse Tomcat
  • 2
    Desktop WebTorrent
    Desktop WebTorrent
    WebTorrent Desktop este pentru streaming
    torrente pe Mac, Windows sau Linux. Aceasta
    se conectează atât la BitTorrent, cât și la
    colegii WebTorrent. Acum nu există
    trebuie sa astepti...
    Descărcați WebTorrent Desktop
  • 3
    GenX
    GenX
    GenX este un program științific de rafinat
    reflexivitatea razelor X, neutroni
    reflectivitate și raze X de suprafață
    date de difracție folosind diferența
    algoritm de evolutie....
    Descărcați GenX
  • 4
    pspp4windows
    pspp4windows
    PSPP este un program de statistică
    analiza datelor eșantionate. Este gratuit
    înlocuitor pentru programul proprietar
    SPSS. PSPP are atât bazate pe text, cât și
    ne grafice...
    Descărcați pspp4windows
  • 5
    Extensii Git
    Extensii Git
    Git Extensions este un instrument UI de sine stătător
    pentru gestionarea depozitelor Git. De asemenea
    se integrează cu Windows Explorer și
    Microsoft Visual Studio
    (2015/2017/2019). E...
    Descărcați extensii Git
  • 6
    eSpeak: sinteza vorbirii
    eSpeak: sinteza vorbirii
    Motor Text to Speech pentru engleză și
    multe alte limbi. Dimensiune compactă cu
    pronunție clară, dar artificială.
    Disponibil ca program de linie de comandă cu
    mulți ...
    Descărcați eSpeak: sinteza vorbirii
  • Mai mult »

Comenzi Linux

Ad