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?
Das Problem ist nicht, dass die Kontrolle nicht an Ihr Skript zurückgegeben wird, sondern dass die Ausgabe des echo
Befehls 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 60m
am Ende des Skripts ein hinzu, das das Fenster auf dem Bildschirm halten soll.
/dev/null
Oder 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.
Jan C.
echo
nicht ausgeführt wird? Und dass das Terminal-Fenster, das Alfred öffnet, einfach nicht zerstört wird, bevor Sie das Echo sehen können?sleep 60m
Versuchen Sie , am Ende des Skripts nach dem echo-Befehl ein hinzuzufügen , um vorübergehende Fenster auf dem Bildschirm am Leben zu erhalten.KG -