Provided by: manpages-de_2.5-1_all bug

BEZEICHNUNG

       getopt - Befehlsoptionen auswerten (erweitert)

ÜBERSICHT

       getopt Optionszeichenkette Parameter
       getopt [Optionen] [--] Optionszeichenkette Parameter
       getopt [Optionen] -o|--options Optionszeichenkette [Optionen] [--] Parameter

BESCHREIBUNG

       getopt  wird  dazu  verwandt, Optionen in Befehlszeilen für die leichtere Auswertung durch
       Shell-Prozeduren auseinanderzunehmen und auf gültige  Optionen  zu  prüfen.  Es  verwendet
       hierfür die Routinen GNU getopt(3).

       Die  mit  getopt aufgerufenen Parameter können in zwei Teile zerlegt werden: Optionen, die
       die Auswertung durch getopt verändern (die Optionen und  die  Optionszeichenkette  in  der
       ÜBERSICHT) und den Parametern, die ausgewertet werden sollen (Parameter in der ÜBERSICHT).
       Der zweite Teil beginnt beim ersten von einer Option  verschiedenen  Parameter,  der  kein
       Argument  für  eine  Option  ist, oder nach dem ersten Auftreten von »--«. Falls im ersten
       Teil weder die Option »-o« noch »--options« gefunden wird, wird der  erste  Parameter  des
       zweiten Teils als kurze Optionszeichenkette verwandt.

       Falls  die  Umgebungsvariable GETOPT_COMPATIBLE gesetzt ist oder der erste Parameter keine
       Option ist (er startet nicht mit »-«, dem ersten Format  in  der  ÜBERSICHT)  wird  getopt
       Ausgaben  erzeugen, die mit denen anderer Versionen von getopt(1) kompatibel sind. Es wird
       weiterhin  Parameter  tauschen  und  optionale   Argumente   erkennen   (siehe   Abschnitt
       KOMPATIBILITÄT für weitere Informationen).

       Traditionelle  Implementierungen  von getopt(1) sind nicht in der Lage, mit Leerräumen und
       anderen (Shell-spezifischen) Sonderzeichen in Argumenten und in von Optionen verschiedenen
       Parametern  umzugehen.  Um  dieses  Problem zu lösen, kann diese Implementierung maskierte
       Ausgaben erzeugen, die erneut durch die Shell (normalerweise  mittels  des  Befehls  eval)
       interpretiert  werden  müssen. Damit werden diese Zeichen erhalten. Sie müssen aber getopt
       dergestalt aufrufen, dass es nicht länger zu anderen Versionen kompatibel ist (das  zweite
       oder  dritte Format in der ÜBERSICHT). Um zu prüfen, ob bei Ihnen diese erweiterte Version
       von getopt(1) installiert ist, kann eine spezielle Test-Option (-T) verwandt werden.

