[英]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.