Bash не будет запускать мой простой скрипт

Когда я выполнюinit-hooks я получил

bash: init-hooks: команда не найдена

вот содержимое init-hooks:

#!/bin/bash
set -e
printf '\ncopying hooks\n\n'
cp ./hooks/* ../../.git/hooks

Когда я выполню cp ./hooks/* ../../.git/hooks непосредственно из bash выполнение успешно. (обратите внимание, что это та же команда, что и в сценарии)

Доказательство наличия файлов в каталоге и результаты выполнения:

Почему мой сценарий ведет себя не так, как команда / почему мой сценарий не найден?

2 ответа

В системах Linux (где bash по соображениям безопасности текущий каталог обычно не включается в путь.

Бежать echo $PATH проверить, какие каталоги используются для поиска исполняемых файлов, если они указаны в командной строке без пути. Текущий каталог (.) не должно быть там.

Запустите скрипт как ./init-hooks а также bash найду это.

Я предпочитаю запустить его следующим образом

./init_hooks

или введите полное имя файла.

убедитесь, что скрипт выполняется

chmod +x ./init_hooks

Другие вопросы по тегам