在shebang之后签到?


26

Apache httpd项目的“ support / apxs.in”脚本中,之后是带@符号的文本#!。也就是说,脚本的第一行是:

#!@perlbin@ -w

这是Perl还是UNIX内核?换句话说,可以使用path/to/script/script_name.in?执行该脚本。

如果不是,那么使用#!?启动脚本的原因是什么?


8
这些是.in文件(即模板)
don_crissti

2
作为一个方面说明,@优良的文件名等等,如果你有一个可执行文件,称为@perlbin@其接受-w选项,能够解释该文件的内容,然后你可以运行该文件。
Bakuriu

@Bakuriu:“有效”,是的。“精细”?可疑。
与莫妮卡(Monica)

Answers:


47

这看起来像是GNU Automake模板中的占位符,该模板将由configure脚本填充。因此,它不是Perl或Unix内核,而是GNU自动工具。

它可能来自源代码分发中的文件,而不是来自通过make install或程序包管理器在系统上安装的文件。

或者,它来自从未perlbin正确定义的GNU自动工具的损坏版本。

该文件具有.in后缀,确认该文件应由处理configure

否,您无法原样执行此文件。运行时,占位符将替换为perl可执行文件的正确路径configure


是的,问题中的链接指向源代码存储库。
与莫妮卡(Monica)进行的轻量级比赛

@LightnessRacesinOrbit你知道吗,我什至没有看到那里有链接。
库沙兰丹

1
呵呵,我认为可能是这种情况。我建议进行修改,以解决一些问题,这就是其中一个问题:)
与莫妮卡(Monica)进行的Lightness Races

1
似乎是Unix.SE样式的问题-链接颜色与普通文本颜色并没有很大区别。
Barmar

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.