Au signe après shebang?

26

Dans le script "support / apxs.in" du projet Apache httpd , un texte entouré de @signes vient après #!. Autrement dit, la première ligne du script est:

#!@perlbin@ -w

Est-ce une chose Perl ou une chose noyau UNIX? En d'autres termes, est-il possible d'exécuter ce script en utilisant path/to/script/script_name.in?

Sinon, quelle est la raison de commencer le script avec un #!?

Utku
la source
8
ce sont des .infichiers (c'est-à-dire des modèles)
don_crissti
2
En guise de remarque, cela @convient aux noms de fichiers, donc si vous avez un exécutable appelé @perlbin@qui accepte l' -woption et est capable d'interpréter le contenu de ce fichier, alors oui, vous pouvez exécuter ce fichier.
Bakuriu
@Bakuriu: "Valide", oui. "Bien"? Douteux.
Courses de légèreté avec Monica le

Réponses:

47

Cela ressemble à un espace réservé dans un modèle GNU Automake qui va être rempli par un configurescript. Ce n'est donc ni un noyau Perl ni Unix, mais un outil GNU autotools.

Il s'agit probablement d'un fichier dans une distribution source, et non d'un fichier qui a été installé sur le système via make installou un gestionnaire de packages.

Alternativement, il s'agit d'une construction cassée avec des outils automatiques GNU qui n'ont jamais été définis perlbincorrectement.

Le fait que le fichier ait un .insuffixe confirme qu'il est censé être traité par configure.

Non, vous ne pouvez pas exécuter ce fichier tel quel. L'espace réservé sera remplacé par le chemin d'accès approprié à l' perlexécutable lorsque vous exécutez configure.

Kusalananda
la source
Oui, le lien dans la question mène à un référentiel de code source.
Courses de légèreté avec Monica le
@LightnessRacesinOrbit Vous savez quoi, je n'ai même pas vu qu'il y avait un lien là-bas.
Kusalananda
1
Hehe, je pensais que c'était peut-être le cas. J'ai suggéré une modification qui résout quelques problèmes, dont l'un d'eux :)
Courses de légèreté avec Monica
1
Cela ressemble à un problème avec le style d'Unix.SE - la couleur du lien n'est pas très distincte de la couleur de texte normale.
Barmar