Запуск Bash-скрипта — полный практический разбор

16 марта 2026
Автор

Олег Марков

Введение

Скрипт можно написать быстро, но ошибки чаще всего начинаются именно на этапе запуска: нет прав, не тот интерпретатор, неверные аргументы, запуск из другой директории.

Ниже — короткий и практичный чеклист, как запускать Bash-скрипты без сюрпризов.

Базовые способы запуска

1) Через Bash (без +x)

bash script.sh

Подходит для тестов и разовых запусков. Shebang не обязателен.

2) Прямой запуск файла

./script.sh

Требует:

  • shebang в первой строке,
  • права на исполнение (chmod +x script.sh).

Права на запуск

Проверка:

ls -l script.sh

Выдача прав:

chmod +x script.sh

Если прав нет, будет Permission denied.

Передача аргументов

Запуск с параметрами:

./script.sh prod eu-west-1

Внутри скрипта:

  • $1, $2 — позиционные аргументы,
  • $# — количество аргументов,
  • "$@" — все аргументы как список.

Пример валидации:

[[ $# -ge 1 ]] || { echo "Usage: $0 <env>" >&2; exit 1; }

Запуск в фоне

./script.sh &

Полезно для долгих задач. PID последнего фонового процесса — $!.

Запуск с логами

./script.sh > out.log 2> err.log

Или объединённо:

./script.sh > run.log 2>&1

Частые ошибки при запуске

Permission denied

Нет execute-бита → chmod +x script.sh.

bad interpreter

Часто CRLF или неверный shebang-путь.

command not found

Обычно отсутствует зависимость в окружении (PATH) или опечатка в команде.

Диагностика

Проверка синтаксиса:

bash -n script.sh

Трассировка выполнения:

bash -x script.sh arg1

Линтинг:

shellcheck script.sh

Рекомендуемый запуск в проектах

Для CI и прод-скриптов:

  1. Shebang #!/usr/bin/env bash
  2. set -euo pipefail
  3. Явная проверка аргументов и зависимостей
  4. Логи в stdout/stderr
  5. Ненулевой exit при ошибке

Вывод

Надёжный запуск Bash-скрипта строится на трёх вещах: корректный shebang, правильные права и явная валидация входа. Если это соблюдено — скрипты ведут себя предсказуемо и в локальной машине, и в CI/CD.

Стрелочка влевоShebang в Bash — полный разборСоздание Bash-скрипта — полный практический разборСтрелочка вправо

Все гайды по Bash

Редиректы и пайпы в Bash — полный разбор
Открыть базу знаний

Отправить комментарий