Bash Pagina 36: Diferență între versiuni
Admin (discuție | contribuții) |
Admin (discuție | contribuții) |
||
(Nu s-au afișat 2 versiuni intermediare efectuate de același utilizator) | |||
Linia 11: | Linia 11: | ||
Aceasta va elimina toate erorile generate de comanda ''cmd''. | Aceasta va elimina toate erorile generate de comanda ''cmd''. | ||
Redirecționare către un Flux Specific | 2. ''Redirecționare către un Flux Specific'' | ||
Pentru a redirecționa ieșirea unei comenzi către un flux specific, utilizați >&N. <br> | Pentru a redirecționa ieșirea unei comenzi către un flux specific, utilizați >&N. <br> | ||
Linia 28: | Linia 28: | ||
cmd > jurnal 2> jurnal | 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''' | '''Reguli și Conținut''' | ||
Linia 38: | Linia 38: | ||
'''Exemple corecte:''' | '''Exemple corecte:''' | ||
cmd < fișier_de_intrare > fișier_de_ieșire | cmd < fișier_de_intrare > fișier_de_ieșire | ||
și | și | ||
> fișier_de_ieșire cmd < fișier_de_intrare | > 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 | cmd > fișierul_de_jurnal 2>&1 | ||
În mod similar, pentru a trimite erorile la ieșirea standard, utilizați: | În mod similar, pentru a trimite erorile la ieșirea standard, utilizați: | ||
2>&1 > logfile cmd | 2>&1 > logfile cmd | ||
Acest lucru va redirecționa erorile către stdout. | Acest lucru va redirecționa erorile către stdout. | ||
Versiunea curentă din 27 octombrie 2024 10:10
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.