如何在unix环境中的任何位置运行perl脚本?

时间:2011-07-09 21:36:25

标签: perl unix

我有这个perl脚本,我需要分发给想要在unix环境中的任何地方运行脚本的同事。我能做些什么才能让他们轻松运行这个PERL脚本?例如,他们可以在目录中的某个位置放置PERL脚本,只需键入

即可运行
./xyz.pl ttt.conf

没有声明路径(例如/home/abc/bin/ddd/xyz.pl ttt.conf)。

4 个答案:

答案 0 :(得分:5)

将脚本放在/usr/local/bin(或$PATH中的任何其他位置)。您的系统管理员可能需要帮助您。

答案 1 :(得分:5)

我以前的方式是在你的主目录中添加一个“bin”目录,并将其添加到$PATH变量..然后你可以将你想要使用的任何脚本添加到该目录。 / p>

我不再熟悉确切的语法,但是类似于:

<。>在.bashrc中:

$PATH = ( $PATH , $HOME/bin )

然后将脚本放在/home/user/bin中(假设$ HOME == / home / user)。当你重新加载shell时,它将像任何正常的命令/程序一样可用。

ETA:请参阅下面罗伯特关于语法的评论。此外,为了让您的同事使用您的脚本,您只需使用硬编码路径,例如/home/patrick/bin

答案 2 :(得分:4)

我使用的技术是:

#!/usr/bin/env perl

这是让命令解释器在没有(a)移动文件的情况下找到Perl的常用方法,或者(b)在shebang中声明Perl的显式路径。

在可移植性下提到:http://en.wikipedia.org/wiki/Shebang_(Unix

答案 3 :(得分:2)

你们都是对的...但perl脚本可以坐在你的路上,直到奶牛回家......它不会运行......直到你设置可执行位...... / p>

:bin localadmin$ ./perlextip
-bash: ./perlextip: Permission denied
:bin localadmin$ chmod +x perlextip 
:bin localadmin$ ./perlextip 
Exit 0!  Yeehaw.

另外,应该注意的是它不一定是你的路径....你可以通过完整路径调用它,先用句号和斜线来执行它。

:/ localadmin$ ./ServiceData/UNIX/bin/extip
Exit 0!  Yeehaw.

您还可以在~/.bash_profile中为这样的命令创建一个别名,这样可以让您创建一个系统范围的快捷方式,甚至可以投入sudo等,如果你是如此倾向......那么只要在任何地方用名称“extip”,你就会被提示输入密码,而且一切都会好起来。

alias extip='sudo ./ServiceData/UNIX/bin/extip'