На этот вопрос уже есть ответ здесь:
У меня долгое время не получалось запустить файлы .sh. Я не понимаю, в чем проблема (я новичок в системах на базе Ubuntu/UNIX). Когда я пытаюсь запустить определенные .sh скрипты, я получаю следующую ошибку, сопровождаемую запуском Ubuntu Software Center:
"Файл "/home/user/Downloads/netbeans-8.1-cpp-linux-x86.sh" не может быть открыт."
В качестве пояснения, я дважды щелкал непосредственно на .sh файл в файловой системе.
Для установки sh
сценарий, необходимо ввести некоторые команды. Двойной щелчок по нему будет не всегда работать. Так, во-первых, откройте терминал, затем откройте Ваш файловый менеджер и перейдите к местоположению Вашего sh
сценарий.
Теперь, введите следующую команду (отредактируйте соответствующие части) в Вашем терминале:
chmod a+x DRAG THE SH SCRIPT AND DROP IT HERE
Примечание : Как указано Кос , это сделано, так, чтобы, если когда-либо Вы хотите выполнить его как ниже, тогда, Вы не сталкивались ни с какой ошибкой.
./path/to/script
Затем, тип это:
sh DRAG THE SH SCRIPT AND DROP IT HERE
, Если существуют какие-либо ошибки такой как Permission Denied
, то выполненный сценарий как root
:
sudo sh DRAG THE SH SCRIPT AND DROP IT HERE
Существует две причины, почему простой сценарий на Linux не может выполниться:
путь не корректен. В отличие от Windows, текущий каталог не в пути поиска оболочки. Так, для вызова сценария в текущем каталоге необходимо определить текущий каталог с точкой .
перед названием сценария: ./script.sh
. Кроме того, можно определить полный путь: /home/user/script.sh
файл сценария отсутствует. Или это находится под другой путь . Это то же как выше.
можно выполнить сценарии двумя способами:
определяют имя (с путем) на командной строке. И - если полномочия корректны - файл будет выполнен с оболочкой (если хижина будет корректна)
, используют команду sh
оболочки и определяют сценарий как аргумент. Затем не необходимо определить путь, однако оболочка должна быть в состоянии найти сценарий. Вы выполнили бы сценарий в текущем каталоге как это: sh script.sh
Попробуйте команду "chmod 777" и затем Ваше имя файла. Для выполнения вводят имя sh файла с./перед ним. Expempli gratia: chmod 777 coolman.sh./coolman.sh