Variable $# sous UNIX

[Résolu/Fermé]
Signaler
-
 Ahght -
Bonjour,

Lors de la modification d'un script déjà écrit je rencontre un problème sur cette partie (situé au tout début):

if [ $# -ne 2 ]
then
echo "FATAL : script can't be launched with these parameters"
exit 1
fi

le script quitte automatiquement car il vaut 0 (vu avec echo "$#")
ma question tourne sur :


Comment $# récupère-t-il sa valeur?
Quels sont les types de paramètres rentrant dans le comtpe de cette variable?

4 réponses

Comme quoi en cherchant toujours un peu plus on arrive à ses fins, je sais maintenant que ce sont les types d'entrées sorties, par contre je sais pas du tout comment il récupère sa valeur, en fonction de quels arguments
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 881
Salut,

$# correspond aux nombres de paramètres passés en argument.

Donc si tu passes un paramètre en argument à ton script, $# vaut 1, si tu en passes deux, $# vaut 2, etc.

Donc dans ce cas un paramètre pourrait il être un fichier txt dont on se sert comme report?

Est ce que sa déclaration suffit à faire changer la valeur $#?

Merci pour ta réponse ça c'est du rapide ! :)
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 881
Oui le paramètre peut être n'importe quoi (ça dépend surtout de ce qu'attend le script), le shell lui n'est pas raciste et prend tout ce qu'on lui donne comme paramètres (par défaut séparés par des espaces, si un des paramètres contient des espaces il faut l'entourer de quotes).
Merci, j'ai pu comprendre mes erreurs, mon bout de code fonctionne !