[SHELL UNIX] Fermer le terminal a la fin d un script shell

Fermer le terminal a la fin d un script shell [SHELL UNIX] - Shell/Batch - Programmation

Marsh Posté le 21-05-2012 à 20:03:40    


Bonjour,
 
Voila j ai un petit script a exécuter, tout ce passe bien de ce cote la.
 
Mais a la fin de ce script j aimerais pouvoir fermer mon terminal (xterm).
 
J ai chercher, je n ai pas trouve grand chose et a la fin de mon script je fais un exit, mais rien ne se passe.
 
Merci d avance.

Reply

Marsh Posté le 21-05-2012 à 20:03:40   

Reply

Marsh Posté le 22-05-2012 à 02:45:05    

salut,
 
mais pourquoi ouvrir un terminal, dans gnome on peut lancer une application, ou un script via Alt-F2.  
d'autres WM disposent de cette fonction, peut-être pas appelée par la même combinaison de touches.

Reply

Marsh Posté le 22-05-2012 à 10:43:02    

Il faudrait envoyer un control D, ce qui doit correspondre à un certain signal dont je ne me souviens plus du nom.

Reply

Marsh Posté le 22-05-2012 à 17:16:20    

Je ne suis pas sur que ce soit terrible de faire ça directement dans ton script (tu kill ta session avant de fermer proprement ton script ? bof bof :( ). A mon sens le plus propre reste de mettre un exit à la suite de l'appel de ton script. Exemple :

 
Code :
  1. script.sh ; exit 0
 

ou alors, si tu veux conditionner sur le retour de ton script, pour que ton shell reste ouvert en cas de problème lors de l'exécution :

 
Code :
  1. script.sh && exit 0
 


Message édité par Nukolau le 22-05-2012 à 17:17:03
Reply

Marsh Posté le 22-05-2012 à 18:25:07    

twn-zicoo a écrit :


Bonjour,
 
Voila j ai un petit script a exécuter, tout ce passe bien de ce cote la.
 
Mais a la fin de ce script j aimerais pouvoir fermer mon terminal (xterm).
 
J ai chercher, je n ai pas trouve grand chose et a la fin de mon script je fais un exit, mais rien ne se passe.
 
Merci d avance.


 
Salut
Etant donné que ton script s'exécute dans un shell fils de ton terminal, ton exit ne ferme que le fils. D'ailleurs l'exit est implicite dans un shell c.a.d. qu'il y était déjà avant que tu ne l'y mettes.
 
La solution de nukolau est la meilleure, à savoir lancer ton script et rajouter ensuite l'exit. Cette solution respecte la philosophie Unix => les scripts se déroulent à part et restent indépendants de l'environnement (après tout, un script peut très bien être lancé depuis autre chose qu'un xterm)
 
Si vraiment tu veux passer outre, tu peux alors sourcer ton script au lieu de l'exécuter => source script => il s'exécutera alors dans le processus courant et non le fils => quand ton script appellera l'exit, celui-ci fermera alors le xterm
Ou alors tu peux aussi récupérer dans ton script le pid père de celui-ci et lui envoyer un kill -15


Message édité par Sve@r le 22-05-2012 à 18:27:10
Reply

Marsh Posté le 25-05-2012 à 11:29:40    

Merci pour ces réponses.
 
Je pense que je vais retenir ta solution Sve@r.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed