Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2007, 21h58   #1
Membre actif
 
Avatar de trax44
 
Inscription : janvier 2003
Messages : 300
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 300
Points : 180
Points : 180
Envoyer un message via MSN à trax44 Envoyer un message via Skype™ à trax44
Par défaut modification de variable d'environnement (PS1)

Bonsoir,

je voudrais modifier la variable PS1 du shell courant depuis un programme lancé dans ce shell

En quelques sorte :
Code :
1
2
3
 
trax@localhost ~/ $ ./main
plop@toto ~/ $
Je sais ce qu'il faut mettre dans PS1. Toute mes tentative on modifié l'environnement de main et non du shell courant :s

Code :
1
2
3
system("export PS1="...");
putenv("PS1=...");
...
__________________
http://clubnix.esiee.fr sauvez nous
trax44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 01h48   #2
Membre du Club
 
Inscription : novembre 2006
Messages : 80
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 80
Points : 50
Points : 50
En fait, je connais pas la nature de ton prog, mais si tu as la possibilité d'ecrire dans l'environnement de l'utilisateur tu peux ajouter ta variable d'environnement dans le fichier .bash_profile (ou bien celui du shell utilisé) et executer ce fichier à partir de ton programme, là cette variable sera reconnu dans tous les shells de l'utilisateur en question.
Ce que je t'ai proposé n'est qu'une alternative pour contourner ton prob, mais si tu peux expliquer bien le but de ton programme ça serai mieux ...
Bonne chance
oumokhtar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 17h34   #3
Membre actif
 
Avatar de trax44
 
Inscription : janvier 2003
Messages : 300
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 300
Points : 180
Points : 180
Envoyer un message via MSN à trax44 Envoyer un message via Skype™ à trax44
pour l'instant je peux écrire dans l'environnement de mon programme, qui n'est pas celui du shell.
La solution d'append une ligne avec PS1="blabla" dans mon bash provoquerais l'application de ce changement a tout les nouveau shell, alors que je ne veux modifier que le shell dans lequel est lancé mon programme
__________________
http://clubnix.esiee.fr sauvez nous
trax44 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 17h52   #4
Membre émérite
 
Avatar de Celelibi
 
Inscription : janvier 2004
Messages : 990
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 990
Points : 822
Points : 822
C'est simple, tu ne peux pas.

Un programme ne peut que modifier son propre environnement. Et par conséquent celui de ses processus fils car ils héritent de l'environnement du père.

À la limite tu peux relancer un shell après avoir changé la variable PS1.
Ou bien simplement écrire dans un fichier et l'appeller dans ton shell par .

Mais c'est vrai qu'un peu plus d'explications sur le but recherché ne serait pas de refus.
__________________
Les vaches ne peuvent PAS voler, quoi qu'elles aient pu vous raconter.
Celelibi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h35.


 
 
 
 
Partenaires

Hébergement Web