Shebang в bash

Допустимые shebang:

#!/bin/bash -
#!/usr/bin/env bash

Знак - после /bin/bash предовтращает замену старым интерпретатором. Ибо ядро Linux (но не других систем!) обрабатывает всё, что следует за первым “словом” (/bin/bash in this case), как один аргумент - предотвратить это можно, как раз, добавив дефис - признак конца аргументов.

/usr/bin/env - утилита, которая ищет исполняемые файл в $PATH, ибо bash на разных системах может быть расположен не в /bin/bash. env как раз помогает сделать скрипт более переносимым. Этот способ считается стандартным решением проблемы мобильности, но предполагается, что env будет находится в /usr/bin 😐.


Соусы:

  • Книга “Bash и кибербезопасность Глава 1. Работа с командной строкой Основы работы с командной строкой От командной строки до скрипта
  • Книга “Идиомы Bash Глава 9. “Файлы и не толькоShebang!

bash