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.
|
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}
|
\section{Pfade und Dateien}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user