Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/11/2012, à 19:14

obibann

[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 toto

A 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 sad

Des idées ?


Ubuntu 16.04
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

pingouinux

Re : [BASH] : impossible de valoriser une variable

Bonsoir,
Chez moi, ça marche, en bash et en sh.

Hors ligne

#3 Le 28/11/2012, à 19:24

obibann

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.


Ubuntu 16.04
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

gl38

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

obibann

Re : [BASH] : impossible de valoriser une variable

gl38 a écrit :

Il n'y aurait pas trop de " dans

MA_VARIABLE="$2"

Cordialement,
Guy

Non j'ai essayé avec, sans, même problème sad


Ubuntu 16.04
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

pingouinux

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…

Hors ligne

#7 Le 28/11/2012, à 19:38

obibann

Re : [BASH] : impossible de valoriser une variable

pingouinux a écrit :
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...


Ubuntu 16.04
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

ar barzh paour

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 toto

le 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=toto

peut-être des caractères invisibles , de contrôle .... dans l'appel affectant les paramètres 1 et 2 ?
Ubuntu 12.04


PC          : B760M DS3H DDR4,  12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 22.04, 22.04, 23.04
Portable1 : Intel(R) Core(TM)2 Duo CPU     T6570  @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 23.04 ( en voyage )
Portable2 : T5750  @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )

Hors ligne

#9 Le 29/11/2012, à 10:52

obibann

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 tongue)

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+ wink


Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p

Hors ligne