
Файл build.sh обычно содержит последовательность команд для сборки проекта: компиляцию исходников, установку зависимостей, запуск тестов или подготовку артефактов. В Linux и macOS такой файл не запускается автоматически по двойному клику, как в графических системах Windows. Для выполнения требуется корректное имя интерпретатора, права на запуск и понимание текущего окружения.
Чаще всего проблемы возникают из-за отсутствия флага выполнения, неверного пути к файлу или различий между оболочками bash, sh и zsh. В macOS по умолчанию используется zsh, тогда как многие скрипты пишутся с расчётом на bash. В Linux дистрибутивы также могут отличаться настройками оболочки и правами доступа в файловой системе.

Проверка прав доступа к файлу build.sh

Перед запуском build.sh необходимо убедиться, что файл имеет право на выполнение. Для этого в каталоге со скриптом выполните команду ls -l build.sh. В начале строки отображаются атрибуты доступа, например -rwxr-xr—, где символ x указывает на возможность запуска.

Если у файла build.sh отсутствует флаг выполнения, его нужно добавить вручную. Для этого используется команда chmod, которая изменяет атрибуты доступа в файловой системе. Работать следует из каталога, где расположен скрипт, либо указывать полный путь к файлу.
На практике применяются следующие варианты:
- chmod +x build.sh – добавляет право на выполнение для владельца, группы и остальных пользователей;
- chmod u+x build.sh – разрешает запуск только владельцу файла;
- chmod ug+x build.sh – добавляет право на выполнение владельцу и группе;
- chmod 755 build.sh – задаёт права в числовом виде: запуск и чтение для владельца, чтение и запуск для остальных.
После выполнения команды стоит повторно проверить атрибуты через ls -l и убедиться, что в строке прав появился символ x. Без этого оболочка не сможет выполнить файл напрямую, даже если его содержимое корректно.
На macOS и Linux команда chmod работает одинаково, но в macOS возможна дополнительная блокировка из-за атрибутов карантина. В таком случае потребуется убрать соответствующий флаг отдельной командой, иначе скрипт не запустится, несмотря на выставленные права.
Запуск build.sh из текущего каталога

Для запуска build.sh из текущего каталога используется префикс ./, указывающий оболочке на явный путь к файлу. Команда имеет вид ./build.sh и выполняется только при наличии права на выполнение и корректного интерпретатора в первой строке скрипта.
Отсутствие ./ приводит к ошибке «command not found», так как текущий каталог по умолчанию не входит в переменную PATH. Это поведение одинаково для Linux и macOS и не зависит от используемой оболочки.
