Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

csh(1)

ksh(1)

sh(1)

ascii(5)

meta-ascii(5)

echo(1)                                                             echo(1)

NAME
     echo - Aufruf-Argumente ausgeben

SYNTAX
     echo [argument ...]

BESCHREIBUNG
     Das Kommando echo schreibt seine Aufruf-Argumente auf die Standardaus-
     gabe und beendet sich. Vor der Ausgabe passiert folgendes:

     1. Wie bei jedem anderen Kommando, interpretiert die Shell die Komman-
        dozeile und übergibt an echo die aufbereiteten Aufruf-Argumente
        [siehe sh(1)]. Argument-Trenner sind für die Shell Leer- und Tabu-
        latorzeichen.

     2. echo interpretiert noch verbliebene Sonderzeichen, die die Ausgabe
        steuern (siehe Beschreibung zu argument).

     3. echo gibt die bearbeiteten Argumente wie folgt aus:

        -  Die einzelnen Argumente werden durch ein Leerzeichen voneinander
           getrennt, auch wenn Sie beim Aufruf mehrere Argument-Trennzei-
           chen zwischen den Argumenten eingegeben haben.

        -  Nach dem letzten Argument wird ein Neue-Zeile-Zeichen ausgege-
           ben.

     Sie können mit echo

     ⊕  den Inhalt von Shell-Variablen abfragen,

     ⊕  Meldungen in Shell-Prozeduren erzeugen und so die Funktionsweise
        testen,

     ⊕  testen, wie die Shell einen Kommando-Aufruf interpretiert, ohne daß
        das Kommando ausgeführt wird,

     ⊕  Daten in eine Pipe schicken und testen, wie die Pipe diese Eingabe
        verarbeitet.

ARGUMENTE
     argument
        Beliebige Zeichenkette, die jeweils durch Leer- oder Tabulatorzei-
        chen begrenzt wird. Das letzte Argument wird durch ein Kommando-
        Trennzeichen abgeschlossen.

        argument nicht angegeben: echo gibt nur eine Leerzeile aus.

        Sie können beliebig viele Argumente angeben, jeweils getrennt durch
        mindestens ein Tabulator- bzw. ein Leerzeichen.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

echo(1)                                                             echo(1)

        Wie bei jedem anderen Kommando auch wird die Zeichenkette zunächst
        von der Shell interpretiert:

        -  Enthält die Zeichenkette die Zeichen Stern * bzw. Fragezeichen ?
           bzw. [...], so ersetzt die Shell diese Zeichenkette durch alle
           passenden Dateinamen im aktuellen Verzeichnis. Paßt kein Datei-
           name, übergibt die Shell diese Zeichenkette unverändert an echo.

        -  'zeichenkette'

           Die Hochkommas entwerten alle Sonderzeichen der Shell. Die Shell
           übergibt die Zeichenkette ohne Hochkommas als ein Argument an
           echo. Alle zwischen den Hochkommas eingegebenen Leer-,
           Tabulator- und Neue-Zeile-Zeichen bleiben erhalten.

        -  `zeichenkette`

           Die Shell führt zeichenkette als Reliant UNIX Kommando aus und
           übergibt an echo die Ausgabe dieses Kommandos. Dabei interpre-
           tiert die Shell in der Ausgabe die Zeichen als Argument-Trenn-
           zeichen, die der Umgebungsvariablen IFS zugewiesen sind. Stan-
           dardmäßig sind IFS das Leer-, das Tabulator- und das Neue-
           Zeile-Zeichen zugewiesen.

        -  "zeichenkette"

           Die Anführungszeichen entwerten alle Sonderzeichen der Shell bis
           auf Gegenschrägstrich \, Gegenhochkommas `...` und Dollarzeichen
           $. Die Shell übergibt die bearbeitete Zeichenkette als ein Argu-
           ment an echo. Alle zwischen den Anführungszeichen eingegebenen
           Leer-, Tabulator- und Neue-Zeile-Zeichen bleiben erhalten.

        Das eingebaute Kommando echo interpretiert zusätzlich die nachfol-
        gend beschriebenen Steuerzeichen. Da der Gegenschrägstrich für die
        Shell eine Sonderbedeutung hat, muß er entwertet werden:

        -  Durch einen vorangestellten Gegenschrägstrich \

           Das gilt auch, wenn das Argument, das dieses Steuerzeichen ent-
           hält, in Anführungszeichen eingeschlossen ist.

        -  Durch Hochkommas '...'

           Ist das Argument, das dieses Steuerzeichen enthält, in Hochkom-
           mas eingeschlossen, so ist der Gegenschrägstrich bereits entwer-
           tet.








Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

