Typische Shell-Skripte beginnen mit der Analyse der in der Befehlszeile übergebenen Optionen und Argumente. Die Anzahl der Argumente wird in der #
Parameter, d.h. Sie erhalten ihn mit $#
. Wenn Ihr Skript zum Beispiel genau drei Argumente benötigt, können Sie so vorgehen:
if [ $# -lt 3 ]; then
echo 1>&2 "$0: not enough arguments"
exit 2
elif [ $# -gt 3 ]; then
echo 1>&2 "$0: too many arguments"
exit 2
fi
# The three arguments are available as "$1", "$2", "$3"
Der eingebaute Befehl exit
bricht die Ausführung des Skripts ab. Das Integer-Argument ist der Rückgabewert des Skripts: 0 für Erfolg und eine kleine positive Ganzzahl für Fehler (eine gängige Konvention ist, dass 1 "nicht gefunden" bedeutet (denken Sie an grep) und 2 "unerwarteter Fehler" (nicht erkannte Option, ungültiger Name der Eingabedatei, ...)).
Wenn Ihr Skript Optionen verwendet (wie -x
), verwenden getopts .
2 Stimmen
Es wäre hilfreich, wenn wir wüssten, welche Shell?
0 Stimmen
Wenn Sie mit etwas beginnen, das besser ist als eine undefinierte Shell, die Sie nicht angeben. Lernen Sie Python, es gibt nichts, was Sie mit irgendeiner Shell tun können, was Sie nicht mit Python tun können, es ist portabel und viel einfacher, anspruchsvolle Dinge zu tun, es hat auch eine sehr gute Unterstützung für das Parsen von Kommandozeilenoptionen eingebaut (Batterien inklusive)