Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getopt(1)

getoptcvt(1)

ksh(1)

sh(1)

getopts(1)                                                       getopts(1)

NAME
     getopts - Argumente einer Prozedur nach Optionen durchsuchen

SYNTAX
     getopts optstring name [arg ...]

BESCHREIBUNG
     Das in die Shell sh bzw. ksh eingebaute Kommando getopts wird in
     Shell-Prozeduren verwendet, um die Argumente und Optionen in der Kom-
     mandozeile zu analysieren und auf Gültigkeit zu überprüfen. Alle
     Regeln des Syntax-Standards für Kommandozeilen werden unterstützt.

     getopts ersetzt das ältere Kommando getopt(1), das in zukünftigen
     Betriebssystemversionen nicht mehr unterstützt werden wird. Daher
     sollten Sie immer getopts statt getopt verwenden. Vorhandene Shell-
     Prozeduren können Sie mit getoptcvt(1) von getopt auf getopts umstel-
     len.

     getopts können Sie in Shell-Prozeduren zur Analyse der beim Prozedur-
     aufruf angegebenen Argumente verwenden. Die einzelnen Optionen und
     Argumente werden der Reihe nach in Shell-Variablen abgelegt und können
     so einfach abgefragt bzw. überprüft werden. Wenn in der Argumentliste
     eine Option nicht zulässig ist oder wenn getopts für eine Option, die
     ein Argument verlangt, kein zugehöriges Argument erkennt, dann gibt
     getopts eine entsprechende Fehlermeldung aus.

     Damit alle Prozeduren und Kommandos die Argumentliste einheitlich ver-
     arbeiten, sollte die Argumentliste immer mit getopts analysiert und
     auf gültige Optionen untersucht werden.

ARGUMENTE
     optstring
          Zeichenkette, die aus Buchstaben und Doppelpunkten : bestehen
          kann. Die in optstring angegebenen Buchstaben werden von getopts
          als zulässige Optionen der Shell-Prozedur betrachtet. Wenn hinter
          einem Buchstaben ein Doppelpunkt steht, so erwartet getopts für
          diese Option ein Argument oder eine Gruppe von Argumenten, die
          durch Leerzeichen oder Tabulatorzeichen von der Option getrennt
          sein müssen.

     name Name der Shell-Variablen, die bei jedem Aufruf von getopts mit
          der jeweils nächsten Option belegt wird.

     arg ...
          Argumentliste, die von getopts analysiert wird.

          arg nicht angegeben:

          getopts analysiert die Argumentliste der Kommandozeile, mit der
          die Prozedur aufgerufen wurde.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

getopts(1)                                                       getopts(1)

ARBEITSWEISE
     Bei jedem Aufruf von getopts wird die Shell-Variable name mit dem Wert
     der jeweils nächsten Option belegt. Die Shell-Variable OPTIND wird mit
     der Nummer des nächsten Arguments belegt, das noch nicht verarbeitet
     wurde. OPTIND wird immer mit dem Wert 1 initialisiert, wenn der Kom-
     mandointerpreter Shell oder eine Shell-Prozedur aufgerufen wird.

     Bei Optionen, die ein Argument verlangen, wird die Shell-Variable
     OPTARG mit diesem Argument belegt. Optionen, die ein Argument verlan-
     gen, müssen in optstring mit einem Doppelpunkt : gekennzeichnet sein.

     Wird eine ungültige Option erkannt, so wird die Shell-Variable name
     mit einem Fragezeichen ? belegt. Ungültige Optionen sind solche, die
     nicht in optstring vorkommen.

     Wenn das Ende der Optionsliste erreicht wurde, beendet sich getopts
     mit einem Endestatus ungleich Null. Das Ende der Optionsliste kann
     auch mit der speziellen Option -- gekennzeichnet werden.

     Wird der Wert der Shell-Variablen OPTIND verändert oder getopts mit
     unterschiedlichen Argumentlisten aufgerufen, so kann dies zu unerwar-
     teten Ergebnissen führen.

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
     Der folgende Ausschnitt aus einer Shell-Prozedur proz zeigt, wie die
     Argumente einer Prozedur verarbeitet werden können. Für proz sind die
     Optionen -a, -b und -o zulässig, für -o ist ein Argument erforderlich.
     Die Optionen -a und -b schließen sich gegenseitig aus; werden trotzdem
     beide angegeben, ist nur die zuletzt angegebene gültig:

     while getopts abo: c
     do
           case $c in
           a | b)          FLAG=$c;;
           o)              OARG=$OPTARG;;
           \?)             echo "usage: $0 [-a | -b] [-o <arg>]"
                           exit 2;;
           esac
     done
     shift `expr $OPTIND - 1`







Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

getopts(1)                                                       getopts(1)

     Durch dieses Programmstück sind z. B. die folgenden Aufrufe von proz
     gleichbedeutend:

     proz -a -b -o "xxx z yy" datei
     proz -a -b -o "xxx z yy" -- datei
     proz -ab -o xxx,z,yy datei
     proz -ab -o "xxx z yy" datei
     proz -o xxx,z,yy -b -a datei

HINWEISE
     getopts existiert sowohl als externes Kommando (/usr/bin/getopts) 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/getopts erzeugt die Shell einen neuen Prozeß.

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

SIEHE AUCH
     getopt(1), getoptcvt(1), ksh(1), sh(1).

































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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