Take the 2-minute tour ×

I'm on OSX Snow Leopard.

Here's the full contents of grr.sh:


echo wow

When I try to run it from terminal:

$ grr.sh
-bash: grr.sh: command not found
$ /bin/sh grr.sh
$ sh grr.sh
$ bash grr.sh

Okay. Fair enough. I'll give it executable permission, then try again:

$ chmod +x grr.sh
$ grr.sh
-bash: grr.sh: command not found
$ chmod 755 grr.sh
$ grr.sh
-bash: grr.sh: command not found

Hmmm. Maybe it'll work if I use bash explicitly? I'll change the file's contents to:


echo wow

And I get the exact same results. What could I have broken?!

One last thing! In case you're curious...

$ which sh
share|improve this question

3 Answers 3

up vote 12 down vote accepted

Absolutely nothing. Only executables in one of the directories in $PATH can be run directly, and . is (usually) never in $PATH. Specify the path to the executable, i.e. ./grr.sh.

share|improve this answer
+1. Also of note, the current directory is on the path on Windows systems by default, and is highest in priority. This crucial difference is probably the source of the asker's confusion. –  afrazier Jun 1 '11 at 4:57
You were first by 9 seconds! Thank you! –  Closure Cowboy Jun 1 '11 at 4:59

Is the location of grr.sh in the $PATH variable? If not, you'll need to enter:


if you are in the same folder as grr.sh. If not, then provide the full path to it.

share|improve this answer

Yeah, and what ./grr.sh means, is that in this directory, run the command grr.sh. The single . means in the working directory. Otherwise, your shell assumes you are trying to run a command in your $PATH.

share|improve this answer

Your Answer


