Zum Inhalt springen

Read: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Bash/Variablen“ durch „Bash/Variable“
K Textersetzung - „«“ durch „''“
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 2: Zeile 2:
  read Variable [Variable]
  read Variable [Variable]


* Mit »read« wird eine Eingabezeile eingelesen und deren Inhalt Variablen zugewiesen.  
* 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.  
* 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 mehr Token zur Verfügung als Variablen, so wird die letzte Variable mit allen noch nicht zugewiesenen Token belegt
Zeile 15: Zeile 15:


* Ist die Anzahl erwarteter Token nicht vorhersehbar, bietet sich die Verwendung einer Feldvariablen an.  
* Ist die Anzahl erwarteter Token nicht vorhersehbar, bietet sich die Verwendung einer Feldvariablen an.  
* Hierzu ist dem Variablennamen einzig die Option »-voranzustellen:  
* Hierzu ist dem Variablennamen einzig die Option ''-a'' voranzustellen:  


  '''read -a feld'''
  '''read -a feld'''
Zeile 23: Zeile 23:


* Für die Shellprogrammierung sind zwei weitere Optionen nützlich.  
* 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:  
* 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"'''
  '''read -p "Eingabe: " -t 5 || echo "nichts gedrückt"'''

Aktuelle Version vom 31. März 2025, 12:22 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