Screencapture Terminal-Befehl und kehren Sie dann zum Shell-Skript zurück

Ich versuche, ein Shell-Skript auszuführen, in dem ich den Bildschirmaufnahmebefehl ausführe, ein paar Änderungen vornehme, z. B. das Umbenennen von Dateien, das Verschieben nach Dropbox, das Kürzen der URL usw. und dann das Knurren der URL.

Das Problem ist, dass nach dem Ausführen des Terminalbefehls „screencapture“ die folgenden Befehle nicht so ausgeführt werden:

screencapture -i ~/Dropbox/Public/ScreenShot_TestScreenShot1.png
# below doesn't get executed
echo "your file is at ~/Dropbox/Public/ScreenShot_TestScreenShot1.png"

(Für Neugierige: Das Shell-Skript wird von Alfred ausgelöst)

Wie auch immer, nach dem Ausführen des Screencapture-Befehls zum Shell-Skript zurückzukehren?

Sind Sie sicher, dass das echonicht ausgeführt wird? Und dass das Terminal-Fenster, das Alfred öffnet, einfach nicht zerstört wird, bevor Sie das Echo sehen können? sleep 60mVersuchen Sie , am Ende des Skripts nach dem echo-Befehl ein hinzuzufügen , um vorübergehende Fenster auf dem Bildschirm am Leben zu erhalten.
Du hast Recht Jan! Alfred hat im Grunde dieses Kontrollkästchen zum Aktivieren von Growl, das ich nicht aktiviert habe, sodass die Ausgabe nirgendwo erfasst wurde

Antworten (1)

Das Problem ist nicht, dass die Kontrolle nicht an Ihr Skript zurückgegeben wird, sondern dass die Ausgabe des echoBefehls nicht erfasst und Ihnen gemeldet wird. Es könnte sein, dass Alfred das vorübergehende Terminal.app-Fenster schließt, das zum Ausführen des Skripts verwendet wird. Um das zu testen, fügen Sie sleep 60mam Ende des Skripts ein hinzu, das das Fenster auf dem Bildschirm halten soll.

/dev/nullOder es könnte sein, dass alle stdout/stderr aus dem Skript auf oder ähnliches gehen . Stellen Sie sicher, dass Alfred die Ausgabe nicht wegwirft. Basierend auf unserem Kommentargespräch klingt es so, als würde Alfred dies mit std I/O tun.