Какие интерпретаторы, помимо bash и sh, можно указать в shebang (первой строке скрипта)?

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

Ответ

В shebang (#!) можно указать путь к любому интерпретатору, который способен выполнить текст скрипта. Главное условие — бинарный файл должен существовать по указанному пути.

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

  • Python: #!/usr/bin/env python3 (рекомендуется для кроссплатформенности)
  • Perl: #!/usr/bin/perl
  • PHP: #!/usr/bin/php
  • Ruby: #!/usr/bin/ruby
  • Node.js: #!/usr/bin/env node

Пример скрипта на Python:

#!/usr/bin/env python3
import sys
print(f"Hello from {sys.version}!")

Требования для работы:

  1. Строка shebang должна быть первой в файле.
  2. Файлу должны быть выданы права на выполнение: chmod +x script.py.
  3. Указанный интерпретатор должен быть установлен и доступен в системе.

Важное замечание: Использование /usr/bin/env (как в #!/usr/bin/env python3) предпочтительнее, так как оно ищет интерпретатор в переменной PATH пользователя, а не по жесткому пути. Для компилируемых языков (Go, Rust) скрипты обычно не используют shebang, а создают нативные бинарники.