Bash Pagina 107: Diferență între versiuni

De la Wiki Linux Advanced
Sari la navigare Sari la căutare
 
 
(Nu s-au afișat 3 versiuni intermediare efectuate de același utilizator)
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="./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"
}
# Apel funcție
procesare_temp
echo "Scriptul s-a terminat. Fișierul temporar a fost șters."
'''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 curentă din 31 octombrie 2024 07:55

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="./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"
}
# Apel funcție
procesare_temp
echo "Scriptul s-a terminat. Fișierul temporar a fost șters."

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.


Pagina anterioară | Următoarea pagină