bash 无法识别可执行的 Perl 脚本

bash does not recognize executable Perl script

我对 bash and/or perl 有一个非常神秘的问题。我将尝试描述行为。

运行 perl 脚本来自

./perlscript.pl

给我一条权限被拒绝的消息。

(我是文件的所有者及其路径 - 从我的主目录 and 文件包含 #!/usr/bin/perl and 可执行 -rwxr-xr-x )

运行 脚本如下:

perl perlscript.pl

还可以……

谁能帮我解决 bash?谢谢


$ which perl
/usr/bin/perl

$ head -1 file.pl | od -c
0000000 # ! / u s r / b i n / p e r l \n
0000020

perlscript.pl所在的文件系统是否挂载了noexec标志?

假设您在 Linux、cat /proc/mounts 并在具有适当文件系统的行上查找 noexec

noexec 标志阻止任何人在位于该文件系统上的文件上调用 exec(这是 bash 在您执行 ./perlscript.pl 时所做的)。但是 perl perlscript.pl/usr/bin/perl 上调用 exec,然后打开 perlscript.pl 进行读取。

安装在 noexec 文件系统上的文件仍然可以 具有 执行权限,只是不能使用它。