read în Linux / Bash

Scripting Bash POSIX / Bash built-in

Citește o linie de text de la tastatură sau din intrarea standard și o salvează într-o variabilă.

Sintaxă comandă
read [opțiuni] [variabilă...]

Ce face read

Comanda read este mecanismul principal prin care un script Bash devine interactiv, cerând date de la utilizator sau citind linie cu linie dintr-un fișier prin conductă.

Opțiunea -p permite afișarea unui mesaj de îndrumare (prompt), iar -s ascunde tastarea (esențial pentru introducerea de parole).

Opțiuni și argumente

Opțiune / Parametru Descriere
-p PROMPT Afișează textul de prompt înainte de a citi valoarea.
-s Mod silențios: nu afișează caracterele tastate pe ecran (pentru parole sau date secrete).
-r Interzice interpretarea caracterului backslash ca secvență de escape (recomandat întotdeauna).
-t SECUNDE Setează un timp maxim de așteptare pentru introducerea datelor.
-n NUMĂR Citește doar un număr fix de caractere și se oprește fără a mai aștepta tasta Enter.

Exemple

Exemplul 1: Citirea unei valori dintr-un flux de date

Salvăm valoarea citită în variabila oras.

echo "Cluj-Napoca" | { read -r oras; echo "Oras selectat: $oras"; }

Rezultat

Oras selectat: Cluj-Napoca

Exemplul 2: Solicitarea unei parole securizate în mod interactiv

Opțiunea -s ascunde caracterele introduse.

                    read -sp "Introdu parola ta: " parola
                    echo -e "
Parola a fost receptionata in siguranta."

Ieșire în terminal

Introdu parola ta: 
Parola a fost receptionata in siguranta.

Greșeli frecvente

  • Omiterea opțiunii -r: fără -r, dacă utilizatorul introduce o cale cu backslash (ex. căi de fișiere), caracterele vor fi ignorate sau modificate.

Comenzi înrudite

  • echo: Afișează o linie de text sau valorile variabilelor în consolă sau ieșirea standard.
  • while: Execută repetat un bloc de comenzi atâta timp cât condiția specificată rămâne adevărată.