Read: Unterschied zwischen den Versionen
K Textersetzung - „\[\[Kategorie([A-zA-z])“ durch „[[Kategorie:\1“ |
K Textersetzung - „Bash:“ durch „Bash/“ |
||
Zeile 29: | Zeile 29: | ||
Eingabe: nichts gedrückt | Eingabe: nichts gedrückt | ||
[[Kategorie:Bash | [[Kategorie:Bash/Builtin]] |
Version vom 27. März 2023, 10:46 Uhr
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