3 votes

Capture d'écran de la commande du terminal et retour au shell script.

J'essaie d'exécuter un shell script dans lequel je lance la commande screencapture, je fais quelques modifications comme renommer le fichier, le déplacer vers Dropbox, raccourcir l'url etc et ensuite je growle l'url.

Le problème est qu'après avoir exécuté la commande "screencapture", les commandes suivantes ne sont pas exécutées de la même manière :

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 shell script est déclenché à partir d'Alfred)

Comment revenir au shell script après avoir lancé la commande screencapture ?

4voto

shsteimer Points 8749

Le problème n'est pas que le contrôle n'est pas renvoyé à votre script, c'est que la sortie de la fonction echo n'est pas capturée et ne vous est pas communiquée. Il se peut qu'Alfred ferme la fenêtre transitoire de Terminal.app qu'il utilise pour exécuter le script. Pour tester cela, ajoutez un sleep 60m à la fin du script qui devrait maintenir la fenêtre à l'écran.

Il se peut aussi que tous les stdout/stderr provenant du script aillent à /dev/null ou quelque chose de similaire. Assurez-vous qu'Alfred ne jette pas la sortie. D'après nos commentaires, il semble que c'est ce que fait Alfred avec std I/O.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X