Что такое шебанг (shebang) в Linux?

«Что такое шебанг (shebang) в Linux?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Шебанг (shebang) — это последовательность символов #! в начале исполняемого файла скрипта, которая указывает системе, какой интерпретатор использовать для его выполнения. Формат: #!/путь/к/интерпретатору [аргументы].

Пример для bash-скрипта:

#!/bin/bash
echo "Hello, World!"

Ключевые особенности:

  • Должен быть первой строкой файла.
  • Путь к интерпретатору должен быть абсолютным.
  • Файл должен иметь права на исполнение (chmod +x script.sh).

Распространённые варианты:

  • #!/bin/sh — для POSIX-совместимого shell.
  • #!/usr/bin/env python3 — более переносимый способ, так как env ищет интерпретатор в переменной PATH.
  • #!/usr/bin/perl — для Perl-скриптов.

С точки зрения DevOps: Шебанг критически важен для создания переносимых и надёжных скриптов автоматизации (например, для CI/CD пайплайнов, скриптов развёртывания или мониторинга), так как гарантирует использование правильной версии интерпретатора в различных окружениях.