У шебангу, чи між #!
та перекладачем дозволено пробіл чи більше ?
Наприклад, #! /bin/bash
. Здається, це працює, але дехто сказав, що це неправильно.
У шебангу, чи між #!
та перекладачем дозволено пробіл чи більше ?
Наприклад, #! /bin/bash
. Здається, це працює, але дехто сказав, що це неправильно.
Відповіді:
Так, це дозволено.
Стаття у Вікіпедії про шебанг включає електронний лист від Деніса Річі 1980 року, коли він впроваджував підтримку ядра для shebang (як частину більш широкого пакету, який називається інтерпретаційними директивами ) у версію Unix версії 8 (мій акцент):
Система була змінена таким чином, що якщо файл, що виконується, починається з магічних символів
#!
, решта рядка розуміється як ім'я інтерпретатора для виконаного файлу. […]Щоб скористатися цією чудовою можливістю, покладіть
#! /bin/sh
ліворуч у першому рядку сценаріїв оболонки. Пробіли після
!
в порядку.
Тож простори після шебангу були довгий час, і справді, приклад Денніса Річі використовує їх.
Зауважте, що у ранніх версіях Unix в цій інтерпретаційній лінійці було обмежено 16 символів, тому ви не можете мати там довільну кількість пробілів. Це обмеження більше не застосовується в сучасних ядрах.
Так, пробіли дозволені після завершення #!
. Була навіть думка (помилково), що деякі системи цього можуть вимагати, але це завжди було необов’язково.
Для подальшого читання спробуйте тут