J'ai un programme (grabface) qui prend une photo du visage d'une personne à l'aide d'une webcam, et j'ai aussi une enveloppe de script shell qui fonctionne comme ceci:exécuter automatiquement un programme si un autre programme renvoie une erreur
Sur la ligne de commande, l'utilisateur donne au script le nom d'un programme à exécuter et ses arguments de ligne de commande. Le script exécute ensuite la commande donnée et vérifie le code de sortie. S'il y avait une erreur le programme grabface est exécuté pour capturer le visage surpris de l'utilisateur.
Tout cela fonctionne très bien. Mais le problème est que le script wrapper doit toujours être utilisé. Est-il possible d'exécuter automatiquement ce script chaque fois qu'une commande est entrée dans le shell? Ou existe-t-il un autre moyen d'exécuter automatiquement un programme donné après l'exécution d'un programme?
De préférence, la solution devrait fonctionner dans bash, mais toute autre coque est également OK. Je réalise que cela pourrait être accompli en faisant simplement quelques ajustements dans le code source du shell, mais c'est une sorte de dernière mesure. Une chose qui est probablement encore plus délicate serait d'étendre ceci pour travailler avec des programmes lancés à l'extérieur du shell (par exemple à partir d'un environnement de bureau) mais cela peut être trop difficile.
Édition: Awsome! Depuis bash était si facile, qu'en est-il des autres coquilles?
Bien sûr, mais cela ne répond pas vraiment à la question. Comme je l'ai déjà dit, j'ai un script wrapper qui fait cela. Ce que je voulais savoir, c'est comment je pourrais faire fonctionner le script sans avoir à taper quoi que ce soit d'extra dans le shell (comme le '|| echo "Il a échoué"' dans votre exemple) – pafcu
ne répond pas à la question des posters mais était exactement ce que Je cherchais. – rob