#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
#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
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 :
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