Interprétation d’un script par un shell enfant Script shell:exécution par un shell enfant (mécanisme interne)
Sauf syntaxe particulière, un script est exécuté par un shell enfant, ce qui permet de conserver l’environnement du shell de travail intact.
Soit le script premier.sh :
$ nl premier.sh
1 pwd
2 cd /tmp
3 pwd
4 ls
$
Regardons de plus près l’exécution de ce script :
$ pwd
/home/christie
$ premier.sh
/home/christie
/tmp
f1 f2 f3
$ pwd
/home/christie
Lorsque l’exécution du script est terminée, la valeur du répertoire courant n’a pas changé. En effet, un script shell étant une commande externe, il est exécuté par un shell enfant. Les figures 15, 16 et 17 représentent le détail de l’exécution du script premier.sh.
Figure 15 : Mécanisme interne mis en œuvre lors du lancement d’un script shell - Première partie
(1) |
Avant de lancer le script, l’utilisateur fait afficher la valeur du répertoire courant. La commande pwd étant une commande interne, elle est exécutée par le shell courant (PID=201). Le résultat de la commande est donc /home/christie. |
(2) |
Lancement du script premier. Un script shell étant une commande externe, le shell courant... |