获取权限拒绝运行perl可执行文件

时间:2013-07-08 09:10:13

标签: perl path executable permission-denied .bash-profile

我正在运行OS X,基本上,我想设置一个目录,我可以删除一些Perl可执行文件并使用它们而无需键入

$perl /this/is/the/path/name.pl

每次我想使用一个。所以我修改了我的.bash_profile来为我想要删除可执行文件的桌面上的目录添加一个文件路径。我通过添加

修改了我的.bash_profile
PATH=$PATH:/Users/Wes/Desktop/Perl_dir; export PATH

现在,它找到了我想要的Perl文件,但拒绝了我这样的权限

-bash: /Users/Wes/Desktop/Perl_dir/phylo.pl: Permission denied

我该如何解决这个问题?提前谢谢。

3 个答案:

答案 0 :(得分:12)

确保perl脚本本身设置为可执行。您可以使用以下命令执行此操作:

chmod +x /Users/Wes/Desktop/Perl_dir/phylo.pl

然后确保脚本的第一行有一个合适的" hash-bang"用于调用perl的行,类似于:

#!/usr/bin/perl -w

有了这两个,我认为你的脚本应该开始工作了。 (注意:-w并非严格必要,并且可能会在您的脚本中出现警告。但我建议您开发新的perl代码,因为它会鼓励某种品牌的perl卫生。)< / p>

答案 1 :(得分:2)

除了正确设置PATH之外,您还需要:

  • 确保文件可执行

    $ chmod +x /this/is/the/path/name.pl
    
  • 检查你的“shebang line”,即脚本的第一行必须包含 机器上perl解释器的绝对路径,如下所示:

    #!/usr/bin/perl
    # this will work in Linux distros
    

    要找出路径,请使用以下命令:

    $ which perl
    /path/to/perl
    

答案 2 :(得分:-1)

你可能需要使用sudo授权chmod,试试这个:

sudo chmod u+x program_name
./program_name 

如果chmod不是sudo,你需要像这样运行:

sudo chmod u+x program_name
sudo ./program_name