OPTIONEN

       -a, --alternative
              erlaubt es, lange Optionen mit einem einfachen »-« zu beginnen.

       -h, --help
              zeigt einen Hilfetext und beendet das  Programm.  Es  wird  keine  weitere  Ausgabe
              erzeugt.

       -l, --longoptions Langoptionen
              Die  lange  (Mehrzeichen-)Option,  die  erkannt  werden  soll. Es kann mehr als ein
              Optionsnamen auf einmal angegeben werden, indem die Namen  durch  Kommata  getrennt
              werden.  Diese  Option  kann mehr als einmal verwandt werden, die Langoptionen sind
              kumulativ. Jeder lange Optionsname in Langoptionen  darf  durch  einen  Doppelpunkt
              gefolgt  werden,  um  anzuzeigen, dass er ein zwingend verlangtes Argument hat, und
              durch zwei Doppelpunkte, um anzuzeigen, dass er ein optionales Argument hat.

       -n, --name Progname
              Der Name, der von den getopt(3)-Routinen beim Berichten von Fehlern verwandt  wird.
              Beachten  Sie, dass Fehler von getopt(1) weiterhin als von Getopt-kommend berichtet
              werden.

       -o, --options Kurzoptionen
              Die kurzen (ein-Zeichen)-Optionen, die erkannt werden sollen.  Falls  diese  Option
              nicht gefunden wird, wird der erste Parameter von getopt, der nicht mit »-« startet
              (und kein Optionsargument ist), als  die  Kurzoptionszeichenkette  verwandt.  Jedes
              Kurzoptionszeichen  in  shortopts  kann  von  einem  Doppelpunkt gefolgt werden, um
              anzuzeigen, dass er ein verpflichtendes Argument hat, und von  zwei  Doppelpunkten,
              um  anzuzeigen,  dass  er  ein  optionales  Argument  hat.  Das  erste  Zeichen von
              »shortopts« kann ein »+« oder  »-«  sein,  um  zu  beinflussen,  wie  die  Optionen
              ausgewertet  und  die  Ausgabe  generiert  wird  (siehe  Abschnitt EINLESE-MODI für
              Details).

       -q, --quiet
              deaktivert Fehlermeldung durch getopt(3).

       -Q, --quiet-output
              erzeugt keine normale Ausgabe. Fehler werden durch getopt(3)  gemeldet,  außer  Sie
              verwenden auch -q.

       -s, --shell Shell
              setzt  die  Maskierungsoptionen  auf  die  der  Shell.  Falls  die  Option -s nicht
              angegeben ist, werden die Konventionen der BASH verwandt.  Gültige  Argumente  sind
              derzeit »sh«, »bash«, »csh« und »tcsh«.

       -T, --test
              prüft,  ob  Ihr getopt(1) diese erweiterte Version oder eine alte Version ist. Dies
              erzeugt keine Ausgabe und setzt den Fehlerstatus auf  4.  Andere  Implementierungen
              von  getopt(1)  und  diese  Version,  falls die Umgebungsvariable GETOPT_COMPATIBLE
              gesetzt ist, liefern »--« und einen Fehlerstatus von 0.

       -u, --unquoted
              maskiert  die  Ausgabe  nicht.  Beachten   Sie,   dass   Leerraum   und   besondere
              (Shell-abhängige) Zeichen in diesem Modus zu Chaos führen können (wie sie dies auch
              in anderen Implementierungen von getopt(1) erzeugen).

       -V, --version
              zeigt die Versionsinformationen und beendet sich. Es  wird  keine  weitere  Ausgabe
              erzeugt.

AUSWERTUNG

       Dieser  Abschnitt  legt  das  Format  des  zweiten  Teils  der  Parameter  von getopt (den
       Parametern in  der  ÜBERSICHT)  fest.  Der  nächste  Abschnitt  (AUSGABE)  beschreibt  die
       erstellte Ausgabe. Diese Parameter waren typischerweise die, mit denen eine Shell-Funktion
       aufgerufen  wurde.  Es  muss  aufgepasst  werden,  dass  jeder  Parameter,  mit  dem  eine
       Shell-Funktion  aufgerufen  wurde,  genau einem Parameter in der Parameterliste von getopt
       entspricht   (siehe    BEISPIELE).    Die    gesamte    Auswertung    erfolgt    in    den
       GNU-getopt(3)-Routinen.

       Die  Parameter  werden  von  links  nach  rechts  ausgewertet.  Jeder  Parameter  wird als
       Kurzoption, als Langoption, als Argument für eine Option  oder  als  Nichtoptionsparameter
       eingestuft.

       Eine  einfache  Kurzoption  ist  ein  »-«  gefolgt von einem Kurzoptionszeichen. Falls die
       Option ein zwingendes Argument hat, darf  es  direkt  nach  dem  Optionszeichen  oder  als
       nächster  Parameter  (d.h.  getrennt  durch  ein  Leerraumzeichen  auf  der  Befehlszeile)
       geschrieben werden. Falls die Option ein optionales Argument hat, muss es sofern vorhanden
       direkt nach dem Optionszeichen geschrieben werden.

       Es  ist  möglich,  mehrere  Kurzoptionen  nach  einem »-« festzulegen, solange alle (außer
       möglicherweise dem letzten) keine zwingenden oder optionalen Argumente haben.

       Eine Langoption beginnt normalerweise mit »--« gefolgt von dem Namen der Langoption. Falls
       die Option ein zwingendes Argument kann, darf dieses direkt nach dem Namen der Langoption,
       getrennt  durch  ein  »=«,  oder  als  das  nächste  Argument  (d.h.  getrennt  durch  ein
       Leerraumzeichen  auf der Befehlszeile) geschrieben werden. Falls die Option ein optionales
       Argument hat, muss es, falls vorhanden, direkt nach dem  Namen  der  Langoption,  getrennt
       durch ein »=« geschrieben werden. Falls Sie das »=« hinzufügen, aber nichts dahinter, wird
       es so interpretiert, als ob kein Argument vorhanden wäre; dies  ist  ein  kleiner  Fehler,
       siehe  FEHLER. Langoptionen dürfen abgekürzt werden, so lange die Abkürzung noch eindeutig
       ist.

       Jeder Parameter, der nicht mit einem  »-«  anfängt  und  kein  zwingendes  Argument  einer
       vorherigen   Option  ist,  ist  ein  Nichtoptionsparameter.  Jeder  Parameter  nach  einem
       »--«-Parameter   wird   immer   als   Nichtoptionsparameter   interpretiert.   Falls   die
       Umgebungsvariable  POSIXLY_CORRECT  gesetzt ist oder falls die Kurzoptionszeichenkette mit
       einem  »+«  anfängt,  werden  alle  verbliebenen   Parameter   als   Nichtoptionsparameter
       interpretiert, sobald der erste Nichtoptionsparameter gefunden wird.

