Éviter l'invite [processus terminé] après la fin du script du terminal sur Mac OS X

32

Dans mon éditeur de texte, j'ai lié une touche de raccourci pour déployer mon code en invoquant une commande comme

/usr/bin/open /Users/blahblah/run_deploy

Ce script de déploiement télécharge mon code sur mon serveur, etc. J'utilise "open" pour que je puisse voir la sortie dans une nouvelle fenêtre de terminal en cas d'erreurs. Très pratique, mais à la fin cela laisse la fenêtre du terminal ouverte avec le texte "[Processus terminé]".

Est-il possible d'ignorer cela et de fermer la fenêtre automatiquement?

Processus terminal terminé

Bemmu
la source
1
Donner que vous avez configuré Terminal pour fermer la fenêtre lorsque le shell se ferme, cela ressemble à un problème de terminal. Avez-vous essayé de supprimer le fichier com.apple.Terminal.plistde préférences de votre dossier Préférences et avez-vous essayé de le redéfinir ?
Chealion
Avez-vous toujours ce problème?
Daniel Beck

Réponses:

52

Dans les préférences du terminal , dans le volet Profils, sélectionnez le profil que vous utilisez (devrait dire «par défaut» sous son nom), sélectionnez le sous-volet Shell et remplacez « Lorsque le shell se termine: » par « Fermer si le shell est sorti correctement ».

Il ne masquera pas le [Process completed]message, mais fermera la fenêtre si le code de sortie a réussi.

tig
la source
Pour une raison quelconque, je ne peux pas modifier les paramètres de cette fenêtre de terminal. Si je les change dans une autre fenêtre de terminal et "utilise par défaut", ils ne sont toujours pas utilisés dans la nouvelle fenêtre de terminal. Voici à quoi ressemble la nouvelle fenêtre du terminal: i.imgur.com/u3tk4.png
Bemmu
Tout d'abord pour accélérer les tests, exécutez ce qui suit: echo 'say hello' > test; chmod +x test(cela créera un exécutable qui vous dira bonjour), l'exécuter open testou double-cliquer dessus dans le Finder l'exécutera avec le terminal par défaut. Sur votre capture d'écran, aucun des schémas n'est sélectionné (je ne sais pas comment, je ne peux pas tous les désélectionner), alors sélectionnez Basic car il est marqué «Par défaut», et définissez le paramètre de fermeture, puis essayez d'exécuter le script.
tig
Merci, mais cela n'a pas fonctionné non plus: i.imgur.com/cCo49.png
Bemmu
Quelle version de système d'exploitation utilisez-vous (je ne sais pas si elle peut être liée, j'utilise 10.6.4)? Peut-être que cela est dû au courrier non lu? Essayez mailde le lire. Peut-être que quelque chose ne va pas avec la déconnexion? Avez-vous un ~/.bash_logoutdossier, si oui, que contient-il? Essayez de bash -c exit && echo 'ok'lancer - vous devriez voir «ok», essayez également de lancer exitdans un nouveau shell - cela devrait fermer la fenêtre. Utilisez-vous des groupes de fenêtres? i.imgur.com/thPNV.png
tig
1
Pourriez-vous mettre une commande "killall terminal" à la fin de votre script ou quelque chose? Je sais que cela fermera la fenêtre quoi qu'il arrive, mais vous pouvez au moins regarder ce qui se passe PENDANT l'exécution du script (et vous pouvez également pousser la sortie vers un journal, juste au cas où).
jrc03c
0

La réparation des autorisations via l' Disk utilityapplication a résolu le problème pour moi.

J'ai continué à voir l'erreur dans l' Consoleapplication:

20/08/2015 01:17:42.318 login[3291]: in pam_sm_open_session(): Unable to write the utmp record.
jakedsouza
la source