echo(1)                                                             echo(1)

        Beispiel:
        _________________________
       | Eingabe     |  Ausgabe |
       |_____________|__________|
       | hallo\\bi   |  halli   |
       |_____________|__________|
       | hallo'\'bi  |  halli   |
       |_____________|__________|
       | 'hallo\bi'  |  halli   |
       |_____________|__________|
       | "hallo\\bi" |  halli   |
       |_____________|__________|

        Die folgenden Steuerzeichen beeinflussen die Ausgabe von echo,
        falls der Gegenschrägstrich entsprechend entwertet ist:

        \a    (a - alert) Warnung, Klingel; bei Ausgabe auf den Bildschirm
              ertönt in der Regel ein Piepston, bei Ausgabe auf den Drucker
              hat das Zeichen keine Wirkung.

              \a entspricht CTRL-G

              \a wird nur von der Korn-Shell ksh interpretiert.

        \b    (b - backspace) echo setzt die Schreibmarke um eine Spalte
              zurück. Ein nach dem Steuerzeichen eingegebenes Zeichen über-
              schreibt das Zeichen über der Schreibmarke.

              \b entspricht BACKSPACE bzw. CTRL-H

        \c    echo gibt nur aus, was bis zu diesem Steuerzeichen eingegeben
              wurde, und schließt die Ausgabe nicht mit einem Neue-Zeile-
              Zeichen ab.

        \f    (f - form feed) Seitenvorschub; bei Ausgabe auf den Bild-
              schirm wird dieses Steuerzeichen nicht umgesetzt.

              echo schreibt das, was nach dem Steuerzeichen eingegeben
              wurde, auf die nächste Seite, z. B. wenn die Ausgabe von echo
              an den Drucker geschickt wird.

              \f entspricht CTRL-L

        \n    (n - new line) Zeilenvorschub; echo schreibt das, was nach
              dem Steuerzeichen eingegeben wurde, in die nächste Zeile.

              \n entspricht RETURN bzw. CTRL-J







Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

echo(1)                                                             echo(1)

        \r    (r - carriage return) Wagenrücklauf; echo setzt die Schreib-
              marke auf Spalte 1 der aktuellen Zeile. Die Zeichen, die nach
              dem Steuerzeichen eingegeben wurden, überschreiben die Zei-
              chen, die echo auf den entsprechenden Spalten bereits ausge-
              geben hat.

              \r entspricht CTRL-M

        \t    Steuerzeichen für Tabulator; echo setzt die Schreibmarke auf
              den nächsten Tabulator. Die Zeichen, die nach \t eingegeben
              wurden, schreibt echo ab dieser Spalte weiter.

              Die Tabulator-Positionen sind abhängig von dem verwendeten
              Terminal. Für ein Siemens-Nixdorf-Terminal 97801 sind Tabula-
              toren auf folgende Spalten gesetzt:

              1   9   17   25   33   41   49   57   65   73   79

              \t entspricht TAB bzw. CTRL-I

        \v    Steuerzeichen für Vertikal-Tabulator; echo setzt die Schreib-
              marke auf den nächsten Vertikal-Tabulator. Normalerweise sind
              Vertikal-Tabulatoren nicht eingestellt (geräteabhängig).

              \v entspricht CTRL-K

        \\    Gibt einen Gegenschrägstrich (\) aus.

        \0n   n muß eine ein-, zwei- oder dreistellige Oktalzahl sein. Das
              Kommando echo gibt das entsprechende Zeichen aus [siehe
              ascii(5) und meta-ascii(5)]. Auf diese Weise können Sie bei-
              spielsweise Zeichen erzeugen, deren interner Code einen Wert
              größer 7f (hexadezimal) hat, auch wenn Sie kein 8-Bit-Termi-
              nal haben.

              Für nicht darstellbare Zeichen wird ein Schmierzeichen ausge-
              geben (geräteabhängig).

              Vorsicht:

              Wenn Sie nach einem oktal beschriebenen Zeichen eine Ziffer
              ausgeben wollen, dann müssen Sie die Oktalzahl dreistellig
              angeben.











Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

