#1 Le 28/11/2012, à 19:14
[BASH] : impossible de valoriser une variable
Bonjour,
Je m'arrache les cheveux là dessus depuis tout à l'heure, je n'arrive pas à comprendre pourquoi j'ai le comportement suivant :
Je passe 2 paramètres à une fonction, et dans cette fonction, je veux récupérer le paramètre 2 dans une variable.
J'ai quelque chose de ce style :
mafunction()
{
echo "Mes paramètres : $1 / $2"
MA_VARIABLE="$2"
echo "Ma variable=${MA_VARIABLE}"
}
mafunction fichier.txt totoA l’exécution, j'ai ceci :
Mes paramètres : fichier.txt / toto
Ma variable=Impossible de mettre $2 dans ma variable !! Pourtant, j'utilise $2 à plusieurs reprises dans la fonction sans problèmes ![]()
Des idées ?
Avec Windows, on fait ce qu'on peut...
Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#2 Le 28/11/2012, à 19:21
Re : [BASH] : impossible de valoriser une variable
Bonsoir,
Chez moi, ça marche, en bash et en sh.
En ligne
#3 Le 28/11/2012, à 19:24
Re : [BASH] : impossible de valoriser une variable
Cela fonctionne aussi chez moi si j’exécute uniquement mon exemple...
Dans mon script "réel", c'est une fonction qui appelle cette fonction... Peut-être y'a-t-il un rapport je n'en sait rien, je ne comprend pas pourquoi cela ne fonctionne pas.
Avec Windows, on fait ce qu'on peut...
Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#4 Le 28/11/2012, à 19:25
Re : [BASH] : impossible de valoriser une variable
Il n'y aurait pas trop de " dans
MA_VARIABLE="$2"Cordialement,
Guy
Hors ligne
#5 Le 28/11/2012, à 19:27
Re : [BASH] : impossible de valoriser une variable
Il n'y aurait pas trop de " dans
MA_VARIABLE="$2"Cordialement,
Guy
Non j'ai essayé avec, sans, même problème ![]()
Avec Windows, on fait ce qu'on peut...
Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#6 Le 28/11/2012, à 19:27
Re : [BASH] : impossible de valoriser une variable
Cela fonctionne aussi chez moi si j’exécute uniquement mon exemple...
Dans mon script "réel", c'est une fonction qui appelle cette fonction...
Il vaudrait sans doute mieux donner l'exemple qui ne marche pas…
En ligne
#7 Le 28/11/2012, à 19:38
Re : [BASH] : impossible de valoriser une variable
obibann #3 a écrit :Cela fonctionne aussi chez moi si j’exécute uniquement mon exemple...
Dans mon script "réel", c'est une fonction qui appelle cette fonction...Il vaudrait sans doute mieux donner l'exemple qui ne marche pas…
Je n'arrive pas à reproduire dans un exemple reprenant la même structure que le projet originel, et le projet originel est assez gros, spécifique et c'est au taf, donc je ne peux pas vraiment l'envoyer...
Je vais effectuer des tests pour essayer de localiser ce qui cloche, mais je suis un peu dans le flou...
Avec Windows, on fait ce qu'on peut...
Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#8 Le 28/11/2012, à 20:15
Re : [BASH] : impossible de valoriser une variable
dur de savoir pourquoi ça ne fonctionne pas
contenu du fichier "essai"
mafunction()
{
echo "dans ma fonction : Mes paramètres : $1 / $2"
MA_VARIABLE="$2"
echo "Ma variable=${MA_VARIABLE}"
}
function2()
{
echo "dans function2 : Mes paramètres : $1 / $2"
MA_VARIABLE="$2"
echo "Ma variable=${MA_VARIABLE}"
mafunction $1 $2
}
function2 fichier.txt totole résultat obtenu par bash essai et sh essai est le même y'a pas de raison
dans function2 : Mes paramètres : fichier.txt / toto
Ma variable=toto
dans ma fonction : Mes paramètres : fichier.txt / toto
Ma variable=totopeut-être des caractères invisibles , de contrôle .... dans l'appel affectant les paramètres 1 et 2 ?
Ubuntu 12.04
Ubuntu 12.04
Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz
Hors ligne
#9 Le 29/11/2012, à 10:52
Re : [BASH] : impossible de valoriser une variable
J'ai des poches sous les yeux, mais j'ai trouvé....
Il y avais une autre procédure dans le projets qui venait écrire dans /dev/tty et visiblement c'est ça qui foutait le zone.
(raaaahhh je n'aime pas récupérer des projets comme ça
)
Merci pour votre aide, même si au final vous n'auriez jamais pu m'aider là dessus....
Je continue les corrections du projets, en espérant ne pas retomber sur des bizarreries...
A+ ![]()
Avec Windows, on fait ce qu'on peut...
Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
Pages : 1
- Accueil
- » Forum
- » Terminal, scripts et ligne de commande
- » [BASH] : impossible de valoriser une variable