11 votes

Comment faire pour qu'un service Automator exécute un script shell et affiche la sortie ?

J'utilise Automator pour exécuter un shell script (ffmpeg transcode to h264) en tant que 'Service', de sorte que je peux simplement faire un clic droit sur le fichier .mov haute résolution et sélectionner le service. Cela fonctionne bien, mais comme c'est ffmpeg, il serait bon de voir la sortie dans une fenêtre de terminal. Existe-t-il un moyen de voir le résultat en temps réel ?

Cela ne devrait pas faire de différence, mais voici le script au cas où :

for f in "$@"
do
/usr/local/bin/ffmpeg -i "$f" -c:v libx264 -vf yadif -pix_fmt yuv420p -crf 21 -preset slow -movflags faststart -c:a copy ${f%.*}_h264_yadif.mov
done

9voto

0942v8653 Points 6754

Cet AppleScript lancera une fenêtre de Terminal avec la commande que vous avez spécifiée :

on run {input, parameters}
    tell application "Terminal"
        activate
        set filesString to ""
        repeat with file\_ in input
            set filesString to filesString & " " & quoted form of (POSIX path of file\_)
        end repeat
        do script "for f in" & filesString & "; do
/usr/local/bin/ffmpeg -i \\"$f\\" -c:v libx264 -vf yadif -pix\_fmt yuv420p -crf 21 -preset slow -movflags faststart -c:a copy ${f%.\*}\_h264\_yadif.mov
done"
    end tell
    return input
end run

Créez une action "Exécuter AppleScript" dans Automator et collez-la là.

8voto

Arseny Kogan Points 231

Une solution simple et efficace consiste à afficher un message via le centre de notification. Il suffit d'exécuter la commande suivante en terminal dans votre script.

osascript -e 'display notification "All files converted" with title "ffmpeg converter"'

La commande 'osascript' exécute n'importe quel AppleScript à partir du terminal, la commande 'display notification' fait apparaître une belle notification.

enter image description here


Vous pouvez également utiliser l'option "afficher l'alerte". Il n'y a pas de limite à la longueur du message et il est facile à ajouter. OK pour le faire.

osascript -e 'set alertResult to display alert "Bad news :( Error converting your video file." buttons {"OK"} as warning'

enter image description here

Ici est la référence des commandes d'Apple script. Recherchez " notification d'affichage " et " alerte d'affichage " pour plus d'informations.

3voto

OJ. Points 16939

Voici une solution simple que j'ai réussi à faire fonctionner, qui montre la sortie de la commande une fois qu'elle est terminée :

  1. Transmettre la sortie d'un Exécuter le Shell script action pour Définir la valeur de la variable
  2. Utilisez cette variable pour, par exemple, afficher une notification.

Par exemple, avec le test.py Python script, tout ce que je fais est d'imprimer les arguments passés ("Running a script with "), donc quand je l'exécute, après avoir terminé, il affiche :

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