Глиф Учебники

Как сделать скрипт исполняемым и запустить .sh

Справочник · Командная строка Linux · 2 минуты чтения

Bash
chmod +x script.sh
./script.sh

chmod +x даёт файлу право на выполнение, ./script.sh запускает его из текущей папки. Право выполнения видно в ls -l по букве x: -rwxr-xr-x. Ставить его нужно один раз — дальше оно сохраняется.

Только себе, без права для остальных:

Bash
chmod u+x script.sh

Почему ./ в начале

Команду без пути оболочка ищет только в папках из переменной PATH, а текущей папки там нет. Поэтому:

Запуск без права на выполнение

Скрипт можно передать оболочке напрямую — chmod тогда не нужен:

Bash
bash script.sh

Но не путайте с sh script.sh: в Ubuntu и Debian sh — это другая, более простая оболочка dash. Скрипт, написанный для bash, в ней может сломаться с ошибками вроде Syntax error или [[: not found.

Право есть, а Permission denied

Другие ошибки при запуске

Не давайте права на выполнение файлам, скачанным из непроверенных мест, и не запускайте их через sudo, не прочитав. Скрипт получает все ваши права, а с sudo — права администратора над всей системой.