Shebang в bash
Допустимые shebang:
Знак -
после /bin/bash
предовтращает замену старым интерпретатором. Ибо ядро Linux (но не других систем!) обрабатывает всё, что следует за первым “словом” (/bin/bash
in this case), как один аргумент - предотвратить это можно, как раз, добавив дефис - признак конца аргументов.
/usr/bin/env
- утилита, которая ищет исполняемые файл в $PATH
, ибо bash на разных системах может быть расположен не в /bin/bash
. env
как раз помогает сделать скрипт более переносимым. Этот способ считается стандартным решением проблемы мобильности, но предполагается, что env будет находится в /usr/bin
😐.
Соусы:
- Книга “Bash и кибербезопасность” ⇒ Глава 1. Работа с командной строкой ⇒ Основы работы с командной строкой ⇒ От командной строки до скрипта
- Книга “Идиомы Bash” ⇒ Глава 9. “Файлы и не только” ⇒ “Shebang!”