Файлы .sh требуют 'sh app.sh' даже с '#!/bin/bash' строка

У меня создается впечатление это, если я включаю строку

#!/bin/bash

в начале моего файла это будет распознано как скрипт удара, которым я могу запустить только

file.sh

вместо

sh file.sh

Но в моем случае, file.sh дает что-то как test.sh дает test.sh: command not found. Почему это?

ОБНОВЛЕНИЕ

Я замечаю, что должен использовать ./. Но я думал, что это посмотрит в текущем каталоге так или иначе?

./test.sh
7
задан 13 August 2011 в 06:48

2 ответа

Сначала необходимо удостовериться, что файл является исполняемым файлом:

chmod +x file.sh

И затем выполнять его, любой необходимо поместить его в ПУТЬ, т.е. один из каталогов файлов поиски ОС при поиске файлов для выполнения, с которым можно найти echo $PATH, или иначе необходимо ввести:

./file.sh

Вместо того, чтобы просто вводить file.sh.

Можно просто ввести file.sh, если это находится в Вашем ПУТИ, который я рекомендую. Хорошее место находится в ~/bin. Создайте ту папку, если это не будет там, и в соответствии с Ubuntu, то будет добавлено к Вашему пути, когда Вы войдете в систему.

13
ответ дан 23 November 2019 в 06:13

Необходимо запустить его с./file.sh, потому что текущий dir не находится в ПУТИ.

Если это не достаточно, becaused Вы отсутствовал, что замечательный предлагает, к chmod a+x, необходимо запустить программы, начинающиеся с хижины #!/bin/bash с

bash file.sh

нет

sh file.sh

даже если sh является символьной ссылкой на/bin/bash.

Оболочка проверяет, как она была вызвана и может быть вызвана как sh для действия в совместимом режиме поэтому это может не обработать некоторый bashisms, который работал бы, если вызвано как bash file.sh.

Это не было Вашей проблемой, но могло бы стать один, если Вы не знаете их тонкое различие.

5
ответ дан 23 November 2019 в 06:13

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

Похожие вопросы: