我最近收到了第一行的perl脚本
#!perl
这当然不起作用,但我想确切知道它的作用。有人可以帮忙吗?
答案 0 :(得分:2)
这称为shebang,用于(在Unix中)指定应该使用哪个解释器二进制文件来运行脚本。
这是一个非常好的机制,特别是与file system permissions可用于将脚本文件转换为shell(和程序加载器)认为可执行的内容的方式一起。
似乎the interpreter name must be absolute。链接文本说相对名称(如此处的perl
)将被解释为./perl
,因此如果从perl
二进制文件所在的目录执行,它可能会起作用 。不是一个非常常见的用例,但至少如果以这种方式使用它可以工作,即如果你想用脚本包装perl
二进制文件,你想要该脚本来运行二进制文件它与脚本在同一个地方,而不是使用绝对路径来选择其他二进制文件。没试过这个。
更典型的方法(至少在Linux中)是使用env
程序来选择perl:
#!/usr/bin/env perl
答案 1 :(得分:1)
如果你给这样的shebang线,
#!perl
它将在当前目录中查找perl解释器。如果perl解释器存在于当前目录中,那么perl脚本将开始执行,否则会显示bad interpreter
错误。