.\" -*- coding: UTF-8 -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH GETOPT 1 "Dezember 2014" util\-linux "Dienstprogramme für Benutzer" .SH BEZEICHNUNG getopt \- Befehlsoptionen auswerten (erweitert) .SH ÜBERSICHT \fBgetopt\fP \fIOptionszeichenkette Parameter\fP .br \fBgetopt\fP [Optionen] [\fB\-\-\fP] \fIOptionszeichenkette Parameter\fP .br \fBgetopt\fP [Optionen] \fB\-o\fP|\fB\-\-options\fP \fIOptionszeichenkette\fP [Optionen] [\fB\-\-\fP] \fIParameter\fP .SH BESCHREIBUNG \fBgetopt\fP 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 .SM GNU \fBgetopt\fP(3). .PP Die mit \fBgetopt\fP aufgerufenen Parameter können in zwei Teile zerlegt werden: Optionen, die die Auswertung durch \fBgetopt\fP verändern (die \fIOptionen\fP und die \fIOptionszeichenkette\fP in der \fBÜBERSICHT\fP) und den Parametern, die ausgewertet werden sollen (\fIParameter\fP in der \fBÜBERSICHT\fP). 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 »\fB\-\-\fP«. Falls im ersten Teil weder die Option »\fB\-o\fP« noch »\fB\-\-options\fP« gefunden wird, wird der erste Parameter des zweiten Teils als kurze Optionszeichenkette verwandt. .PP Falls die Umgebungsvariable \fBGETOPT_COMPATIBLE\fP gesetzt ist oder der erste \fIParameter\fP keine Option ist (er startet nicht mit »\fB\-\fP«, dem ersten Format in der \fBÜBERSICHT\fP), wird \fBgetopt\fP Ausgaben erzeugen, die mit denen anderer Versionen von \fBgetopt\fP(1) kompatibel sind. Es wird weiterhin Parameter tauschen und optionale Argumente erkennen (siehe Abschnitt \fBKOMPATIBILITÄT\fP für weitere Informationen). .PP Traditionelle Implementierungen von \fBgetopt\fP(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 \fBeval\fP) interpretiert werden müssen. Damit werden diese Zeichen erhalten. Sie müssen aber \fBgetopt\fP dergestalt aufrufen, dass es nicht länger zu anderen Versionen kompatibel ist (das zweite oder dritte Format in der \fBÜBERSICHT\fP). Um zu prüfen, ob bei Ihnen diese erweiterte Version von \fBgetopt\fP(1) installiert ist, kann eine spezielle Test\-Option (\fB\-T\fP) verwandt werden. .SH OPTIONEN .TP \fB\-a\fP,\fB \-\-alternative\fP erlaubt es, lange Optionen mit einem einfachen »\fB\-\fP« zu beginnen. .TP \fB\-h\fP,\fB \-\-help\fP zeigt einen Hilfetext und beendet das Programm. Es wird keine weitere Ausgabe erzeugt. .TP \fB\-l\fP,\fB \-\-longoptions \fP\fILangoptionen\fP 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 \fILangoptionen\fP sind kumulativ. Jeder lange Optionsname in \fILangoptionen\fP 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. .TP \fB\-n\fP,\fB \-\-name \fP\fIProgname\fP Der Name, der von den \fBgetopt\fP(3)\-Routinen beim Berichten von Fehlern verwandt wird. Beachten Sie, dass Fehler von \fBgetopt\fP(1) weiterhin als von Getopt\-kommend berichtet werden. .TP \fB\-o\fP,\fB \-\-options \fP\fIKurzoptionen\fP Die kurzen (ein\-Zeichen)\-Optionen, die erkannt werden sollen. Falls diese Option nicht gefunden wird, wird der erste Parameter von \fBgetopt\fP, der nicht mit »\fB\-\fP« startet (und kein Optionsargument ist), als die Kurzoptionszeichenkette verwandt. Jedes Kurzoptionszeichen in \fIshortopts\fP 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 »\fB+\fP« oder »\fB\-\fP« sein, um zu beinflussen, wie die Optionen ausgewertet und die Ausgabe generiert wird (siehe Abschnitt \fBEINLESE\-MODI\fP für Details). .TP \fB\-q\fP,\fB \-\-quiet\fP deaktiviert Fehlermeldung durch getopt(3). .TP \fB\-Q\fP,\fB \-\-quiet\-output\fP erzeugt keine normale Ausgabe. Fehler werden durch \fBgetopt\fP(3) gemeldet, außer Sie verwenden auch \fB\-q\fP. .TP \fB\-s\fP,\fB \-\-shell \fP\fIShell\fP setzt die Schutzkonventionen auf die der \fIShell\fP. Falls die Option \fB\-s\fP nicht angegeben ist, werden die Konventionen der .SM BASH verwandt. Gültige Argumente sind derzeit »\fBsh\fP«, »\fBbash\fP«, »\fBcsh\fP« und »\fBtcsh\fP«. .TP \fB\-T\fP,\fB \-\-test\fP prüft, ob Ihr \fBgetopt\fP(1) diese erweiterte Version oder eine alte Version ist. Dies erzeugt keine Ausgabe und setzt den Fehlerstatus auf 4. Andere Implementierungen von \fBgetopt\fP(1) und diese Version, falls die Umgebungsvariable \fBGETOPT_COMPATIBLE\fP gesetzt ist, liefern »\fB\-\-\fP« und einen Fehlerstatus von 0. .TP \fB\-u\fP,\fB \-\-unquoted\fP 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 \fBgetopt\fP(1) erzeugen). .TP \fB\-V\fP,\fB \-\-version\fP zeigt die Versionsinformationen und beendet sich. Es wird keine weitere Ausgabe erzeugt. .SH AUSWERTUNG Dieser Abschnitt gibt das Format des zweiten Teils der Parameter von \fBgetopt\fP (den \fIParametern\fP in der \fBÜBERSICHT\fP) an. Der nächste Abschnitt (\fBAUSGABE\fP) 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 \fBgetopt\fP entspricht (siehe \fBBEISPIELE\fP). Die gesamte Auswertung erfolgt in den GNU\-\fBgetopt\fP(3)\-Routinen. .PP 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. .PP Eine einfache Kurzoption ist ein »\fB\-\fP« 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. .PP Es ist möglich, mehrere Kurzoptionen nach einem »\fB\-\fP« anzugeben, solange alle (außer möglicherweise dem letzten) keine zwingenden oder optionalen Argumente haben. .PP Eine Langoption beginnt normalerweise mit »\fB\-\-\fP« gefolgt von dem Namen der Langoption. Falls die Option ein zwingendes Argument kann, darf dieses direkt nach dem Namen der Langoption, getrennt durch ein »\fB=\fP«, 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 »\fB=\fP« geschrieben werden. Falls Sie das »\fB=\fP« hinzufügen, aber nichts dahinter, wird es so interpretiert, als ob kein Argument vorhanden wäre; dies ist ein kleiner Fehler, siehe \fBFEHLER\fP. Langoptionen dürfen abgekürzt werden, so lange die Abkürzung noch eindeutig ist. .PP Jeder Parameter, der nicht mit einem »\fB\-\fP« anfängt und kein zwingendes Argument einer vorherigen Option ist, ist ein Nichtoptionsparameter. Jeder Parameter nach einem »\fB\-\-\fP«\-Parameter wird immer als Nichtoptionsparameter interpretiert. Falls die Umgebungsvariable \fBPOSIXLY_CORRECT\fP gesetzt ist oder falls die Kurzoptionszeichenkette mit einem »\fB+\fP« anfängt, werden alle verbliebenen Parameter als Nichtoptionsparameter interpretiert, sobald der erste Nichtoptionsparameter gefunden wird. .SH 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 \fIkompatiblen\fP (\fIungeschützten\fP) Modus erfolgen, oder so, dass Leerraumzeichen und andere besondere Zeichen innerhalb von Argumenten und Nichtoptionsparametern erhalten werden (siehe \fBSCHÜTZEN\fP). 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. .PP 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. .PP Für eine Kurzoption wird ein einzelnes »\fB\-\fP« 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 \fBgetopt\fP(1)\-Implementierungen optionale Argumente nicht unterstützen. .PP Falls mehrere Kurzoptionen nach einem einzelnen »\fB\-\fP« angegeben wurden, wird jede in der Ausgabe als separater Parameter vorhanden sein. .PP Für eine Langoption werden »\fB\-\-\fP« und der komplette Optionsname als ein Parameter erstellt. Dies erfolgt unabhängig davon, ob die Option abgekürzt war oder mit einem einzelnen »\fB\-\fP« in der Eingabe angegeben wurde. Argumente werden wie bei den Kurzoptionen gehandhabt. .PP Normalerweise wird keine Ausgabe für die Nichtoptionsparameter erstellt, bis alle Optionen und ihre Argumente erstellt wurden. Dann wird »\fB\-\-\fP« 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 »\fB\-\fP« 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 \fBÜBERSICHT\fP verwandt wird; in diesem Fall werden alle vorangestellt auftretende »\fB\-\fP« und »\fB+\fP« ignoriert). .SH 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 \fBeval\fP einer Shell) übergeben wird, wird sie korrekt in separate Parameter zerlegt. .PP Schützen wird nicht aktiviert, falls die Umgebungsvariable \fBGETOPT_COMPATIBLE\fP gesetzt ist oder falls die erste Form der \fBÜBERSICHT\fP verwandt oder falls die Option »\fB\-u\fP« gefunden wird. .PP Verschiedene Shells verwenden verschiedene Schützkonventionen. Sie können die Option »\fB\-s\fP« verwenden, um die von Ihnen verwandte Shell auszuwählen. Die folgenden Shells werden derzeit unterstützt: »\fBsh\fP«, »\fBbash\fP«, »\fBcsh\fP« und »\fBtcsh\fP«. 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. .SH EINLESE\-MODI Das erste Zeichen der Zeichenkette von Kurzoptionen kann ein »\fB\-\fP« oder ein »\fB+\fP« sein, um einen speziellen Einlese\-Modus anzugeben. Wenn die erste Form verwendet wird, die unter \fBÜBERSICHT\fP angegeben ist, werden sie ignoriert. Trotzdem wird die Umgebungsvariable \fBPOSIXLY_CORRECT\fP ausgewertet. .PP Wenn das erste Zeichen ein »\fB+\fP« ist oder die Umgebungsvariable \fBPOSIXLY_CORRECT\fP gesetzt ist, wird die Auswertung beendet, sobald der erste Nichtoptionsparameter (also ein Parameter, der nicht mit einem »\fB\-\fP« beginnt) erkannt wird, der kein Optionsargument ist. Die restlichen Parameter werden alle als Nichtoptionsparameter interpretiert. .PP Wenn das erste Zeichen ein »\fB\-\fP« 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 »\fB\-\-\fP«\-Parameter erzeugt wurde. Beachten Sie, dass dieser »\fB\-\-\fP«\-Parameter weiterhin erzeugt wird, aber immer der letzte Parameter in diesem Modus ist. .SH KOMPATIBILITÄT Diese Version von \fBgetopt\fP(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. .PP Wenn das erste Zeichen des ersten Parameters von getopt kein »\fB\-\fP« ist, läuft \fBgetopt\fP 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 \fBPOSIXLY_CORRECT\fP ist gesetzt. .PP Die Umgebungsvariable \fBGETOPT_COMPATIBLE\fP zwingt \fBgetopt\fP in den Kompatibilitätsmodus. Wenn sowohl diese Umgebungsvariable als auch \fBPOSIXLY_CORRECT\fP gesetzt sind, kann 100% Kompatibilität für »schwierige« Programme erreicht werden. Normalerweise ist allerdings keine von beiden notwendig. .PP Im Kompatibilitätsmodus werden führende »\fB\-\fP«\- und »\fB+\fP«\-Zeichen in der Kurzoptionen\-Zeichenkette ignoriert. .SH RÜCKGABEWERTE \fBgetopt\fP gibt den Fehlerstatus \fB0\fP bei einer erfolgreichen Auswertung zurück, \fB1\fP falls \fBgetopt\fP(3) Fehler zurückliefert, \fB2\fP falls es die eigenen Parameter nicht auswerten kann, \fB3\fP falls ein interner Fehler wie fehlender Speicher auftritt und \fB4\fP falls es mit \fB\-T\fP aufgerufen wird. .SH BEISPIELE Beispielskripte für (ba)sh und (t)csh sind in der \fBgetopt\fP(1)\-Distribution enthalten und werden optional unter \fI/usr/share/getopt/\fP oder \fI/usr/share/doc/\fP im Unterverzeichnis von util\-linux installiert. .SH UMGEBUNGSVARIABLEN .IP POSIXLY_CORRECT Diese Umgebungsvariable wird von den \fBgetopt\fP(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 »\fB\-\fP« beginnen oder nicht. .IP GETOPT_COMPATIBLE erzwingt, dass \fBgetopt\fP das erste in der \fBÜBERSICHT\fP angegebene Aufrufformat verwendet. .SH FEHLER \fBgetopt\fP(3) kann Langoptionen mit optionalen Argumenten auswerten, denen ein leeres optionales Argument übergeben wurde. Allerdings kann es das für Kurzoptionen nicht. Dieses \fBgetopt\fP(1) behandelt optionale Argumente, die leer sind, so, als wären sie nicht übergeben worden. .PP Die Syntax ist nicht sehr intuitiv, wenn man keinerlei Kurzoptionen haben möchte (sie müssen explizit auf eine leere Zeichenkette gesetzt werden). .SH AUTOR .MT frodo@frodo.looijaard.name Frodo Looijaard .ME .SH "SIEHE AUCH" \fBbash\fP(1), \fBtcsh\fP(1), \fBgetopt\fP(3) .SH VERFÜGBARKEIT Der Befehl getopt ist Teil des Pakets util\-linux und kann vom .UR https://\:www.kernel.org\:/pub\:/linux\:/utils\:/util\-linux/ Linux\-Kernel\-Archiv .UE heruntergeladen werden. .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Dr. Tobias Quathamer , Helge Kreutzmann und Mario Blättermann erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE 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 .MT debian-l10n-german@\:lists.\:debian.\:org Mailingliste der Übersetzer .ME .