echo(1)                                                             echo(1)

              Beispiel:
              _______________________________________________
             | Kommando               | Ergebnis            |
             |________________________|_____________________|
             |                        | 0adf        (hex)   |
             | echo '\0337' | od -xc  |_____________________|
             |                        | 337 \n      (ascii) |
             |________________________|_____________________|
             |                        | 371b  000a  (hex)   |
             | echo '\00337' | od -xc |_____________________|
             |                        | 033  7  \n  (ascii) |
             |________________________|_____________________|

     Sollen diese Steuerzeichen weder von der Shell noch von echo interpre-
     tiert werden, müssen Sie sie wie folgt eingeben:
     _________________________________
    | Eingabe |  Ausgabe             |
    |_________|______________________|
    | \\      |  das Zeichen \       |
    |_________|______________________|
    | \\\\b   |  die Zeichenkette \b |
    |_________|______________________|
    | '\\b'   |  die Zeichenkette \b |
    |_________|______________________|
    | "\\\b"  |  die Zeichenkette \b |
    |_________|______________________|

     Für die übrigen Zeichenketten gilt dies entsprechend.

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.

BEISPIELE
     Beispiel 1

     Der folgende Bildschirm-Dialog soll zeigen, wann Leerzeichen, Tabula-
     torzeichen und Neue-Zeile-Zeichen erhalten bleiben:

     $ echo Heute ist        Montag.
     Heute ist Montag.

     Hier erhält echo drei Argumente und gibt sie aus, jeweils getrennt
     durch ein Leerzeichen.







Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

echo(1)                                                             echo(1)

     $ echo "Heute ist        Montag."
     Heute ist        Montag.

     Zwischen den Anführungszeichen bleiben alle eingegebenen Leerzeichen
     erhalten.

     $ echo `ls p*`
     pers pp ppp probe punkt pwd pwddr

     $ echo "`ls p*`"
     pers
     pp
     ppp
     probe
     punkt
     pwd
     pwddr

     Ohne Anführungszeichen entfernt die Shell alle Argument-Trenner bis
     auf ein Leerzeichen aus der Ausgabe des Kommandos ls und übergibt sie
     an echo.

     Die Anführungszeichen sorgen dafür, daß alle Leer-, Tabulator- und
     Neue-Zeile-Zeichen erhalten bleiben.

     Beispiel 2

     Die Benutzerin anna will wissen, welcher Wert der Variablen HOME zuge-
     wiesen ist:

     $ echo $HOME
     /home/anna

     Beispiel 3

     Die folgende Zeile in einer Shell-Prozedur bewirkt, daß auf die Stan-
     dardfehlerausgabe eine Fehlermeldung ausgegeben wird:

     echo Die Datei $1 ist nicht vorhanden >&2

     Beispiel 4

     Die folgende Zeile in einer Shell-Prozedur bewirkt, daß vor der Feh-
     lermeldung ein akustisches Signal ertönt:

     echo \\07Die Datei $1 ist nicht vorhanden >&2








Seite 6                      Reliant UNIX 5.44               Gedruckt 11/98

echo(1)                                                             echo(1)

     Beispiel 5

     Vor die Ausgabe des Kommandos date soll eine konstante Zeichenkette
     gestellt werden:

     $ echo "Heutiges Datum mit Uhrzeit:  \\c"; date
     Heutiges Datum mit Uhrzeit:  Wed Mar  8 17:22:05 MDT 1989

     Das Steuerzeichen \c bewirkt, daß echo kein Neue-Zeile-Zeichen aus-
     gibt. Trotz der Anführungszeichen muß der Gegenschrägstrich entwertet
     werden.

HINWEISE
     echo existiert sowohl als externes Kommando (/usr/bin/echo) als auch
     als eingebautes Shell-Kommando (Built-in), und zwar sowohl der Korn-
     Shell ksh(1) wie auch der Bourne-Shell sh(1). Für die Ausführung von
     /usr/bin/echo erzeugt die Shell einen neuen Prozeß.

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

     Das externe Kommando /usr/bin/echo kennt die Option -n, mit der ein
     Zeilenvorschub bei der Ausgabe unterdrückt wird [ähnlich wie das BSD-
     Kommando /usr/ucb/echo, siehe echo(1-ucb)].

SIEHE AUCH
     csh(1), ksh(1), sh(1), ascii(5), meta-ascii(5).


























Seite 7                      Reliant UNIX 5.44               Gedruckt 11/98

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