Que $#
signifie shell?
J'ai un code tel que
if [ $# -eq 0 ]
then
Je veux comprendre ce que cela $#
signifie, mais la recherche Google est très mauvaise pour rechercher ce genre de choses.
Que $#
signifie shell?
J'ai un code tel que
if [ $# -eq 0 ]
then
Je veux comprendre ce que cela $#
signifie, mais la recherche Google est très mauvaise pour rechercher ce genre de choses.
Réponses:
Vous pouvez toujours consulter la page de manuel de votre shell. man bash
dit:
Special Parameters
# Expands to the number of positional parameters in decimal.
Par conséquent, un script shell peut vérifier combien de paramètres sont donnés avec du code comme celui-ci:
if [ "$#" -eq 0 ]; then
echo "you did not pass any parameter"
fi
man
presque tout, y compris man
lui-même. Essayez également un apropos
peu de temps.
info
soit pour la page de manuel, soit des informations supplémentaires (très détaillées et compartimentées) si les packages en contiennent
Réellement,
`$` refer to `value of` and
`#` refer to `number of / total number`
Alors ensemble
`$#` refer to `The value of the total number of command line arguments passed.`
Ainsi, vous pouvez utiliser $#
pour vérifier le nombre d'arguments / paramètres passés comme vous l'avez fait et gérer toutes les situations inattendues.
De même, nous avons
`$1` for `value of 1st argument passed`
`$2` for 'value of 2nd argument passed`
etc.
C'est
le nombre de paramètres avec lesquels le script a été appelé
le nombre de paramètres définis dans le script par set -- foo bar
(lorsqu'il est utilisé dans une fonction) le nombre de paramètres avec lesquels une fonction a été appelée ( set
fonctionnerait là aussi).
Ceci est expliqué dans la page de manuel bash du bloc "Paramètres spéciaux".