Screencapture Terminal, puis retournez au script shell

3

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?

Kaushik Gopal
la source
1
Etes-vous certain que ce echon'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 a sleep 60mà la fin du script après la commande echo pour que les fenêtres transitoires restent actives à l’écran.
Ian C.
Tu as raison Ian! Alfred a essentiellement cette case à cocher Activer Growl, que je n'ai pas activée, afin que la sortie ne soit capturée nulle part
Kaushik Gopal

Réponses:

4

Le problème n’est pas que le contrôle ne soit pas renvoyé à votre script, c’est que la sortie de la echocommande 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 a sleep 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/nullou 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.

Ian C.
la source