J'essaie d'exécuter un script shell dans lequel j'exécute la commande screencapture, apporte quelques modifications telles que le changement de nom de fichier, le déplacement vers Dropbox, la réduction de l'URL, etc., puis le développement de l'URL.
Le problème, c'est qu'après l'exécution de la commande de terminal "screencapture", les commandes suivantes ne sont pas exécutées de la manière suivante:
screencapture -i ~/Dropbox/Public/ScreenShot_TestScreenShot1.png
# below doesn't get executed
echo "your file is at ~/Dropbox/Public/ScreenShot_TestScreenShot1.png"
(Pour les curieux: le script shell est déclenché par Alfred)
Quoi qu'il en soit de revenir au script shell après avoir exécuté la commande screencapture?
terminal
screen-capture
bash
Kaushik Gopal
la source
la source
echo
n'est pas en cours? Et que la fenêtre de terminal qu'Alfred a vue ne soit pas détruite avant que vous puissiez voir l'écho? Essayez d’ajouter asleep 60m
à la fin du script après la commande echo pour que les fenêtres transitoires restent actives à l’écran.Réponses:
Le problème n’est pas que le contrôle ne soit pas renvoyé à votre script, c’est que la sortie de la
echo
commande ne soit ni capturée ni rapportée. Il se peut qu'Alfred ferme la fenêtre transitoire Terminal.app qu'il utilise pour exécuter le script. Pour tester cela, ajoutez asleep 60m
à la fin du script, ce qui devrait garder la fenêtre à l'écran.Ou il se peut que tous les éléments stdout / stderr du script soient envoyés
/dev/null
ou quelque chose de similaire. Assurez-vous qu'Alfred ne jette pas la sortie. D'après notre conversation de commentaire, il semblerait que c'est ce que fait Alfred avec std I / O.la source