read-Kommando hinzugefgt
This commit is contained in:
parent
029828ff41
commit
b523791d1b
@ -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 üblicherweise einer
|
||||
oder mehrere Variablennamen ü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ä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} ü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ält.
|
||||
|
||||
Sonderzeichen können während der Eingabe normalerweise mittels eines Backslash
|
||||
vor der Interpretation geschü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ßwortabfragen, kann die Ausgabe mit dem
|
||||
Parameter \texttt{-s} (Silent) unterdrü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}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user