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 26/03/2013, à 17:07

binome-x

Question sur les variables d'environnement

Bonjour,
je suis une procédure d'installation qui me dit d'inclure ce genre de lignes dans mon .bashrc :

export ma_variable=
ma_variable=valeur
export ma_variable

est-ce différent de :

export ma_variable=valeur

Et d'autre part si j'écris

export ma_variable1=
export ma_variable2=
ma_variable1=azerty
ma_variable2=$ma_variable1/uiop
export ma_variable1
export ma_variable2

et que je fais

echo $ma_variable2

j'obtiens

uiopty

alors que je voudrais :

azerty/uiop

Quel est le problème ?
Merci.

Hors ligne

#2 Le 26/03/2013, à 18:00

Arbiel

Re : Question sur les variables d'environnement

Bash Reference Manual a écrit :

export

              export [-fn] [-p] [name[=value]]

    Mark each name to be passed to child processes in the environment. If the -f option is supplied, the names refer to shell functions; otherwise the names refer to shell variables. The -n option means to no longer mark each name for export. If no names are supplied, or if the -p option is given, a list of exported names is displayed. The -p option displays output in a form that may be reused as input. If a variable name is followed by =value, the value of the variable is set to value.

    The return status is zero unless an invalid option is supplied, one of the names is not a valid shell variable name, or -f is supplied with a name that is not a shell function.

Personnellement, je fais toujours

export variable=valeur

mais le texte ci-dessus semble indiquer que, une fois la variable exportée, toute assignation de valeur à cette variable sera transmise au processus fils.

Tu peux aussi tester en écrivant un petit script

echo ${variable}

Cela va aussi vite que de poser la question sur le forum, et la réponse est obtenue instantanément !!;)

Arbiel

Edit : je viens de faire le test, avec la simple commande export et ce test montre que l'affectation de valeur postérieure à l'ordre export est bien transmis au processus fils.


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#3 Le 26/03/2013, à 18:01

pingouinux

Re : Question sur les variables d'environnement

Bonjour,
export n'est utile que pour transmettre la variable à un sous-shell.
Les 3 séquences suivantes sont équivalentes :

export var
var=valeur
var=valeur
export var
export var=valeur

Ceci marche très bien chez moi

$ ma_variable1=azerty
$ ma_variable2=$ma_variable1/uiop
$ echo ma_variable2=$ma_variable2
ma_variable2=azerty/uiop

mais il est préférable de faire ceci (à cause d'éventuels espaces)

$ ma_variable1=azerty
$ ma_variable2="$ma_variable1"/uiop
$ echo ma_variable2="$ma_variable2"
ma_variable2=azerty/uiop

Hors ligne

#4 Le 26/03/2013, à 19:24

Arbiel

Re : Question sur les variables d'environnement

Je n'avais pas très bien compris ta question.

ma_variable2=$ma_variable1/uiop

me donne le résultat que présente pingouinux : "azerty/uiop" et non "uiopty"

Il est probable que tes options bash ne soient pas les mêmes que les nôtres. Quelles sont-elles ?

Bash Reference Manual a écrit :

4.3 Modifying Shell Behavior

    The Set Builtin: Change the values of shell attributes and positional parameters.
    The Shopt Builtin: Modify shell optional behavior.

Arbiel

Dernière modification par Arbiel (Le 30/03/2013, à 00:46)


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#5 Le 29/03/2013, à 22:13

binome-x

Re : Question sur les variables d'environnement

Bon, c'était un problème entre les types de fichiers Windows et Linux. Je ne connais pas les détails mais maintenant ça marche.

Hors ligne

#6 Le 29/03/2013, à 22:17

Arbiel

Re : Question sur les variables d'environnement

binome-x a écrit :

c'était un problème entre les types de fichiers Windows et Linux

C'est pour le moins surprenant. Que vient faire Windows là dedans ?


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#7 Le 29/03/2013, à 22:21

binome-x

Re : Question sur les variables d'environnement

Ben j'avais dû copier des fichiers sous Windows (Ubuntu est une machine virtuelle sur mon ordi du boulot).

Hors ligne

#8 Le 30/03/2013, à 00:48

Arbiel

Re : Question sur les variables d'environnement

Je ne suis pas du tout convaincu, mais si cette explication te convient, je n'ai rien à ajouter.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#9 Le 30/03/2013, à 11:38

binome-x

Re : Question sur les variables d'environnement

Ben non, moi non plus, ça ne me satisfait pas du tout mais pour l'instant je dois bien faire avec.

Hors ligne