Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ command(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getconf(1)

ksh(1)

type(1)

command(1)                                                       command(1)

NAME
     command - Einen einfachen Befehl ausführen

SYNTAX
     command [-p] kommandoname [argument ...]

     command [-v | -V] kommandoname

BESCHREIBUNG
     Bei der Angabe des Kommandos command behandelt die Shell die Argumente
     als einfache Kommandos, wobei die Funktionssuche der Shell unterdrückt
     wird.

     Wenn der Kommandoname kommandoname derselbe Name wie der eines spe-
     ziellen eingebauten Kommandos ist, treten die besonderen Merkmale der
     speziellen eingebauten Kommandos nicht in Erscheinung. Wenn es sich
     bei kommandoname nicht um einen Funktionsnamen handelt, hat command in
     jeder anderen Hinsicht dieselbe Auswirkung als wäre command gar nicht
     angegeben.

     Das Kommando command stellt darüber hinaus auch Informationen für die
     Interpretation eines Kommandonamens durch die Shell zur Verfügung.
     Siehe -v und -V.

OPTIONEN
     -p   Führt die Kommandosuche mit Hilfe eines Standardwerts für PATH
          durch. Über diesen Standardpfadnamen sind alle Standardkommandos
          zugänglich.

     -v   Gibt den Pfadnamen oder das Kommando, mit dem die Shell
          kommandoname in ihrer aktuellen Ausführungsumgebung aufruft, auf
          die Standardausgabe aus.

          -  Kommandos, reguläre eingebaute Kommandos, Kommandonamen
             (kommandoname), die einen Schrägstrich enthalten, und alle zur
             Verfügung gestellten Funktionen, die über die Variable PATH
             gefunden werden können, werden als absolute Pfadnamen ausgege-
             ben.

          -  Shell-Funktionen, spezielle eingebaute Kommandos und reguläre
             eingebaute Kommandos, die nicht über PATH gefunden werden kön-
             nen, sowie reservierte Wörter innerhalb der Shell werden
             lediglich als einfache Namen ausgegeben.

          -  Bei einem Alias wird die Alias-Definition ausgegeben.

          -  In allen anderen Fällen wird nichts ausgegeben. Der Endestatus
             gibt dann an, daß der Name nicht gefunden wurde.







Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

command(1)                                                       command(1)

     -V   Gibt aus, wie kommandoname von der Shell in ihrer aktuellen Aus-
          führungsumgebung interpretiert wird. Die Ausgabe gibt an, in wel-
          che der folgenden Kategorien kommandoname gehört, und enthält die
          folgenden Informationen:

          -  Kommandos, reguläre eingebaute Kommandos und alle zur Verfü-
             gung gestellten Funktionen, die über die Variable PATH gefun-
             den werden können, werden als solche identifiziert und mit den
             absoluten Pfadnamen ausgegeben.

          -  Andere Shell-Funktionen werden als Funktionen identifiziert.

          -  Aliasse werden als solche identifiziert, und als Alias-Defini-
             tionen ausgegeben.

          -  Spezielle eingebaute Kommandos werden als solche identifiziert.

          -  Reguläre eingebaute Kommandos, die nicht über PATH gefunden
             werden können, werden als reguläre eingebaute Kommandos iden-
             tifiziert.

          -  Reservierte Wörter in der Shell werden als reservierte Wörter
             identifiziert.

     argument
          Zeichenkette, die als Argument an kommandoname übergeben wird.

     kommandoname
          Der Name eines Kommandos oder eines speziellen eingebauten Kom-
          mandos.

UMGEBUNGSVARIABLEN
     LANG         Gibt einen Standardwert für die Internationalisierungs-
                  variablen an, die nicht gesetzt oder null sind. Ist LANG
                  nicht gesetzt oder null, wird der entsprechende Standard-
                  wert der internationalen Umgebung verwendet. Enthält eine
                  der Internationalisierungsvariablen eine ungültige Ein-
                  stellung, verhält sich das Kommando so, als wäre keine
                  der Variablen definiert.

     LCALL       Ist diese Variable auf einen Wert gesetzt, d. h. ist sie
                  nicht leer, überschreibt dieser Wert die Werte aller
                  übrigen Internationalisierungsvariablen.

     LCCTYPE     Legt die internationale Umgebung für die Interpretation
                  von Byte-Folgen als Zeichen fest (z. B. Einzelbytezeichen
                  im Unterschied zu Mehrbytezeichen in Argumenten).

     LCMESSAGES  Legt das Format und den Inhalt von Fehlermeldungen fest.
                  Die hier angegebene internationale Umgebung gilt auch für
                  informative Meldungen, die auf die Standardausgabe
                  geschrieben werden.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

command(1)                                                       command(1)

     NLSPATH      Legt die Position der Meldungskataloge für die Verarbei-
                  tung von LCMESSAGES fest.

     PATH         Legt den bei der Kommandosuche verwendeten Suchpfad fest,
                  außer wenn mit -p ein Standardwert gesetzt wurde.

ENDESTATUS
     Wenn eine der Optionen -v oder -V angegeben ist, werden die folgenden
     Endewerte zurückgegeben:

     0    Erfolgreiche Beendigung.

     >0   kommandoname konnte nicht gefunden werden, oder ein Fehler ist
          aufgetreten.

     Andernfalls werden die folgenden Endewerte zurückgegeben:

     126  Das von kommandoname angegebene Kommando konnte zwar gefunden,
          jedoch nicht aufgerufen werden.

     127  Beim Kommando command ist ein Fehler aufgetreten, oder das von
          kommandoname angegebene Kommando konnte nicht gefunden werden.

     Andernfalls wird der Endestatus von kommandoname zurückgegeben.

ANWENDUNGSHINWEISE
     Die Reihenfolge der Kommandosuche ermöglicht es Funktionen, reguläre
     eingebaute Kommandos und Suchpfade zu überschreiben. command ermög-
     licht Funktionen, die denselben Namen haben wie ein Kommando, das Kom-
     mando aufzurufen (und nicht rekursiv die Funktion).

     Der Standardpfad des Systems kann mit getconf(1) abgefragt werden. Da
     getconf jedoch möglicherweise selbst über PATH aufgerufen wird, kann
     der folgende Aufruf nützlich sein:

          command -p getconf CSPATH

     Gelegentlich ist es von Vorteil, das besondere Verhalten von speziel-
     len eingebauten Kommandos zu unterdrücken. Im folgenden Beispiel wird
     der Abbruch eines nichtinteraktiven Scripts verhindert, so daß der
     Ausgabestatus von dem Script geprüft werden kann.

          command exec > unwritable-file

     Da die Optionen -v und -V des Kommandos command Ausgaben erstellen,
     die von der aktuellen Shell-Ausführungsumgebung abhängen, wird command
     als reguläres eingebautes Kommando der Shell zur Verfügung gestellt.
     Wenn es in einer Subshell oder einer separaten Ausführungsumgebung
     aufgerufen wird, wie im folgenden Beispiel, können inkorrekte Ergeb-
     nisse auftreten:




Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

command(1)                                                       command(1)

          (PATH=foo command -v)
          nohup command -v

     Wenn es beispielsweise mit nohup oder exec in einer separaten Ausfüh-
     rungsumgebung aufgerufen wird, können eventuell Aliasse, Funktionen
     oder spezielle eingebaute Kommandos nicht identifiziert werden.

BEISPIELE
     1. Folgendermaßen kann eine Version von cd erstellt werden, die nach
        dem Wechsel das neue Arbeitsverzeichnis ausgibt:

        cd1() {
             command cd "$@" >/dev/null
             pwd
        }

        Achtung: Da cd ein eingebautes Shell-Kommando ist, darf es gemäß
        X/Open-Spezifikation nicht redefiniert werden. Daher muß der Name
        "cd" nach "cd1" geändert werden [vgl. sh(1), Kapitel Eine Shell-
        Funktion definieren].

     2. Folgendermaßen können Sie ein "sicheres Shell-Script" starten, das
        von seinem Vaterprozeß nicht irregeführt werden kann:

        IFS='
        '
        # The preceding value should be <space><tab><newline>.
        # Set IFS to its default value.

        \unalias -a
        # Unset all possible aliases.
        # Note that unalias is escaped to prevent an alias
        # being used for unalias.

        unset -f command
        # Ensure command is not a user function.

        PATH="$(command -p getconf CSPATH):$PATH"
        # Put on a reliable PATH prefix.
        # ...

        Sofern die korrekten Berechtigungen für die von PATH aufgerufenen
        Verzeichnisse bestehen, kann das Script nun sicherstellen, daß aus-
        schließlich die gewünschten Kommandos aufgerufen werden.

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




Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

command(1)                                                       command(1)

     Bei der Verwendung von command können sich Abweichungen im Verhalten
     ergeben, je nachdem, welches Kommando benutzt wird. Die möglichen
     Abweichungen sind nicht eigens beschrieben.

SIEHE AUCH
     getconf(1), ksh(1), type(1).
















































Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

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