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

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 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>.

util-linux                                        Dezember 2014                                        GETOPT(1)