В знак после Шебанга?


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 Вы знаете, что, я даже не видел, что там была ссылка.
Кусалананда

1
Хе-хе, я думал, что это могло быть так. Я предложил правку, которая исправит несколько проблем, в том числе одну из них :)
Гонки на легкость с Моникой

1
Похоже, проблема со стилем Unix.SE - цвет ссылки не очень отличается от обычного цвета текста.
Бармар

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.