Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
shell script : "exit n" m'éjecte
Envoyé par: NBaH

Amis du shell bonjour

question de débutant...

Lorsque j'insère :
exit n
dans mes scripts pour définir une valeur au code de retour (c'est bien de cela qu'il s'agit?), je me fait éjecter de la console comme si j'avais tapé :
exit

C'est pas que ça me serve plus que ça, mais dans les scripts que je glane de ci de là, à fin sinon thérapeutique au moins pédagogique, ça y est inclus, et je me fait tèj!

Alors je vous le demande :
"Pourquoi moi? Qu'est-ce que j'ai fait de mal?"

[v]configuration : Debian etch[/v]

Poste le Tuesday 5 February 2008 02:25:26
Répondre     Citer    
Re: shell script : "exit n" m'éjecte
Envoyé par: nicola

C'est peut-être return n ?

--
On ne prête qu’aux riches, et on a bien raison, parce que les autres remboursent difficilement.
-+- Tristan Bernard (1866-1947) -+-

Poste le Tuesday 5 February 2008 20:30:44
Répondre     Citer    
Re: shell script : "exit n" m'éjecte
Envoyé par: NBaH

Ce qui me turlupine, c'est que les scripts sont censés s'éxécuter dans un shell enfant (une sorte de dimension parallèle...), et que donc le 'exit [n]' devrait s'appliquer à ce "sub"shell, pas au shell d'origine...?

De la même manière, un script comportant la commande 'cd /foo/bar' quand il se termine, m'abandonne dans /foo/bar...? Y a un loup!^^

Pourtant :
Citation
http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/111/lg111-D.html
À propos, il y a un aspect subtil certes, mais important ici : quand un script s'exécute, il démarre en fait un processus bash additionnel qui s'exécute en arrière-plan de l'actuel. Ce processus exécute le script et se termine, vous renvoyant au shell d'origine qui l'a engendré. C'est pourquoi un script qui, par exemple, change de répertoire lorsqu'il s'exécute ne vous laissera pas dans le nouveau répertoire quand il se termine : le shell d'origine n'a pas été informé qu'il devait changer de répertoire et vous êtes exactement que lorsque vous avez démarré - même si le changement est effectif pendant l'exécution du script.

?

Poste le Wednesday 6 February 2008 00:04:19
Répondre     Citer    
Re: shell script : "exit n" m'éjecte
Envoyé par: AlSim

Qu'y a-t-il sur la première ligne de ton script ?

[catwell.info]

Poste le Wednesday 6 February 2008 12:45:18
Répondre     Citer    
Re: shell script : "exit n" m'éjecte
Envoyé par: NBaH

Bonsoir Alsim

Au début du script :
#!/bin/bash
[v]pour info :[/v]
 
~$ echo $SHELL
   /bin/bash

Mais ça ne semble pas avoir de lien : j'ai fait un essai avec
#!/bin/sh
et j'ai encore été inopinément déconnecté de la console.

?

Citation
NBaH
les scripts sont censés s'éxécuter dans un shell enfant (une sorte de dimension parallèle...), et que donc le 'exit [n]' devrait s'appliquer à ce "sub"shell, pas au shell d'origine...?
...en même temps lorsqu'on passe une commande 'echo "z"', elle affiche bien 'z' dans le shell père, pas dans le sub-shell.

?

Poste le Thursday 7 February 2008 01:06:30
Répondre     Citer    
Re: shell script : "exit n" m'éjecte
Envoyé par: NBaH

mpfff

oui 'return' fait bien ce que j'attendais de 'exit [n]', à savoir terminer le script sans me délogguer.
Mais je reste perplexe : si on est déloggué par 'exit [n]', comment récupérer sa valeur? Quand je me reloggue 'echo $#' = 0, quel que soit n...

Poste le Sunday 10 February 2008 08:06:29
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
shell script : "exit n" m'éjecte
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons