From b523791d1b347919e1c9b6f8077fdf3d543b3f39 Mon Sep 17 00:00:00 2001 From: rschaten Date: Tue, 9 Oct 2001 07:50:02 +0000 Subject: [PATCH] =?UTF-8?q?read-Kommando=20hinzugef=FCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- werkzeugkasten.tex | 47 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/werkzeugkasten.tex b/werkzeugkasten.tex index f997828..85630a6 100644 --- a/werkzeugkasten.tex +++ b/werkzeugkasten.tex @@ -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}