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 23/10/2022, à 14:40

cmontesquat

Script et variable d'environnement

Bonjour

Je n'arrive pas à modifier une variable d'environnement à l'aide d'un script.
J'ai créé une variable d'environnement CYRILL de valeur TOTO1

printenv CYRILL
TOTO1

J'exécute ce script

#!/bin/bash

        V_CYRILL=TOTO2
        echo V_CYRILL $V_CYRILL
        read a # Equivaut à Pause sous DOS     
  
#       export "CYRILL=$V_CYRILL"
        export CYRILL=$V_CYRILL
#       export CYRILL="$V_CYRILL"

exit 0

Le echo du script me dit bien que V_CYRILL est bien de valeur TOTO2; mais une fois terminé l'exécution du script la variable d'environnement est toujours de la même valeur.

printenv CYRILL
TOTO1

Nota: l'objectif est d'inclure cela dans le script de sortie de veille pour la variable XAUTHORITY qui change de valeur (avec la nouvelle version d'Ubuntu; avant sa valeur ne changeait pas) afin de pouvoir afficher un message à la sortie de veille.
Environnement: Ubuntu 22.04.1 LTS
Quid? Cordialement

Dernière modification par bruno (Le 23/10/2022, à 15:30)

Hors ligne

#2 Le 23/10/2022, à 14:52

matrix-bx

Re : Script et variable d'environnement

Bonjour,
voir ce lien.


Utilisations des balises de mises en formes.

Hors ligne

#3 Le 23/10/2022, à 15:04

Watael

Re : Script et variable d'environnement

salut,

les variables d'environnement d'un script sont locales à l'environnement du script !

dis-nous en plus sur ta nécessité d'exporter cette variable.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 23/10/2022, à 15:20

cmontesquat

Re : Script et variable d'environnement

Merci.

Je ne suis pas un expert en anglais mais dans le lien transmis, la variable F00 de valeur BAR est toujours défini par un chaîne de caractères et non pas par la valeur d'une variable comme ce que j'essaie de faire.

Pour ce qui est de la finalité de ma question, je pensais l'avoir exposé dans le Nota de la fin de mon premier message.

Cordialement.

Hors ligne

#5 Le 23/10/2022, à 15:29

Watael

Re : Script et variable d'environnement

le vrai sujet c'est celui-là : XAUTHORITY est réinitalisée

mais, le fait que XAUTHORITY soit réinitialisé (ce qui est bizarre, et requiérerait un sujet à part entière, comme je viens de le dire), ne devrait pas t'empêcher de l'utiliser.

quel est ce script qui ne fonctionne pas parce que XAUTHORITY est modifié ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 23/10/2022, à 15:34

bruno

Re : Script et variable d'environnement

Watael a écrit :

le vrai sujet c'est celui-là : XAUTHORITY est réinitalisée

Ah ?
À quel moment, dans une session graphique, la valeur de XAUTHORITY est-elle différente de $HOME/.Xauthority ?

#7 Le 23/10/2022, à 16:04

Watael

Re : Script et variable d'environnement

ce n'est pas moi qui le dit :

cmontesquat a écrit :

inclure cela dans le script de sortie de veille pour la variable XAUTHORITY qui change de valeur (avec la nouvelle version d'Ubuntu; avant sa valeur ne changeait pas


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 23/10/2022, à 16:05

cmontesquat

Re : Script et variable d'environnement

Merci.
Donc voici le fautif :

#!/bin/bash

# mettre ce programme dans le répertoire /lib/systemd/system-sleep
# pour qu'il s'exécute automatiquement à la sortie de veille

case $1 in
  pre)
 	: # commande nulle (ne fait rien)
        sudo killall openvpn
        bash /home/admcyrill/Perso/VPN/FinSessionTerminal.sh
	;;
# 
  post)
	export DISPLAY=:0
#       V_DISPLAY=$(printenv DISPLAY)
#       echo V_DISPLAY $V_DISPLAY
#       export "DISPLAY=$V_DISPLAY"
#	export DISPLAY=$V_DISPLAY

	export XAUTHORITY=/run/user/1000/.mutter-Xwaylandauth.CIAPU1
#       V_XAUTHORITY=$(printenv XAUTHORITY)
#       echo V_XAUTHORITY $V_XAUTHORITY
#       export "XAUTHORITY=$V_XAUTHORITY"
#	export XAUTHORITY=$V_XAUTHORITY

        V_CYRILL="TOTO2"
#       echo V_CYRILL $V_CYRILL
#       read a # Equivaut à Pause sous DOS      
#       export "CYRILL=$V_CYRILL"
	export CYRILL=$V_CYRILL


	zenity --text-info \
		--title="ATTENTION" \
		--filename=/home/admcyrill/Perso/VPN/Text \
		--height "500" --width "1100"
	;;
esac

Les valeurs des variables étaient rentrées en "dur" car elles ne bougeaient pas. C'était la méthode que j'utilisais pour afficher un message graphique pour réinitialiser mon VPN (que je tue à la mise en veille)
Or quelque fois le message ne se réaffiche pas. J'ai fini par trouvé que c'était parce que la valeur de XANTHORITY avait changé.
C'est pour cela que je voulais la redéfinir par une variable. Mais effectivement quand est-ce qu'elle se redéfinit ?
Et bien là, j'ai encore plus besoin d'aide !!! Tout ceci vous éclaire-t-il le sujet, car pour moi, cela l'obscurcit, n'étant qu'un bidouilleur et non pas un expert, cela vous aviez dû le deviner.

Nota : tout ceci provient de ce que le fournisseur de VPN m'oblige à ce genre d'acrobaties ; je n'entre pas le détail dont j'ai d'ailleurs oublié des éléments.
Cordialement.

Hors ligne

#9 Le 23/10/2022, à 16:19

bruno

Re : Script et variable d'environnement

Alors, au temps pour moi, effectivement avec Wayland la variable XAUTHORITY vaut quelque chose comme :

/run/user/1000/xauth_xxxxx

Je n'ai aucun moyen de vérifier si elle change après une mise en veille et je ne sais pas pourquoi elle le ferait…

#10 Le 23/10/2022, à 16:24

Watael

Re : Script et variable d'environnement

J'ai fini par trouvé que c'était parce que la valeur de XANTHORITY avait changé.

quelle a été la démarche ?

ce ne serait pas simplement le DISPLAY qui
1- n'est pas défini, depuis une application en arrière plan (un peu comme avec cron)
2- n'est pas encore actif quand le script atteint zenity
?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#11 Le 24/10/2022, à 06:54

cmontesquat

Re : Script et variable d'environnement

Merci.

Tout vient
  du VPN qui ne se lance pas automatiquement mais avec un script.
  et du fait que l'ordinateur est utilisé par différentes personnes personnes qui ne savent pas comment le lacer, d'où un message Zenity

Au sortir de veille, le VPN était tombé, il fallait donc le relancer.
J'avais donc trouver sur le Net comment réinitialiser les deux variables DISPLAY et XAUTHORITY pour pour pouvoir afficher ce message.
Et cela fonctionnait très bien avant le passage à la nouvelle version d'Ubuntu (22.04.1 LTS).

Pour l'analyse du problème, je suis carrant n'étant pas un connaisseur de ce système.

Voilà.

Hors ligne