Variable $# sous UNIX

Résolu
AtgHt -  
 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

AhghT
 
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
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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.

0
AhghT
 
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 ! :)
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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).
0
Ahght
 
Merci, j'ai pu comprendre mes erreurs, mon bout de code fonctionne !
0