unset

Le
Thomas
bonjour :-)


est ce que c'est possible de supprimer d'un coup toutes les variables
d'environnement, sans avoir à les nommer une par une ?

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry B
Le #19628231
On 2009-06-24, Thomas

est ce que c'est possible de supprimer d'un coup toutes les variables
d'environnement, sans avoir à les nommer une par une ?




Avec la commande 'env'...

--
Croire en plusieurs dieux sans rien attendre d'eux est un bon moyen
d'éviter de se mettre la rate au court-bouillon.
Stephane CHAZELAS
Le #19630031
2009-06-24, 15:52(+02), Thomas:
[...]
est ce que c'est possible de supprimer d'un coup toutes les variables
d'environnement, sans avoir à les nommer une par une ?




env -i cmd

lance cmd sans passer de variable d'environnement a cmd.

e() { unset "${1%%=*}"; }
eval "$(export -p | sed "s/export /e /")"

unset toutes les variables d'environnement (dans un sh POSIX).

Mais note que les shells passent la variable _ quoiqu'il arrive,
donc seul env -i passera un environnement vide.

$ sh -c 'e() { unset "${1%%=*}"; }; eval "$(export -p | sed "s/export /e /")"; /usr/bin/env'
_=/usr/bin/env
$ env -i /usr/bin/env
$

Note aussi que certains shells auront des problemes pour les
variables d'environnement qui ne peuvent pas etre mappee sur une
variable shell.

--
Stéphane
Thomas
Le #19963851
In article Stephane CHAZELAS
2009-06-24, 15:52(+02), Thomas:
[...]
> est ce que c'est possible de supprimer d'un coup toutes les variables
> d'environnement, sans avoir à les nommer une par une ?


env -i cmd

lance cmd sans passer de variable d'environnement a cmd.

e() { unset "${1%%=*}"; }
eval "$(export -p | sed "s/export /e /")"

unset toutes les variables d'environnement (dans un sh POSIX).



merci :-)


le but c'est de suivre le conseil de lucas

donc comme j'aimerais si possible tout écrire dans le même script, env
ne convient pas mais la 2eme proposition si :-)


par contre, je ne comprend pas tout
peux tu m'expliquer un petit peu stp ? :-)

si j'ai bien compris, je n'ai pas besoin de export -p pour régénérer les
variables après, je vais faire un nouveau shell avec () pour être sur de
récupérer *exactement* l'état précédent :-)



Mais note que les shells passent la variable _ quoiqu'il arrive,
donc seul env -i passera un environnement vide.

$ sh -c 'e() { unset "${1%%=*}"; }; eval "$(export -p | sed "s/export /e
/")"; /usr/bin/env'
_=/usr/bin/env
$ env -i /usr/bin/env
$

Note aussi que certains shells auront des problemes pour les
variables d'environnement qui ne peuvent pas etre mappee sur une
variable shell.



pas de pb,
je vais ajouter ogednjugf en dur aux noms de variables et dans le code,
de façon à court-circuiter les variables en lecture seule :-)

à la limite, même, je préférerais garder PATH

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Publicité
Poster une réponse
Anonyme