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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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