AUSGABE

       Für  jedes  im  vorherigen  Abschnitt beschriebene Element wird eine Ausgabe erstellt. Die
       Ausgabe erfolgt in der Reihenfolge, in der die Elemente in der  Eingabe  vorliegen,  außer
       für  Nichtoptionsparameter.  Die  Ausgabe  kann  im  kompatiblen  (nicht maskierten) Modus
       erfolgen, oder so,  dass  Leerraumzeichen  und  andere  besondere  Zeichen  innerhalb  von
       Argumenten  und Nichtoptionsparametern erhalten werden (siehe MASKIEREN). Wenn die Ausgabe
       in einem Shell-Skript verarbeitet wird, wird sie so erscheinen, als ob sie aus  getrennten
       Elementen  bestünde,  die einer nach dem anderen verarbeitet werden können (in den meisten
       Shell-Sprachen mittels des Befehls »shift«). Im  nicht  maskierten  Modus  ist  das  nicht
       perfekt,   da  Elemente  an  unerwarteten  Stellen  aufgetrennt  sein  können,  falls  sie
       Leerraumzeichen oder besondere Zeichen enthalten.

       Falls es beim  Auswerten  der  Parameter  Probleme  gibt,  beispielsweise  ein  zwingendes
       Argument  nicht  gefunden  oder eine Option nicht erkannt wird, wird ein Fehler auf Stderr
       berichtet. Es wird auch keine Ausgabe des betroffenen Elements  geben  und  ein  von  Null
       verschiedener Fehlerstatus wird zurückgeliefert.

       Für  eine  Kurzoption  wird  ein  einzelnes  »-«  und das Optionszeichen als ein Parameter
       erstellt. Falls die Option ein Argument hat, wird der nächste Parameter das Argument sein.
       Falls die Option ein optionales Argument hat, aber keines gefunden wurde, wird der nächste
       Parameter  erstellt,  aber  im  maskierten  Modus   leer   sein.   Im   nicht   maskierten
       (kompatibilitäts-)Modus  wird  kein  zweiter  Parameter erstellt. Beachten Sie, dass viele
       andere getopt(1)-Implementierungen optionale Argumente nicht unterstützen.

       Falls mehrere Kurzoptionen nach einem einzelnen »-« angegeben wurden,  wird  jede  in  der
       Ausgabe als separater Parameter vorhanden sein.

       Für  eine Langoption werden »--« und der komplette Optionsname als ein Parameter erstellt.
       Dies erfolgt unabhängig davon, ob die Option abgekürzt war oder mit einem einzelnen »-« in
       der Eingabe festgelegt wurde. Argumente werden wie bei den Kurzoptionen gehandhabt.

       Normalerweise wird keine Ausgabe für die Nichtoptionsparameter erstellt, bis alle Optionen
       und ihre Argumente erstellt wurden. Dann wird »--«  als  einzelner  Parameter  und  danach
       werden  die  Nichtoptionsparameter  in  der  gefundenen  Reihenfolge,  jeder als separater
       Parameter, erstellt. Nur falls das erste Zeichen der Kurzoptionszeichenkette ein »-«  war,
       wird  die  Ausgabe  der  Nichtoptionsparameter  an  der Stelle erstellt, an der sie in der
       Eingabe gefunden wurden (dies wird nicht  unterstützt,  falls  das  erste  Format  in  der
       ÜBERSICHT  verwandt wird; in diesem Fall werden alle vorangestellt auftretende »-« und »+«
       ignoriert).

