8

Я на OSX Snow Leopard.

Вот полное содержание grr.sh:

#!/bin/sh

echo wow

Когда я пытаюсь запустить его из терминала:

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

Хорошо. Справедливо. Я дам ему исполняемое разрешение, затем попробую еще раз:

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

Хммм. Может быть, это сработает, если я буду использовать bash явно? Я изменю содержимое файла на:

#!/bin/bash

echo wow

И я получаю точно такие же результаты. Что я мог сломать ?!

Одна последняя вещь! Если тебе интересно ...

$ which sh
/bin/sh

4 ответа4

19

Совершенно ничего. Только исполняемые файлы в одном из каталогов в $PATH могут быть запущены напрямую, и . (обычно) никогда не находится в $PATH . Укажите путь к исполняемому файлу, т.е. ./grr.sh .

7

Расположение grr.sh в $PATH ? Если нет, вам нужно будет ввести:

./grr.sh

если вы находитесь в той же папке, что и grr.sh. Если нет, то укажите полный путь к нему.

6

разрешения для файла неверны. Попробуйте следующие команды:

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

Да, и что ./grr.sh означает, что в этом каталоге выполните команду grr.sh. Сингл. значит в рабочем каталоге. В противном случае ваша оболочка предполагает, что вы пытаетесь запустить команду в вашем $ PATH.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .