Ich habe einen Automator-Dienst, der ein Shell-Skript ausführt (Befehl ffmpeg).
Ich suche nach einer Möglichkeit, die Ausgabe des Terminals zu sehen, während ffmpeg seine Sache erledigt.
Das Hinzufügen echo
zum ffmpeg-Befehl funktioniert nicht. Ich habe gelesen, dass dies mit AppleScript erreicht werden kann, aber ich möchte nach Möglichkeit in Bash bleiben.
Außerdem wäre es einfach genial, einen Fortschrittsbalken der Transcodierung anzuzeigen.
So sieht meine Automator-Aktion aus:
Damit Ihr Shell-Skript (Bash) kontinuierlich auf dem Bildschirm ausgegeben wird, damit Sie den Fortschritt sehen können, müssen Sie es von AppleScript aus starten. Im Grunde ist dies ein Skript, das ein anderes Skript startet. Verwenden Sie das folgende Skript, um das Skript zu starten, das Ihren ffmpeg-Befehl enthält. Sie können sogar wie gewohnt Argumente an Ihr Skript übergeben.
Für dieses Beispiel habe ich ein einfaches Bash-Skript, das das erste Befehlszeilenargument ausgibt.
#! /bin/bash
# test.sh
echo $1
exit
Als nächstes kommt der AppleScript-Code, der das Bash-Skript startet
tell application "Terminal"
do script "<path>/test.sh 'Hello World'; exit"
activate
end tell
Beachten Sie, dass Zeichenfolgen mit Leerzeichen, die Sie übergeben müssen, in einfache Anführungszeichen gesetzt werden MÜSSEN . Doppelte Anführungszeichen verursachen einen Fehler in AppleScript.
Wenn Sie das Skript ausführen, öffnet es ein Terminalfenster und alles, was ausgegeben wird, wird auf dem Bildschirm angezeigt.
kein Hang
kein Hang
o_ren