Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 28/11/2012, à 18: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 14.04 / Ubuntu 12.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, à 18: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, à 18: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 14.04 / Ubuntu 12.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, à 18: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, à 18: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 14.04 / Ubuntu 12.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, à 18: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, à 18: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 14.04 / Ubuntu 12.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, à 19: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


Ubuntu 14.04.4 LTS 32 bits
Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz

Hors ligne

#9 Le 29/11/2012, à 09: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 14.04 / Ubuntu 12.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p

Hors ligne

Haut de page ↑