【问题标题】:How to run perl script from any where (any directory)如何从任何地方(任何目录)运行 perl 脚本
【发布时间】:2012-09-15 10:28:49
【问题描述】:

我在以下路径中有一个 perl 脚本 (/home/Leen/Desktop/Tools/bin/tool.pl) 每次我想运行这个工具时,我都会去终端

>

然后将目录更改为

..../bin>

然后我通过编写运行 perl

..../bin> perl tool.pl file= whatever config= whatever

问题是我想运行这个 perl 脚本而不需要去它所在的 bin 文件夹。所以我可以从任何目录运行 perl 脚本,只要我进入 shell 我去了等/环境,我写了以下内容

导出 PERL5LIB=$PERL5LIB:/home/Leen/Desktop/Tools/bin

但是当我去终端并直接编写以下内容时,无需进入 tool.pl 所在的 bin 文件夹

>perl tool.pl file=... config=...

它说文件“tool.pl”不存在???

【问题讨论】:

    标签: perl ubuntu


    【解决方案1】:

    perl 程序的第一个参数是可执行文件的路径。这些调用是等效的:

    :~$ perl /home/Leen/Desktop/Tools/bin/tool.pl
    :~$ perl ~/Desktop/Tools/bin/tool.pl
    :~$ perl ./Desktop/Tools/bin/tool.pl
    :~/Desktop/Tools/bin$ perl tool.pl
    :~/Desktop/Tools/bin$ perl ./tool.pl
    

    等等

    在 shell 中,波浪号 ~ 扩展为您的主目录,./ 表示当前目录。在 *nix shell(包括 ubuntu 上的各种终端仿真器)上,命令提示符通常在普通模式下是 $,# 作为 root 用户,很少是 %。 > 是辅助命令提示符,例如继续多行参数时,与 Windows 上的 cmd.exe 不同。

    PERL5LIB 变量决定 Perl 在哪里寻找模块,而不是可执行文件。

    您可以通过chmod +x FILENAME 将脚本设置为可执行文件。然后,您可以在不指定 perl 程序的情况下调用脚本:

    :~/Desktop/Tools/bin$ ./tool.pl
    

    您可以修改PATH 变量来更改shell 查找可执行文件的位置。 PATH 通常包含/usr/bin/ 和其他目录。您可以通过

    添加自己的目录
    PATH=$PATH:/home/Leen/Desktop/Tools/bin
    

    在PATHes 的末尾添加您的目录,这样您就不会推翻其他程序。

    如果您想永久设置,可以将此行添加到文件~/.bashrc(仅适用于您的用户且仅适用于bash shell)。

    然后您可以从任何地方调用您的脚本,无需完整路径名:

    :~/foo/bar$ tool.pl
    

    在这种情况下,您应该考虑使用更具体的命令名称,以防止名称冲突。

    【讨论】:

    • 只有一个问题,我应该将 [chmod +x FILENAME] 更改为 [chmod +x tool.pl] 吗?我应该在哪里写?我会问另一个问题,但在另一条评论中先生!
    • 我去环境文件,我发现以下 [PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/ bin:/usr/games" ] 所以我应该通过在末尾写 [:/home/Leen/Desktop/Tools/bin] 来完成列表,所以最终的 PATH 将是 [PATH="/usr/local/sbin:/ usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/Leen/Desktop/Tools/bin"] 或者我应该将其写成如下 [PATH= "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" $ PATH=$PATH:/home/Leen/Desktop/Tools /垃圾桶]。非常感谢先生。
    • chmod +x FILENAME 是一个 shell 命令。因此,将其输入终端,或在文件管理器中修改权限,例如鹦鹉螺。您应该在tool.pl 的目录中,但FILENAME 可以是文件的any 路径。如果您需要有关 shell 中某个命令的信息,您可以输入 info COMMAND(或在内置的情况下输入 help COMMAND)。 COMMAND --help 通常也可以。
    • 最好在~/.bashrc 的末尾添加一个新行并写一个注释来解释您的修改,这样您可以在需要时回滚。
    • 先生,我去了终端,然后到 bin 文件夹所在的目录并写了chmod +x tool.pl 但是当我尝试这个:~/Desktop/Tools/bin$ tool.pl 它说tool.pl: command not found 它不承认这是一个可执行文件!!请帮忙!
    猜你喜欢
    • 1970-01-01
    • 2013-03-06
    • 2020-06-22
    • 2011-10-02
    • 2021-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    相关资源
    最近更新 更多