87 votes

Comment exécuter un script sans fermer le terminal ?

J'ai un script dans le fichier bla.sh et il est exécutable. Lorsque je cliquez sur sur celle-ci, le script est exécuté et la fenêtre est fermée. Je voudrais la fenêtre doit rester ouverte .

Quelque chose comme une commande cmd /k** command dans Windows.

P.S. JE Ne le fais pas. veulent utiliser pause mais je veux pouvoir écrire d'autres commandes après l'exécution du script.

102voto

andybee Points 497

Mettez $SHELL à la fin de votre script :

alt text

Un petit défaut : puisque gnome-terminal n'exécute pas le bash que c'est Shell, il le considérera comme une application et afficher un avertissement à ce sujet lorsque vous essayez de fermer le terminal :

There is still a process running in this terminal
Closing the terminal will kill it.

Je n'ai pas trouvé de moyen agréable de cacher cet avertissement. Si vous voulez, vous pouvez le désactiver entièrement en exécutant :

gconftool --set /apps/gnome-terminal/global/confirm_window_close --type boolean false

Cela ne se produit pas si vous utilisez xterm au lieu de gnome-terminal ; si cela vous dérange.

16voto

hardik24 Points 123

Utilisation du terminal Gnome

Utiliser gnome-terminal en ajoutant ;bash à la fin de la chaîne de commande et appeler le script avec l'option -c fonctionne. Par exemple :

gnome-terminal -e "bash -c ~/script.sh;bash"

Cela permet de faire ce qui suit :

  1. ouvre gnome-terminal
  2. exécute le script script.sh
  3. montre l'invite bash après que le script ait terminé.

Vous pouvez quitter la fenêtre de gnome-terminal en fermant la fenêtre ou en tapant exit à l'invite de bash. Ou vous pouvez taper d'autres commandes comme demandé.

13voto

jaycode Points 265

Si vous avez accès au script, vous pouvez également ajouter le code suivant à la fin :

read

Ce code attendra une entrée avant de se fermer, de sorte que le terminal restera ouvert jusqu'à ce que vous appuyiez sur Entrée.

9voto

Prem Anand Points 215

Utilisez bash 's --init-file avec un tuyau temporaire :

bash --init-file <(echo './<script_name>')

Ex :

bash --init-file <(echo './bla.sh')

7voto

Ramy Points 79

Si vous utilisez xterm utiliser -hold .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X