Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
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 28/02/2008, 22h09   #1
Invité régulier
 
Inscription : novembre 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 65
Points : 7
Points : 7
Par défaut Probleme Commande export

voici mon probleme:
la commande export permet de transmetre des variables a des processus enfant du shell.
ces processus sont soit des script soit des commandes.
exemple:
la commande "man cal" permet d'afficher la documentation du calendrier(commande cal) en francais.
si on modifie la variable LANG en lui attribuant la valeur c(pour la mettre en anglais) le manuel de cal sera ecrit en anglais mias que si je fais un export:


Code :
1
2
3
4
5
6
[Prompt]LANG=c
[Prompt]export LANG
[Prompt]env | grep LANG
LANG=c
[Prompt]man cal
affichage du manuel en anglais.
mon probleme est que si je declare une variable sans l'exporter cette variable n'est pas accessible alors que si je fais un echo de cette variable elle l'est donc echo est il une commande qui s'execute dans un shell enfant? ( et dans ce cas pourquoi affiche t il les variables sans besoin d'exporter)

maintenat si je fais ceci:

Code :
1
2
3
[Prompt]CONFIG_SHELL=/etc/profile
[Prompt]ls -l $CONFIG_SHELL
-rw-r--r--  1 root 1540 2002-06-24 23:52 /etc/profile
donc la commande "ls" a bien utiliser la variable CONFIG_SHELL alors que je l'ai pas exporter: pourquoi donc?

est ce en rapport avec les commandes externes et internes??
dans ce cas "ls" etant une commande externe pourquoi la commande du haut a utiliser la variable sans le besoin d'un export?

merci d'avance pour vos reponses
steeve93800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2008, 22h59   #2
Membre éclairé
 
Avatar de Vespasien
 
Inscription : janvier 2008
Messages : 383
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : janvier 2008
Messages : 383
Points : 363
Points : 363
Citation:
transmetre des variables a des processus enfant du shell
Dans les cas présentés tu est toujours dans le même processus.
Tapes:
et tu verras que tu a écrasé la valeur de l'environnement courant.
Vespasien est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 00h33   #3
Invité régulier
 
Inscription : novembre 2007
Messages : 65
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 65
Points : 7
Points : 7
merci Vespasien pour ta reponse mais dans mon exemple:

[Prompt] CONFIG_SHELL=/etc/profile
[Prompt] ls -l $CONFIG_SHELL
-rw-r--r-- 1 root 1540 2002-06-24 23:52 /etc/profile



"ls" aurait du s'executer dans un procesus enfant car c'est une commande externe et donc j'aurais du exporter la variable CONFIG_SHELL.

donc pourquoi cette commande s'est elle comme meme executée dans le meme processus??
steeve93800 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 08h15.


 
 
 
 
Partenaires

Hébergement Web