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