我有这个perl脚本,我需要分发给想要在unix环境中的任何地方运行脚本的同事。我能做些什么才能让他们轻松运行这个PERL脚本?例如,他们可以在目录中的某个位置放置PERL脚本,只需键入
即可运行./xyz.pl ttt.conf
没有声明路径(例如/home/abc/bin/ddd/xyz.pl ttt.conf)。
答案 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的显式路径。
答案 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'