Bash Pagina 107: Diferență între versiuni
Sari la navigare
Sari la căutare
Admin (discuție | contribuții) (Pagină nouă: Pagina anterioară | Următoarea pagină) |
Admin (discuție | contribuții) Fără descriere a modificării |
||
Linia 1: | Linia 1: | ||
== Exercițiu: Utilizarea unei funcții într-un apel trap == | |||
'''Obiectiv''' | |||
În acest exercițiu, vei crea o funcție Bash care gestionează fișiere temporare și folosește `trap` pentru a se asigura că fișierul temporar este șters chiar dacă funcția se termină neașteptat. | |||
''Cerințe'' | |||
* Creează o funcție numită `procesare_temp` care: | |||
- Crează un fișier temporar. | |||
- Execută o acțiune (de exemplu, scrie ceva în fișier). | |||
- Folosește `trap` pentru a șterge fișierul temporar când funcția se termină, indiferent de succesul execuției. | |||
* Testează funcția prin apelarea sa în script și asigură-te că fișierul temporar este șters după rulare. | |||
#!/bin/bash | |||
procesare_temp() { | |||
# Definire fișier temporar | |||
local temp_file="/tmp/procesare_$$.txt" | |||
# Setează trap pentru a șterge fișierul temporar la ieșirea din funcție | |||
trap "rm -f $temp_file; echo 'Fișier temporar șters.'" RETURN | |||
# Scrie ceva în fișierul temporar | |||
echo "Acesta este un fișier temporar pentru procesare." > "$temp_file" | |||
echo "Conținutul fișierului temporar:" | |||
cat "$temp_file" | |||
# Simulează o eroare pentru a testa trap-ul (opțional) | |||
# false | |||
} | |||
# Apel funcție | |||
procesare_temp | |||
echo "Scriptul s-a terminat." | |||
'''Explicație''' | |||
* Crearea funcției: procesare_temp creează un fișier temporar denumit folosind variabila $$ (PID-ul procesului curent), pentru a evita conflictele de nume. | |||
* Setarea trap: Linia trap "rm -f $temp_file; echo 'Fișier temporar șters.'" RETURN se asigură că fișierul temporar va fi șters la ieșirea din funcție, folosind semnalul RETURN (care se activează la finalul funcției). | |||
* Operații pe fișierul temporar: Conținutul este scris în fișierul temporar, iar fișierul este afișat. | |||
* Testarea funcției: Prin apelarea funcției procesare_temp, scriptul va crea și afișa fișierul temporar, iar la ieșirea din funcție trap se va executa și va șterge fișierul. | |||
'''Observație''' | |||
Acest script exemplifică cum poți folosi trap într-o funcție pentru a curăța resurse temporare, chiar dacă funcția se încheie neașteptat. | |||
[[Bash_Pagina_106|Pagina anterioară]] | [[Bash_Pagina_108|Următoarea pagină]] | [[Bash_Pagina_106|Pagina anterioară]] | [[Bash_Pagina_108|Următoarea pagină]] |
Versiunea de la data 30 octombrie 2024 14:13
Exercițiu: Utilizarea unei funcții într-un apel trap
Obiectiv
În acest exercițiu, vei crea o funcție Bash care gestionează fișiere temporare și folosește `trap` pentru a se asigura că fișierul temporar este șters chiar dacă funcția se termină neașteptat.
Cerințe
- Creează o funcție numită `procesare_temp` care:
- Crează un fișier temporar. - Execută o acțiune (de exemplu, scrie ceva în fișier). - Folosește `trap` pentru a șterge fișierul temporar când funcția se termină, indiferent de succesul execuției.
- Testează funcția prin apelarea sa în script și asigură-te că fișierul temporar este șters după rulare.
#!/bin/bash
procesare_temp() { # Definire fișier temporar local temp_file="/tmp/procesare_$$.txt"
# Setează trap pentru a șterge fișierul temporar la ieșirea din funcție trap "rm -f $temp_file; echo 'Fișier temporar șters.'" RETURN
# Scrie ceva în fișierul temporar echo "Acesta este un fișier temporar pentru procesare." > "$temp_file" echo "Conținutul fișierului temporar:" cat "$temp_file"
# Simulează o eroare pentru a testa trap-ul (opțional) # false }
# Apel funcție procesare_temp
echo "Scriptul s-a terminat."
Explicație
- Crearea funcției: procesare_temp creează un fișier temporar denumit folosind variabila $$ (PID-ul procesului curent), pentru a evita conflictele de nume.
- Setarea trap: Linia trap "rm -f $temp_file; echo 'Fișier temporar șters.'" RETURN se asigură că fișierul temporar va fi șters la ieșirea din funcție, folosind semnalul RETURN (care se activează la finalul funcției).
- Operații pe fișierul temporar: Conținutul este scris în fișierul temporar, iar fișierul este afișat.
- Testarea funcției: Prin apelarea funcției procesare_temp, scriptul va crea și afișa fișierul temporar, iar la ieșirea din funcție trap se va executa și va șterge fișierul.
Observație
Acest script exemplifică cum poți folosi trap într-o funcție pentru a curăța resurse temporare, chiar dacă funcția se încheie neașteptat.