Ich habe ein Skript, in dem ich den Benutzungsbefehl anzeigen muss, falls der Benutzer beim Ausführen des Skripts eine obligatorische Information verpasst.
%Vor% Mit Erklärungen zu allen OPTIONS
Ich bekomme Werte von Argumenten als unten Variablen Mode. Aber ich möchte diese Verwendung mit Validierungen im Shell-Skript.
%Vor% Ich habe getopts versucht, aber nicht verwendet, da <query>
vor dem Wert keinen -q
-Parameter hat.
Ich habe versucht, alle anderen Wege zu finden, aber jeder schlug getopts vor, was für mich keine machbare Lösung ist.
Bitte helfen Sie mir dabei ..
Verwenden Sie die Umschalttaste, um alle Ihre Argumente zu durchlaufen, etwa wie folgt:
%Vor%Sollte den Trick machen.
BEARBEITEN: hat die Argumentüberprüfung im Skript hinzugefügt, wie von @technosaurus vorgeschlagen
getopts
meckert für einen guten Grund . Sie sollten die Benutzeroberfläche Ihres Skripts so ändern, dass sie den Erwartungen der Benutzer entspricht.
Alternativ können Sie getopts
zweimal verwenden, zuerst für die Optionen query
, shift
und dann für den Rest.
Dies ist ein nicht standardmäßiger Ansatz, aber einen, den ich sehr nützlich finde. Anstatt Werte als Argumente an bestimmte Flags zu übergeben (was ziemlich ärgerlich ist, der Benutzer sollte nicht jeden Wert angeben müssen, sondern vernünftige Standardwerte angeben), können Sie diese einfach direkt über die Umgebung übergeben, so dass ein typischer Aufruf aussehen würde wie:
%Vor%Es wäre schön, wenn Sie den Variablennamen in Kleinbuchstaben verwenden würden, so dass der Benutzer nicht schreien muss. Dies ermöglicht es dem Skript so einfach, die Befehlszeile vollständig zu analysieren, da die Werte der Variablen festgelegt werden, wenn das Skript beginnt.