MASKIEREN

       Im Kompatibilitätsmodus werden Leerraumzeichen und »besondere« Zeichen in Argumenten nicht
       richtig  behandelt.  Da  die  Ausgabe  an das Shell-Skript übergeben wird, weiß das Skript
       nicht, wie es die Ausgabe in separate  Parameter  zerlegen  soll.  Um  dieses  Problem  zu
       umgehen, bietet diese Implementierung das Maskieren an. Die Idee ist, dass die Ausgabe mit
       Anführungszeichen um jeden Parameter erstellt wird. Wenn  diese  Ausgabe  wieder  an  eine
       Shell  (normalerweise mit dem Befehl eval einer Shell) übergeben wird, wird sie korrekt in
       separate Parameter zerlegt.

       Maskieren wird nicht aktiviert, falls die Umgebungsvariable GETOPT_COMPATIBLE gesetzt  ist
       oder falls die erste Form der ÜBERSICHT verwandt oder falls die Option »-u« gefunden wird.

       Verschiedene  Shells verwenden verschiedene Maskierungskonventionen. Sie können die Option
       »-s« verwenden, um die von Ihnen verwandte Shell auszuwählen. Die folgenden Shells  werden
       derzeit  unterstützt:  »sh«,  »bash«,  »csh«  und  »tcsh«.  Tatsächlich  werden  nur  zwei
       »Varianten«    unterschieden:    Sh-artige    Maskierungskonventionen    und    Csh-artige
       Maskierungskonventionen.  Es  ist  gut möglich, dass eine dieser Varianten verwandt werden
       kann, falls sie eine andere Shell-Skript-Sprache verwenden.

EINLESE-MODI

       Das erste Zeichen der Zeichenkette von Kurzoptionen kann ein »-« oder  ein  »+«  sein,  um
       einen  speziellen  Einlese-Modus  anzugeben. Wenn die erste Form verwendet wird, die unter
       ÜBERSICHT angegeben  ist,  werden  sie  ignoriert.  Trotzdem  wird  die  Umgebungsvariable
       POSIXLY_CORRECT ausgewertet.

       Wenn das erste Zeichen ein »+« ist oder die Umgebungsvariable POSIXLY_CORRECT gesetzt ist,
       wird die Auswertung beendet, sobald der erste Nichtoptionsparameter (also  ein  Parameter,
       der  nicht  mit  einem  »-«  beginnt)  erkannt  wird,  der  kein  Optionsargument ist. Die
       restlichen Parameter werden alle als Nichtoptionsparameter interpretiert.

       Wenn das erste Zeichen ein »-« ist, werden Nichtoptionsparameter an der Stelle ausgegeben,
       an  der  sie  gefunden  werden.  Im  normalen  Modus  werden  sie alle am Ende der Ausgabe
       gesammelt,  nachdem  ein  »--«-Parameter  erzeugt  wurde.  Beachten   Sie,   dass   dieser
       »--«-Parameter  weiterhin  erzeugt  wird,  aber immer der letzte Parameter in diesem Modus
       ist.

