Verwenden Sie den $#
spezielle Variable. Sein Wert ist die Anzahl der Argumente. Wenn Sie also ein Skript haben, das nur Folgendes enthält:
echo $#
und führe es so aus:
thatscript foo bar baz quux
Es wird 4 ausgegeben.
In Ihrem Fall möchten Sie vielleicht so etwas tun:
if [ $# -lt 2 ]; then
# TODO: print usage
exit 1
fi
Ausgehend von der Anforderung aus der Frage, dass die Argumente "mindestens 2 Dinge" enthalten sollten, denke ich, dass es genauer sein könnte, Folgendes zu überprüfen:
if (( $# < 2 )); then
# TODO: print usage
exit 1
fi
Verwenden der arithmetischen Erweiterung ((
))
wird verhindern, dass dies exit 1
trifft für jeden Wert ungleich 2.
Wenn Sie if [ $# -ne 2 ];
verwenden es löst die Bedingung für eine beliebige Anzahl von Argumenten außer 2 aus.
Bearbeiten:Es sieht so aus, als ob die akzeptierte Antwort aktualisiert wurde, um ein gleichwertiges (und tragbareres?) Beispiel dafür zu enthalten.