我在下面的路径中有一个perl脚本(/home/Leen/Desktop/Tools/bin/tool.pl)每次我想运行这个工具我都会去终端
>
Run Code Online (Sandbox Code Playgroud)
然后将目录更改为
... /斌>
然后我通过写作运行perl
..../bin> perl tool.pl file= whatever config= whatever
Run Code Online (Sandbox Code Playgroud)
问题是我想运行这个perl脚本而不需要转到它所在的bin文件夹.所以我可以从任何目录运行perl脚本,一旦我输入shell,我就去了etc/environment我写了下面的内容
export PERL5LIB = $ PERL5LIB:/ home/Leen/Desktop/Tools/bin
但是当我去终端并直接写下面而没有进入tool文件夹存在的bin文件夹时
>perl tool.pl file=... config=...
Run Code Online (Sandbox Code Playgroud)
它说文件"tool.pl"不存在???
程序的第一个参数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
Run Code Online (Sandbox Code Playgroud)
等等
在shell中,tilde ~
扩展到您的主目录,并./
象征当前目录.在*nix shell(包括ubuntu上的各种终端模拟器)上,命令提示符通常$
处于正常模式,#
作为root用户并且很少%
.>
是辅助命令提示符,例如在继续多行参数时,与Windows上的cmd.exe不同.
该PERL5LIB
变量确定Perl查找模块的位置,而不是可执行文件.
您可以将脚本设置为可执行文件chmod +x FILENAME
.然后,您可以在不指定perl
程序的情况下调用脚本:
:~/Desktop/Tools/bin$ ./tool.pl
Run Code Online (Sandbox Code Playgroud)
您可以修改PATH
变量以更改shell查找可执行文件的位置.在PATH
通常包含/usr/bin/
与其他目录.您可以添加自己的目录
PATH=$PATH:/home/Leen/Desktop/Tools/bin
Run Code Online (Sandbox Code Playgroud)
在es 的末尾添加你的目录PATH
,所以你不要否决其他程序.
如果要永久设置此项,可以将此行添加到文件中~/.bashrc
(仅适用于您的用户,仅适用于bash
shell).
然后,您可以从任何地方调用脚本,而无需完整路径名称:
:~/foo/bar$ tool.pl
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您应该考虑使用更具体的命令名称,以防止名称冲突.
归档时间: |
|
查看次数: |
27249 次 |
最近记录: |