Was $#
heißt in der Schale?
Ich habe Code wie
if [ $# -eq 0 ]
then
Ich möchte verstehen, was das $#
bedeutet, aber die Google-Suche ist für die Suche nach solchen Dingen sehr schlecht.
shell
shell-script
BufBills
quelle
quelle
Antworten:
Sie können jederzeit die Manpage Ihrer Shell überprüfen.
man bash
sagt:Daher kann ein Shell-Skript überprüfen, wie viele Parameter mit Code wie folgt angegeben werden:
quelle
man
fast alles, auch sichman
selbst. Probieren Sie auchapropos
etwas Zeit.info
entweder für die Manpage oder zusätzliche Informationen (sehr detailliert und unterteilt) verwenden, wenn die Pakete einige habenTatsächlich,
Also zusammen
Auf diese Weise können Sie
$#
die Anzahl der übergebenen Argumente / Parameter überprüfen und unerwartete Situationen behandeln.Ebenso haben wir
etc.
quelle
Das ist
die Anzahl der Parameter, mit denen das Skript aufgerufen wurde
die Anzahl der Parameter, die innerhalb des Skripts von eingestellt wurden
set -- foo bar
(bei Verwendung innerhalb einer Funktion) Die Anzahl der Parameter, mit denen eine Funktion aufgerufen wurde (
set
würde auch dort funktionieren).Dies wird in der bash-Manpage im Block "Special Parameters" erläutert.
quelle