Beispiel:
%Vor%oder ein anderes mögliches
%Vor%Ich möchte meinem Skript erlauben, eine Reihe von Argumenten in beliebiger Reihenfolge zu verwenden
%Vor%Etcetera
werfen Sie einen Blick auf getopts
getopts : getopts optstring name [arg]
Analysiere Optionsargumente.Getopts wird von Shell-Prozeduren verwendet, um Positionsparameter zu analysieren als Optionen.
OPTSTRING
enthält die zu erkennenden Optionsbuchstaben; wenn ein Brief wird gefolgt von einem Doppelpunkt, die Option wird erwartet, ein Argument zu haben, was sollte durch Leerzeichen getrennt werden.Bei jedem Aufruf wird getopts die nächste Option in die Shell-Variable $ name, Initialisierungsname, falls dieser nicht existiert, und der Index des nächsten Arguments, das in die Shell verarbeitet werden soll Variable OPTIND. OPTIND wird jedes Mal auf 1 initialisiert, wenn die Shell oder Ein Shell-Skript wird aufgerufen. Wenn eine Option ein Argument erfordert, getopts platziert dieses Argument in die Shell-Variable
OPTARG
.getopts meldet Fehler auf eine von zwei Arten. Wenn das erste Zeichen von OPTSTRING ist ein Doppelpunkt, getopts verwendet stille Fehlerberichte. Im In diesem Modus werden keine Fehlermeldungen gedruckt. Wenn eine ungültige Option ist gesehen, platziert getopts das gefundene Optionszeichen in OPTARG. Wenn ein Das erforderliche Argument wurde nicht gefunden, getopts fügt ein ': ' in NAME und ein setzt OPTARG auf das gefundene Optionszeichen. Wenn getopts nicht drin ist Silent-Modus, und eine ungültige Option wird gesehen, getopts platziert '?' in NAME und Unsets OPTARG. Wenn ein erforderliches Argument nicht gefunden wird, ein '? ' ist in NAME platziert, OPTARG ist nicht gesetzt, und eine Diagnosemeldung ist gedruckt.
Wenn die Shell-Variable
OPTERR
den Wert 0 hat, deaktiviert getopts die Option Drucken von Fehlermeldungen, auch wenn das erste Zeichen von OPTSTRING ist kein Doppelpunkt. OPTERR hat standardmäßig den Wert 1.Getopts analysiert normalerweise die Positionsparameter ($ 0 - $ 9), aber wenn Es werden mehr Argumente angegeben, stattdessen werden sie analysiert.
Beendigungsstatus :
Gibt Erfolg zurück, wenn eine Option gefunden wird; schlägt fehl, wenn das Ende der Optionen ist aufgetreten oder ein Fehler auftritt.
Sie können getopts
verwenden, um Befehlszeilenargumente zu analysieren. Dieses Tutorial ist sehr nützlich, um damit zu beginnen.
Dieses einfache Skript verwendet die Portnummer mit p
und die IP-Adresse mit i
-Parameter.
Kann auf beide Arten ausgeführt werden:
./myscript -i 192.168.1.1 -p 1985
oder
./myscript -p 1985 -i 192.168.1.1
Bei der Ausführung wird gedruckt:
%Vor%Auch wie auf Ссылка
erwähntBeachten Sie, dass getopts lange Optionen im GNU-Stil (--myoption) oder lange Optionen im XF86-Stil (-myoption) nicht parsen kann
Sie können also lange Zeichenketten nicht als --port
oder --ip
direkt mit getopts
verwenden.
Es gibt jedoch zusätzliche Problemumgehungen wie in diesem Link beschrieben:
Ссылка
Tags und Links bash