2

次のパス (/home/Leen/Desktop/Tools/bin/tool.pl) に perl スクリプトが存在します。このツールを実行するたびに、ターミナルに移動します。

>

次に、ディレクトリを次のように変更します

..../ビン>

それから私は書いてperlを実行します

..../bin> perl tool.pl file= whatever config= whatever

問題は、存在する bin フォルダーに移動する必要なく、この perl スクリプトを実行したいことです。そのため、任意のディレクトリから perl スクリプトを実行でき、シェルに入るとすぐに etc/environment に移動し、次のように記述しました

export PERL5LIB=$PERL5LIB:/home/Leen/Desktop/Tools/bin

しかし、ターミナルに移動して、tool.plが存在するbinフォルダーに移動せずに、次のことをまっすぐに書くと

>perl tool.pl file=... config=...

ファイル「tool.pl」が存在しないと表示されますか???

4

1 に答える 1

9

プログラムの最初の引数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

シェルでは、チルダ~はホーム ディレクトリに展開され./、現在のディレクトリを表します。*nix シェル (ubuntu のさまざまなターミナル エミュレーターを含む) では、コマンド プロンプトは通常、ルート ユーザーとして$通常モードであり、めったにありません。Windows の cmd.exe とは異なり、複数行の引数を続ける場合など、セカンダリ コマンド プロンプトです。#%>

このPERL5LIB変数は、Perl が実行可能ファイルではなく、モジュールを探す場所を決定します。

を介して、スクリプトを実行可能として設定できますchmod +x FILENAMEperlその後、プログラムを指定せずにスクリプトを呼び出すことができます。

:~/Desktop/Tools/bin$ ./tool.pl

PATH変数を変更して、シェルが実行可能ファイルを探す場所を変更できます。PATH通常、およびその他のディレクトリが含まれます/usr/bin/。独自のディレクトリを追加できます

PATH=$PATH:/home/Leen/Desktop/Tools/bin

esの最後にディレクトリを追加してPATH、他のプログラムを無効にしないようにします。

これを永続的に設定したい場合は、この行をファイルに追加できます~/.bashrc(ユーザーとbashシェルのみ)。

次に、フル パス名なしで、どこからでもスクリプトを呼び出すことができます。

:~/foo/bar$ tool.pl

この場合、名前の競合を防ぐために、より具体的なコマンド名を使用することを検討する必要があります。

于 2012-09-15T10:31:56.740 に答える