8

I'm on OSX Snow Leopard.

Here's the full contents of grr.sh:

#!/bin/sh

echo wow

When I try to run it from terminal:

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

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:

#!/bin/bash

echo wow

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

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

$ which sh
/bin/sh
19

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.

  • 3
    +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
  • You save my macbook – vietnguyen09 Nov 21 '17 at 4:43
7

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

./grr.sh

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

6

the permissions for the file are wrong. Try the following commands:

  $ chmod 777 file.sh
  $ ./file.sh
0

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.