2010-10-15 12 views
3

Je lance MATLAB (version en ligne de commande) à partir d'un script shell, et je voudrais qu'il conserve le comportement de la coque où si vous appuyez sur Ctrl - C il se termine. Mais à la place, il veut garder le contrôle du terminal et je (ou mes pauvres utilisateurs après moi) devez taper quit(1) pour le faire quitter et dire au shell qu'il a échoué.Puis-je forcer MATLAB à quitter après que l'utilisateur appuie sur Control-C?

Vous ne pouvez pas intercepter Ctrl - C avec un bloc try/catch ... d'autres idées? Quelque chose que je pourrais faire du côté de la coquille pour intercepter les frappes avant qu'ils arrivent à MATLAB?

onCleanup semble être une option, mais je dois faire la chose de script dans une fonction (il est déjà généré dynamiquement try/catch chose de bloc dans un Makefile). Mais si c'est la seule chose qui fonctionne, alors je vais le faire ...

Répondre

1

Utilisation onCleanup:

Je voulais faire la même chose, mais après avoir lu this thread j'ai utilisé avec succès onCleanup. Mon problème était que j'avais un serveur dans Matlab qui en appuyant sur CTRL + C garderait listen sur le port sur lequel il a été démarré -> deuxième exécution j'obtiendrais une erreur bind.

0

Vous pouvez essayer:

stty quit ^C 

mais je ne Matlab pour le tester.