В шебанге разрешено пространство или больше между #!
переводчиком?
Например, #! /bin/bash
. Вроде работа, но некоторые говорили, что это неправильно.
В шебанге разрешено пространство или больше между #!
переводчиком?
Например, #! /bin/bash
. Вроде работа, но некоторые говорили, что это неправильно.
Ответы:
Да, это разрешено
Статья Википедии о shebang включает электронное письмо 1980 года от Денниса Ритчи, когда он представлял поддержку ядра для shebang (как часть более широкого пакета, называемого директивами интерпретатора ) в Unix версии 8 (выделено мое):
Система была изменена таким образом, что, если исполняемый файл начинается с магических символов
#!
, остальная часть строки понимается как имя интерпретатора исполняемого файла. [...]Чтобы воспользоваться этой замечательной возможностью,
#! /bin/sh
на левом поле первой строки ваших сценариев оболочки. Пробелы после
!
в порядке.
Так что места после Шебанга были вокруг довольно долгое время, и, действительно, пример Денниса Ричи использует их.
Обратите внимание, что ранние версии Unix имели ограничение в 16 символов в этой строке интерпретатора, поэтому у вас не могло быть произвольного количества пробелов. Это ограничение больше не применяется в современных ядрах.
Да, пробелы разрешены после #!
. Была даже (ошибочная) мысль, что некоторым системам это может потребоваться, но это всегда было необязательно.
Для дальнейшего чтения попробуйте здесь