You can use the do script
AppleScript command to run a command in a new Terminal window:
osascript -e 'tell app "Terminal" to do script "uptime"'
It doesn't start a second process or instance for Terminal though. On OS X there is typically only one instance for each application, even though you can use open -n
to open another instance.
Let's start with a small example.
Fire up Automator and create a service with a single "Run Shell Script" step.
Set it to take Folders as input from Finder
Pass input as arguments. Shell is /bin/bash
Bash code:
cd "$@"
for file in *.mov *.flk *.mp4
do
ls -1 "$file" >> ~/Desktop/test_file_awk.txt
done
What this does it takes the directory you pass in as "$@" and goes into it then runs the command on all the files in that directory.
"$@" is in quotes to protect against spaces, as is "$file"
So, you can replicate this to your setup:
cd "$@"
i=$(for file in {*.flv,*.mov,*.mp4,*.m4v}
do
/usr/local/bin/mediainfo "--Inform=Video;%Duration%" "$file"
done | awk '{total+=$0}END{print total}')
((i/=1000, sec=i%60, i/=60, min=i%60, hrs=i/60))
timestamp=$(printf "%dh%02dm%02ds" $hrs $min $sec)
echo -e "Total duration of video files in this folder:\n\n$timestamp" > _total_duration.txt
Personally, I would change the output to something like:
> ~/Desktop/"$@"_total_duration.txt
So that the data ends up on your desktop in a file named for the folder, but I have a lot of media directories and I don't want txt files in them.
Best Answer
You can have files in the Dock, but they have to be the other side of the 'dividing line' from apps.
So a shell script file, with suffix
.command
, or.tool
, could be in the Dock and would launch on a click.There are other places to have scripts readily accessible in the Mac workspace, of course, such as the Scripts menulet.