簡體   English   中英

如何在 unix 環境中的任何位置運行 perl 腳本?

[英]How can i run perl script from anywhere in unix environment?

我有這個 perl 腳本,我需要將它分發給想要從 unix 環境中的任何位置運行該腳本的同事。 我可以做些什么來讓他們輕松運行這個 PERL 腳本? 例如,他們可以將 PERL 腳本放在其目錄中的某個位置,然后只需鍵入即可運行

./xyz.pl ttt.conf

沒有聲明路徑(如 /home/abc/bin/ddd/xyz.pl ttt.conf)。

將腳本放入/usr/local/bin (或$PATH中的任何其他位置)。 您的系統管理員可能需要幫助您。

我以前這樣做的方法是在您的主目錄中添加一個“bin”目錄,並將其添加到$PATH變量中。然后您可以將要使用的任何腳本添加到該目錄中。

我不再熟悉確切的語法,但類似於:

在.bashrc:

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

然后將腳本放在/home/user/bin中(假設 $HOME == /home/user)。 當您重新加載 shell 時,它將像任何普通命令/程序一樣使用。

ETA:請參閱下面的羅伯特關於語法的評論。 此外,為了讓您的同事使用您的腳本,您可以簡單地使用硬編碼路徑,例如/home/patrick/bin

我使用的技術是:

#!/usr/bin/env perl

這是讓命令解釋器找到 Perl 的常用方法,無需 (a) 移動文件,或 (b) 在 shebang 中聲明 Perl 的顯式路徑。

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

你們都是對的...但是 perl 腳本可以在您的路徑中等待直到奶牛回家...它不會運行...直到您設置可執行位...。

: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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM