Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ read(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

exec(1)

ksh(1)

sh(1)

read(1)                                                             read(1)

NAME
     read - Argumente von der Standard-Eingabe lesen und Shell-Variablen
     zuweisen

SYNTAX
     read name ...

BESCHREIBUNG
     Das in die Shell sh(1) bzw. ksh(1) eingebaute Kommando read liest eine
     Zeile von der Standard-Eingabe. Die gelesenen Argumente der Eingabe-
     zeile weist read den beim Aufruf angegebenen Shell-Variablen der Reihe
     nach als Wert zu.

     Als Argument-Trennzeichen erkennt read nur die Zeichen, die der
     Shell-Variablen IFS zugewiesen sind. Standardmäßig sind das Leer-,
     Tabulatorzeichen und Neue-Zeile-Zeichen.

     Wenn read in einer Shell-Prozedur steht und die Standard-Eingabe nicht
     umgelenkt ist, hält read die Prozedur an und liest Ihre Eingaben von
     der Standard-Eingabe. Sobald Sie ein Neue-Zeile-Zeichen eingeben, wird
     die die Prozedur fortgesetzt (siehe auch BEISPIELE).

ARGUMENTE
     Die Korn-Shell ksh unterstützt zusätzliche Optionen [siehe ksh(1)].

     name  Name der Shell-Variablen, der das entsprechende Argument aus der
           Eingabe-Zeile zugewiesen wird: Dem ersten Namen wird das erste
           Argument zugewiesen, dem zweiten Namen das zweite, usw., wobei
           dem letzten Namen der Rest der Eingabezeile zugewiesen wird.

           Die Namen von Shell-Variablen müssen mit einem Buchstaben oder
           einem Unterstrich _ beginnen und dürfen nur Buchstaben, Ziffern
           und _ enthalten.

           Überzählige Argumente in der Eingabe-Zeile werden der letzten
           Variablen des Kommandos read zugewiesen.

           Überzähligen Variablen des Kommandos read wird die leere Zei-
           chenkette zugewiesen.

ENDE-STATUS
     0   read wurde erfolgreich ausgeführt

     >0  read hat keine Eingabe erhalten, also nur Datei-Ende (EOF) gele-
         sen.










Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

read(1)                                                             read(1)

FEHLERMELDUNGEN
     text: not an identifier

     Diese Fehlermeldung kann folgende Ursachen haben:

     -  Sie haben beim Aufruf keinen Variablen-Namen angegeben, oder

     -  der angegebene Name enthält unerlaubte Zeichen.

     read: missing arguments

     Sie haben read ohne Argumente aufgerufen.

UMGEBUNGSVARIABLE
     IFS  Argument-Trennzeichen. Standardmäßig sind der Variablen IFS Leer-
          zeichen, Tabulatorzeichen und Neue-Zeile-Zeichen zugewiesen.

INTERNATIONALE UMGEBUNG
     Die Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
     texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
     ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
     LANG nicht oder als leere Zeichenkette definiert, verhält sich das
     System so, als wäre es nicht internationalisiert.

     Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.

BEISPIELE
     Beispiel 1

     Das Kommando read wird in der Shell-Prozedur readtest aufgerufen.
     Diese Shell-Prozedur hat folgenden Inhalt:

     : Aufruf mit sh readtest, wird fuer Eingabe angehalten
     echo Bitte geben Sie Kunden-Namen ein:
     read kunde1 kunde2 kunde3
     if [ -z "$kunde1" ]
     then exit 5
     else echo Kunde1: $kunde1
          echo Kunde2: $kunde2
          echo Kunde3: $kunde3
     fi

     Die Shell-Prozedur readtest wird aufgerufen:

     $ sh readtest
     Bitte geben Sie Kunden-Namen ein:
     Mayr Brandl Aulich Weigl
     Kunde1: Mayr
     Kunde2: Brandl
     Kunde3: Aulich Weigl


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

read(1)                                                             read(1)

     Nach dem Aufruf gibt die Shell-Prozedur die Meldung des Kommandos echo
     aus und startet read. Die Prozedur hält an, und read liest die einge-
     gebenen Namen der Kunden.

     Das Neue-Zeile-Zeichen beendet für read die Eingabe-Zeile. Der dritten
     Variablen kunde3 weist read zwei Namen zu, da die Eingabe-Zeile vier
     Argumente enthielt.

     Beispiel 2

     Das Kommando read liest die erste Zeile aus einer Datei:

     $ read zeile < /etc/group
     $ echo $zeile
     root::0:root

     In diesem Fall liest read auch bei wiederholtem Aufruf immmer wieder
     die erste Zeile der Datei /etc/group.

     Beispiel 3

     In der folgenden Shell-Prozedur soll das Kommando read nacheinander
     die Zeilen einer Datei lesen:

     : Aufruf mit sh lies
     exec < /etc/group
     for i in 1 2 3 4 5 6 7
     do
       read satz$i
       eval echo satz$i: \$satz$i
     done

     Mit dem eingebauten Shell-Kommando exec wird in der Shell-Prozedur
     lies die Standard-Eingabe für das nachfolgende Kommando read umgelenkt
     auf die Datei /etc/group.

     Wegen der for-Schleife wird read in der Prozedur siebenmal aufgerufen.
     Jeder Aufruf positioniert den Lesezeiger in /etc/group auf die nächste
     Zeile. Deshalb gibt echo die ersten sieben Zeilen der Datei /etc/group
     nacheinander aus:

     $ sh lies
     satz1: root::0:root
     satz2: daemon::1:daemon
     satz3: sys::2:sys:
     satz4: bin::3:bin,admin
     satz5: uucp::4:
     satz6: ces::5:
     satz7: other::10:gast,mgast,tele





Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

read(1)                                                             read(1)

     Die Angabe \$satz$i kann die Shell nur dann richtig auswerten, wenn
     sie die echo-Kommandozeile zweimal interpretiert; deshalb der Aufruf
     mit eval. Beim erstenmal interpretiert die Shell nur $i, denn das
     erste Dollarzeichen $ ist durch den Gegenschrägstrich \ entwertet.
     Beim zweitenmal interpretiert die Shell $satz[1-7].

HINWEISE
     Bei der Verwendung von read können sich Abweichungen im Verhalten
     ergeben, je nachdem, welche Shell benutzt wird. Die möglichen Abwei-
     chungen sind nicht eigens beschrieben.

SIEHE AUCH
     exec(1), ksh(1), sh(1).









































Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026