Provided by: manpages-de_4.15.0-9_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 verwendet, 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 geschützte
       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.

       -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 Programmname
           Der Name, der von den getopt(3)-Routinen beim Melden von Fehlern verwendet wird.
           Beachten Sie, dass Fehler von getopt(1) weiterhin als von Getopt kommend gemeldet
           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
           deaktiviert 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 Schutzkonventionen auf die der Shell. Falls die Option -s nicht angegeben
           ist, werden die Konventionen der BASH verwendet. 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
           schützt 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).

       -h, --help
           zeigt einen Hilfetext an und beendet das Programm.

       -V, --version
           zeigt die Versionsnummer an und beendet das Programm.

AUSWERTUNG

       Dieser Abschnitt gibt das Format des zweiten Teils der Parameter von getopt (den
       Parametern in der ÜBERSICHT) an. 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 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 »-« anzugeben, 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 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 (ungeschützten) Modus erfolgen,
       oder so, dass Leerraumzeichen und andere besondere Zeichen innerhalb von Argumenten und
       Nichtoptionsparametern erhalten werden (siehe SCHÜTZEN). 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 ungeschützten 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 geschützten Modus leer sein. Im ungeschützten
       (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 angegeben 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).

SCHÜTZEN

       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 Schützen 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.

       Schützen 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 Schützkonventionen. 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 Schützkonventionen und Csh-artige Schützkonventionen.
       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. In diesem Fall stellt getopt den
       Kurzoptionen automatisch ein »+« voran.

       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 im Verzeichnis /usr/share/doc/util-linux/examples/ 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)

FEHLER MELDEN

       Verwenden Sie zum Melden von Fehlern das Fehlererfassungssystem auf
       https://github.com/util-linux/util-linux/issues.

VERFÜGBARKEIT

       Der Befehl getopt ist Teil des Pakets util-linux, welches heruntergeladen werden kann von:
       Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Dr. Tobias Quathamer
       <toddy@debian.org>, Helge Kreutzmann <debian@helgefjell.de> und Mario Blättermann
       <mario.blaettermann@gmail.com> erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License
       Version 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.