На знак після шебанг?


26

У сценарії "support / apxs.in" проекту Apache httpd після тексту @надходить текст, оточений знаками #!. Тобто перший рядок сценарію:

#!@perlbin@ -w

Це річ Perl чи ядро ​​UNIX? Іншими словами, чи можна виконати цей скрипт за допомогою path/to/script/script_name.in?

Якщо ні, то яка причина починати сценарій з #!?


8
це .inфайли (тобто шаблони)
don_crissti

2
Як бічне зауваження, @це добре в ім’ях файлів, тому якщо у вас є виконуваний файл, @perlbin@який приймає цей -wпараметр і здатний інтерпретувати вміст цього файлу, так, так, ви можете запустити цей файл.
Бакуріу

@Bakuriu: "Дійсно", так. "Чудово"? Сумнівний.
Гонки легкості з Монікою

Відповіді:


47

Це виглядає як заповнювач у шаблоні GNU Automake, який буде заповнений configureсценарієм. Отже, це не ядро ​​Perl чи Unix, а GNU.

Ймовірно, це з файлу в джерелі розповсюдження, а не з файлу, встановленого в системі через make installабо менеджера пакетів.

Крім того, це розбита збірка з автоінструментами GNU, які ніколи не визначалися perlbinналежним чином.

Те, що у файлі є .inсуфікс, підтверджує, що його слід обробити configure.

Ні, ви не можете виконати цей файл таким, яким він є. При perlзапуску заповнювач заповнюється правильним шляхом до виконуваного файлу configure.


Так, посилання у питанні веде до сховища вихідного коду.
Гонки легкості з Монікою

@LightnessRacesinOrbit Ви знаєте що, я навіть не бачив, що там є посилання.
Kusalananda

1
Хе-хе, я думав, що це було так. Я запропонував редагувати, що вирішує декілька проблем із цим, це одна з них :)
Гонки легкості з Монікою

1
Схоже, проблема зі стилізацією Unix.SE - колір посилання не дуже відрізняється від звичайного кольору тексту.
Бармар

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