read
read Variable [Variable]
- Mit »read« wird eine Eingabezeile eingelesen und deren Inhalt Variablen zugewiesen.
- Die Eingabe wird anhand der in IFS vorgegebenen Trennzeichen in einzelne Token zerlegt und der Reihe nach den Variablen zugewiesen.
- Stehen mehr Token zur Verfügung als Variablen, so wird die letzte Variable mit allen noch nicht zugewiesenen Token belegt
- stehen weniger Token bereit, bleibt der Inhalt der überschüssigen Variablen leer:
read a b c
1 2 3 4 5
echo "a=$a"; echo "b=$b"; echo "c=$c"
a=1
b=2
c=3 4 5
- Ist die Anzahl erwarteter Token nicht vorhersehbar, bietet sich die Verwendung einer Feldvariablen an.
- Hierzu ist dem Variablennamen einzig die Option »-a« voranzustellen:
read -a feld
Jedes Wort gelangt in ein eigenes Feld.
echo "3.Element: ${feld[2]}"
3.Element: gelangt
- Für die Shellprogrammierung sind zwei weitere Optionen nützlich.
- Zum einen »-p Prompt«, womit die erwartete Eingabe durch ein Prompt signalisiert wird und »-t Timeout«, wodurch das Kommando nach Ablauf der angegebenen Zeitspanne (Sekunden) mit einem Fehlerwert zurück kehrt:
read -p "Eingabe: " -t 5 || echo "nichts gedrückt"
# Finger weg von der Tastatur!
Eingabe: nichts gedrückt