KOMPATIBILITÄT

       Diese Version von getopt(1) wurde so geschrieben, dass sie so weit wie möglich  kompatibel
       zu  anderen  Versionen  ist.  Normalerweise  können  Sie  andere Versionen ohne Änderungen
       einfach durch diese Version ersetzen und haben dadurch sogar noch einige Vorteile.

       Wenn das erste Zeichen des ersten Parameters von getopt kein  »-«  ist,  läuft  getopt  im
       Kompatibilitätsmodus.   Es   interpretiert  den  ersten  Parameter  als  Zeichenkette  von
       Kurzoptionen und alle weiteren Parameter werden ausgewertet. Es ändert die Reihenfolge der
       Parameter  (d.h.  alle Nichtoptionsparameter werden am Ende ausgegeben), es sein denn, die
       Umgebungsvariable POSIXLY_CORRECT ist gesetzt.

       Die Umgebungsvariable GETOPT_COMPATIBLE zwingt getopt in  den  Kompatibilitätsmodus.  Wenn
       sowohl   diese   Umgebungsvariable  als  auch  POSIXLY_CORRECT  gesetzt  sind,  kann  100%
       Kompatibilität für »schwierige« Programme erreicht werden.  Normalerweise  ist  allerdings
       keine von beiden notwendig.

       Im    Kompatibilitätsmodus    werden    führende    »-«-    und    »+«-Zeichen    in   der
       Kurzoptionen-Zeichenkette ignoriert.

RÜCKGABEWERTE

       getopt gibt den  Fehlerstatus  0  bei  einer  erfolgreichen  Auswertung  zurück,  1  falls
       getopt(3)  Fehler  zurückliefert, 2 falls es die eigenen Parameter nicht auswerten kann, 3
       falls ein interner Fehler wie fehlender Speicher auftritt und 4 falls es mit -T aufgerufen
       wird.

BEISPIELE

       Beispielskripte  für  (ba)sh  und  (t)csh sind in der getopt(1)-Distribution enthalten und
       werden optional unter /usr/share/getopt/  oder  /usr/share/doc/  im  Unterverzeichnis  von
       util-linux installiert.

UMGEBUNGSVARIABLEN

       POSIXLY_CORRECT
              Diese  Umgebungsvariable  wird  von  den  getopt(3)-Routinen  untersucht. Falls sie
              gesetzt ist, wird die Auswertung gestoppt, sobald ein Parameter gefunden wird,  der
              weder  eine  Option  noch ein Optionsargument ist. Alle restlichen Parameter werden
              ebenfalls als Nichtoptionsparameter interpretiert, unabhängig  davon,  ob  sie  mit
              einem »-« beginnen oder nicht.

       GETOPT_COMPATIBLE
              erzwingt, dass getopt das erste in der ÜBERSICHT angegebene Aufrufformat verwendet.

FEHLER

       getopt(3)  kann  Langoptionen  mit  optionalen  Argumenten  auswerten,  denen  ein  leeres
       optionales Argument übergeben wurde. Allerdings kann es das für Kurzoptionen nicht. Dieses
       getopt(1)  behandelt optionale Argumente, die leer sind, so, als wären sie nicht übergeben
       worden.

       Die Syntax ist nicht sehr intuitiv, wenn man  keinerlei  Kurzoptionen  haben  möchte  (sie
       müssen explizit auf eine leere Zeichenkette gesetzt werden).

AUTOR

       Frodo Looijaard ⟨frodo@frodo.looijaard.name

SIEHE AUCH

       bash(1), tcsh(1), getopt(3)

VERFÜGBARKEIT

       Der  Befehl  getopt  ist  Teil  des  Pakets  util-linux  und  kann vom Linux-Kernel-Archiv
       ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩ heruntergeladen werden.

ÜBERSETZUNG

       Die   deutsche   Übersetzung   dieser   Handbuchseite   wurde   von    Helge    Kreutzmann
       <debian@helgefjell.de> und Dr. Tobias Quathamer <toddy@debian.org> erstellt.

       Diese  Übersetzung  ist  Freie  Dokumentation;  lesen  Sie  die GNU General Public License
       Version  3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE   HAFTUNG
       übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an <debian-l10n-german@lists.debian.org>.