read-Kommando hinzugefgt
This commit is contained in:
@ -87,10 +87,53 @@ sobald sie an die Datei angeh
|
||||
werden allerdings nicht die letzten Zeilen angezeigt, sondern die ersten.
|
||||
|
||||
|
||||
\subsection{read}
|
||||
\subsection{read}\label{read}\index{read=\texttt{read}|(textbf}
|
||||
|
||||
TODO!!!
|
||||
Mit dem Kommando \texttt{read} kann man Eingaben von der
|
||||
Standard-Eingabe\index{Standard-Eingabe} lesen. Dabei wird <20>blicherweise einer
|
||||
oder mehrere Variablennamen <20>bergeben. Dem ersten Namen wird das erste
|
||||
eingegebene Wort zugewiesen, dem zweiten das zweite Wort usw. Dem letzen
|
||||
Variablennamen wird der verbleibende Rest der Eingabezeile zugewiesen. Wenn
|
||||
also nur ein Variablenname angegeben wird, erh<72>lt dieser die komplette
|
||||
Eingabezeile. Wenn weniger Worte gelesen werden als Variablen angegeben sind,
|
||||
enthalten die verbleibenden Variablen leere Werte. Als Wort-Trennzeichen dienen
|
||||
alle Zeichen, die in der vordefinierten Variable \texttt{\$IFS} enthalten sind
|
||||
(siehe Seite \pageref{IFS}).
|
||||
|
||||
Wenn keine Variablennamen angegeben werden, wird die Eingabe in der Variable
|
||||
\texttt{REPLY} abgelegt.
|
||||
|
||||
Normalerweise wird eine Eingabezeile mit einem Newline abgeschlossen. Mit dem
|
||||
Parameter \texttt{-d} ist es m<>glich, ein anderes Zeilenendezeichen anzugeben.
|
||||
Beispielsweise liest \texttt{read -d \dq~\dq~var} alle Zeichen bis zum ersten
|
||||
Leerzeichen in die Variable \texttt{var} ein.
|
||||
|
||||
Wenn nur eine bestimmte Zahl von Zeichen gelesen werden soll, kann diese durch
|
||||
den Parameter \texttt{-n} angegeben werden. Der Befehl \texttt{read -n 5 var}
|
||||
liest die ersten f<>nf Zeichen in die Variable \texttt{var} ein.
|
||||
|
||||
Mit dem Parameter \texttt{-p} kann man einen Prompt, also eine
|
||||
Eingabeaufforderung ausgeben lassen. \texttt{read -p \dq{}Gib was ein:\dq~var}
|
||||
schreibt also erst den Text \textit{Gib was ein:} auf das Terminal, bevor die
|
||||
Eingaben in die Variable \texttt{var} <20>bernommen werden. Dieser Prompt wird nur
|
||||
an einem interaktiven Terminal ausgegeben, also nicht in einem Skript das seine
|
||||
Eingaben aus einer Datei oder aus einem Stream erh<72>lt.
|
||||
|
||||
Sonderzeichen k<>nnen w<>hrend der Eingabe normalerweise mittels eines Backslash
|
||||
vor der Interpretation gesch<63>tzt werden. Ein Backslash vor einem Newline
|
||||
bewirkt also eine mehrzeilige Eingabe. Dieses Verhalten kann mit dem Parameter
|
||||
\texttt{-r} abgeschaltet werden.
|
||||
|
||||
Wenn die Eingabe von einem Terminal kommt und nicht auf dem Bildschirm
|
||||
erscheinen soll, zum Beispiel bei Pa<50>wortabfragen, kann die Ausgabe mit dem
|
||||
Parameter \texttt{-s} (Silent) unterdr<64>ckt werden.
|
||||
|
||||
Mit \texttt{-t} kann ein Time-Out definiert werden, nach dessen Ablauf das
|
||||
Kommando mit einem Fehler abbricht. Dieser Parameter ist nur bei interaktiver
|
||||
Eingabe oder beim Lesen aus einer Pipe aktiv.
|
||||
|
||||
Der R<>ckgabewert des \texttt{read}-Kommandos ist 0, es sei denn es trat ein
|
||||
Timeout oder ein EOF auf.
|
||||
|
||||
\section{Pfade und Dateien}
|
||||
|
||||
|
Reference in New Issue
Block a user