Bash Pagina 36
Redirecționare (2)
Redirecționarea fluxurilor în shell scripting permite controlul detaliat asupra modului în care sunt gestionate intrările, ieșirile și erorile. Aceasta este esențială pentru a îmbunătăți gestionarea erorilor și pentru a organiza rezultatele.
Tipuri de Redirecționare a Fluxurilor
1. Redirecționare a Fluxului Specific
Puteți redirecționa un anumit flux utilizând sintaxa N>. Exemplu:
cmd 2>/dev/null
Aceasta va elimina toate erorile generate de comanda cmd.
2. Redirecționare către un Flux Specific
Pentru a redirecționa ieșirea unei comenzi către un flux specific, utilizați >&N.
Exemple:
1>&2: trimite ieșirea standard (stdout) către fluxul de eroare standard (stderr). 2>&1: redirecționează fluxul de eroare standard (stderr) către ieșirea standard (stdout).
Trimiterea Ieșirii și a Erorilor într-un Singur Fișier
Pentru a trimite atât ieșirea standard, cât și erorile într-un singur fișier de jurnal, utilizați:
cmd > fișierul_jurnal 2>&1
Important: Nu faceți acest lucru:
cmd > jurnal 2> jurnal
Aceasta va crea un fișier de jurnal care poate fi incomplet sau care nu va conține toate informațiile dorite.
Reguli și Conținut
Evitați să folosiți &> sau >&.
Ordinea redirecționărilor contează.
Exemple corecte:
cmd < fișier_de_intrare > fișier_de_ieșire
și
> fișier_de_ieșire cmd < fișier_de_intrare
Un exemplu de redirecționare a erorilor către fișierul de jurnal:
cmd > fișierul_de_jurnal 2>&1
În mod similar, pentru a trimite erorile la ieșirea standard, utilizați:
2>&1 > logfile cmd
Acest lucru va redirecționa erorile către stdout.
Concluzie
Redirecționarea fluxurilor este un instrument vital în scripting-ul shell, permițând utilizatorilor să gestioneze eficient ieșirile și erorile. Prin utilizarea corectă a redirecționărilor, se pot crea scripturi mai clare și mai ușor de diagnosticat.