Шебанг — в программировании последовательность из двух символов: решётки и восклицательного знака ("#!") в начале файла скрипта.
Когда скрипт с шебангом выполняется как программа в Unix-подобных операционных системах, загрузчик программ рассматривает остаток строки после шебанга как имя файла программы-интерпретатора. Загрузчик запускает эту программу и передаёт ей в качестве параметра имя файла скрипта с шебангом.[8] Например, если полное имя файла скрипта "path/to/script" и первая строка этого файла:
#!/bin/sh
то загрузчик запускает на выполнение "/bin/sh" (обычно это Bourne shell или совместимый интерпретатор командной строки) и передаёт "path/to/script" как первый параметр.
не работаетЭто самое хреновое что можно услышать от разработчика. Есть ошибки (смотреть консоль), есть поведение (работает не как ожидалось, а вот так...), есть логирование - пишем на важных точках консоле.лог с выводом текущих переменных... Не работает может сказать кухарка про пылесос. Разработчик должен понимать что он хочет добиться от кода и понимать что среда требует от него. И на сегодня все инструменты для этого у него есть.