nixp.ru v3.0

23 мая 2017,
вторник,
17:53:54 MSK

DevOps с компанией «Флант»
Аватар пользователя ckjet
ckjet написал 24 марта 2009 года в 00:55 (7093 просмотра) Ведет себя как мужчина; открыл 44 темы в форуме, оставил 134 комментария на сайте.

вот у меня возникла проблема. При запуске .sh файлов командой ./имя файла.sh выдает bash: ./имя файла.sh: Отказано в доступе.Так же и откомпилированые програмы.

Дмитрий Шурупов

Надо выставить им право на исполнение. Делается командой chmod.

shurup@ubuntop:~$ ./a.sh
bash: ./a.sh: Permission denied
shurup@ubuntop:~$ chmod +x a.sh
shurup@ubuntop:~$ ./a.sh
Hello, world

Альтернативный вариант — запускать shell-скрипты через sh или bash, передавая интерпретатору имя файла. Тогда +x на файле не требуется:

shurup@ubuntop:~$ chmod -x a.sh
shurup@ubuntop:~$ ./a.sh
bash: ./a.sh: Permission denied
shurup@ubuntop:~$ sh a.sh
Hello, world
ckjet

Огромное спасибо.

Ворошек

схожая проблема, но после «chmod +x a.sh» лучше не стало:  «cant open a.sh»

Дмитрий Шурупов

Если ничего не путаю, такое бывает с 64-битными бинарниками в 32-битной системе.

Командой «file a.sh» можно убедиться, что это не shell-скрипт, а бинарный файл, и посмотреть, для той ли он архитектуры.

Ворошек

эта команда выдаёт: Bourne-Again shell script text executable, про архитектуру ничего

Дмитрий Шурупов

Тогда — все в порядке, это обычный bash-скрипт.

А поточнее: как вы его вызываете и полный вывод текста ошибки?

Ворошек

перехожу к папке, в которой расположен файл, и методом научного тыка перепробовал на всякий случай всё:

sh /ja2-w.sh

sh: Can’t open /ja2-w.sh

./ja2-w.sh

./ja2-w.sh: строка 2: ./ja2: является директорией  # так называется и родительский каталог

Дмитрий Шурупов

sh /ja2-w.sh — неправильно, потому что вы пытаетесь обратиться к файлу ja2-w.sh из корня файловой системы (/). Надо «sh ja2-w.sh», раз вы уже находитесь в нужном каталоге.

Вторая ошибка скорее всего связана с ошибкой в коде скрипта / нехваткой чего-то в окружении или файловой системе. Скрипт пытается выполнить файл ja2 из текущего каталога, а у вас такого нет — вместо него каталог с аналогичным названием.

Ворошек

Спасибо. Будем искать

… да, а  sh ja2-w.sh даёт пермиссион деньед