Que signifie $ # dans le shell?


25

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.


3
Pour les recherches avec des signes de ponctuation, j'aime utiliser symbolhound.com. Trouve généralement ce dont j'ai besoin.
Eric Andres

vous pouvez parcourir le manuel
miracle173

Pour un meilleur référencement et référencement: bang, signe numérique , sharp, U + 0023, & # 35 ;, signe de commentaire et dollar!
Clément

Réponses:


37

Vous pouvez toujours consulter la page de manuel de votre shell. man bashdit:

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

@NoName Vous pouvez manpresque tout, y compris manlui-même. Essayez également un apropospeu de temps.
un CVn

@NoName vous pouvez également, lorsque vous utilisez un système d'exploitation avec des outils GNU (linux, etc.), utiliser infosoit pour la page de manuel, soit des informations supplémentaires (très détaillées et compartimentées) si les packages en contiennent
Olivier Dulac

12

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.


8

C'est

  1. le nombre de paramètres avec lesquels le script a été appelé

  2. le nombre de paramètres définis dans le script par set -- foo bar

  3. (lorsqu'il est utilisé dans une fonction) le nombre de paramètres avec lesquels une fonction a été appelée ( setfonctionnerait là aussi).

Ceci est expliqué dans la page de manuel bash du bloc "Paramètres spéciaux".

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.