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.
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.
Antworten:
Sie können jederzeit die Manpage Ihrer Shell überprüfen. man bash
sagt:
Special Parameters
# Expands to the number of positional parameters in decimal.
Daher kann ein Shell-Skript überprüfen, wie viele Parameter mit Code wie folgt angegeben werden:
if [ "$#" -eq 0 ]; then
echo "you did not pass any parameter"
fi
man
fast alles, auch sich man
selbst. Probieren Sie auch apropos
etwas Zeit.
info
entweder für die Manpage oder zusätzliche Informationen (sehr detailliert und unterteilt) verwenden, wenn die Pakete einige haben
Tatsächlich,
`$` refer to `value of` and
`#` refer to `number of / total number`
Also zusammen
`$#` refer to `The value of the total number of command line arguments passed.`
Auf diese Weise können Sie $#
die Anzahl der übergebenen Argumente / Parameter überprüfen und unerwartete Situationen behandeln.
Ebenso haben wir
`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`
etc.
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.