How to run a Unix shell script from the Mac Finder

MacOS Finder FAQ: Is there a way that I can execute a custom Unix shell script from the Mac Finder?

Solution: If you ever want to create a Unix shell script that you can give to someone else so they can double-click it and run it through the MacOS Finder, all you have to do is (a) name the file with the .command extension and (b) make it executable.

For example, just name your Mac/Unix script like this:

ShowProcesses.command

Then make it executable, such as by running chmod from the MacOS Terminal:

chmod +x ShowProcesses.command

You can also leave out the usual #!/bin/sh part on the first line.

Now, when someone double-clicks your script in the Mac Finder, the script will open a new Mac Terminal window, and then run the script inside that window. When it’s finished, the Terminal will display a “Process Completed” message, and the user can close the Terminal.

I did this recently for one of my sisters. She has an HP printer attached to her Mac, and from time to time the printer goes nuts and decides to eat the CPU. I run a top command in a script so she can confirm that this is the problem.

Simple example

As a simple example of this, create a file named Test.command somewhere on your Mac OS X filesystem, such as the Desktop, or a temp folder somewhere. Put some simple commands in the file, like this:

ls -al
pwd

Then make the script executable:

chmod +x Test.command

Now go to the Finder, navigate to the directory where this script is located, and double-click the icon for this file. You should see a Terminal window open, with the output from the commands shown in the Terminal window.

How to determine the current directory

If you need to get the full path of the directory where your script was run from, use this command:

DIRNAME=`dirname "$0"`

After that line executes, the variable DIRNAME will contain the full path to the directory where the user executed your script in the Finder. (The pwd command will just list the user’s home directory.)

Summary

In summary, if you wanted to see how to run/execute a Unix shell script from the MacOS Finder, I hope these examples are helpful.