Apple - How can I make an Automator service run a shell script and display the output?

Nice and clean solution is to display message via Notification Center. Just execute the following terminal command in your script.

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

'osascript' command runs any AppleScript from terminal, 'display notification' pops up nice notification.

enter image description here


Also you can use 'display alert'. It has no limitation of message length and it's easy to add OK button to it.

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

enter image description here

Here is Apple Script commands reference. Look for 'display notification' and 'display alert' for more information.


This AppleScript will launch a Terminal window with the command you specified:

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

Create a “Run AppleScript” action in Automator and paste it in there.


Here's a simple solution that I got working, which shows the command output once it's finished:

  1. Pass the output of a Run Shell Script action to Set Value of Variable
  2. Use that variable to, for example, display a notification.

For example, with the test.py Python script, all I'm doing is printing the arguments passed (“Running a script with …”), so when I run it, after finishing, it shows: