如何从任何位置(任何目录)运行perl脚本

时间:2012-09-15 10:28:50

标签: perl ubuntu

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

>

然后将目录更改为

... / bin中>

然后我通过编写

来运行perl
..../bin> perl tool.pl file= whatever config= whatever

问题是我想运行这个perl脚本而不需要转到它所在的bin文件夹。所以我可以从任何目录运行perl脚本,只要我输入shell 我去了etc / environment,然后写了下面的

export PERL5LIB = $ PERL5LIB:/ home / Leen / Desktop / Tools / bin

但是当我去终端并直接写下面而没有进入tool.pl存在的bin文件夹时

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

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

1 个答案:

答案 0 :(得分:9)

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

PATH es的结束处添加您的目录,这样您就不会否决其他程序。

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

然后你可以从任何地方调用你的脚本,没有完整的路径名称:

:~/foo/bar$ tool.pl

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

相关问题