Perl   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了perl – 为什么shebang线总是第一行?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有简单的perl脚本如下:
#!/usr/bin/perl

use Strict;
use warnings;

print "Hello ! world\n";

我可以执行这个脚本如下:

>temp.pl
Hello ! world
>

如果我添加一些这样的评论:

#this script is just for test
#the shebang
#!/usr/bin/perl

use Strict;
use warnings;

print "Hello ! world\n";

当我尝试执行它给我的输出如下:

> temp.pl
use: Command not found.
use: Command not found.
print: Command not found.
>

这里的一点是shebang线应该永远在顶端,不管是什么.
但是有人可以解释一下为什么吗?

解决方法

@H_801_22@ shebang必须是第一行,因为它由内核解释,内核会查看可执行文件开头的两个字节.如果这些是#!该行的其余部分被解释为可运行的可执行文件,该脚本文件可用于该程序. (细节略有不同,但这是图片).

由于内核只会看前两个字符,并且没有更多行的概念,所以必须将hash bang放在第1行中.

现在如果内核无法执行以#!开头的文件怎么办? sHell尝试分配可执行文件并被内核通知无法执行程序,最后的手段会将文件内容解释为sHell脚本.由于sHell不是perl,您会收到一堆错误,就像您尝试运行一样

sh < temp.pl

大佬总结

以上是大佬教程为你收集整理的perl – 为什么shebang线总是第一行?全部内容,希望文章能够帮你解决perl – 为什么shebang线总是第一行?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。