Чи дозволено пробіл між #! і / бін / баш в Шебанг?


48

У шебангу, чи між #!та перекладачем дозволено пробіл чи більше ?

Наприклад, #! /bin/bash. Здається, це працює, але дехто сказав, що це неправильно.



Так пробіл не потрібен ? Я завжди бачив принаймні один ...
Бакуріу

6
@Bakuriu Де? Я майже жодного разу не бачив ...
Єнс

Відповіді:


48

Так, це дозволено.

Стаття у Вікіпедії про шебанг включає електронний лист від Деніса Річі 1980 року, коли він впроваджував підтримку ядра для shebang (як частину більш широкого пакету, який називається інтерпретаційними директивами ) у версію Unix версії 8 (мій акцент):

Система була змінена таким чином, що якщо файл, що виконується, починається з магічних символів #!, решта рядка розуміється як ім'я інтерпретатора для виконаного файлу. […]

Щоб скористатися цією чудовою можливістю, покладіть

#! /bin/sh

ліворуч у першому рядку сценаріїв оболонки. Пробіли після !в порядку.

Тож простори після шебангу були довгий час, і справді, приклад Денніса Річі використовує їх.

Зауважте, що у ранніх версіях Unix в цій інтерпретаційній лінійці було обмежено 16 символів, тому ви не можете мати там довільну кількість пробілів. Це обмеження більше не застосовується в сучасних ядрах.


38

Так, пробіли дозволені після завершення #!. Була навіть думка (помилково), що деякі системи цього можуть вимагати, але це завжди було необов’язково.

Для подальшого читання спробуйте тут

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.