更新:より多くの関連情報が含まれています。これを含めることを提案していただきありがとうございます!
私はLinuxに初めてアクセスし、他の人が作成したスクリプトを実行しようとしています。私は最近変数について知り、端末のどこからでも呼び出せるように変数$PATH
にスクリプトフォルダを追加する必要があることに気づきました。$PATH
しかし、スクリプトを含むフォルダを変数に追加しても、その中のスクリプト$PATH
は認識されません。
下部に含まれるようにテキストエディタでbashrcファイルを編集しました。
#Modify $PATH
export PATH="/home/eli/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
私のスクリプトは次の場所にあり、フルパス/home/eli/bin
を指定しないと、このリポジトリが私の$ PATH変数にあってもスクリプトは実行されません。
これが私の$ PATH変数です。
(によると)eli@eli-XPS-13-7390-2-in-1:~$エコ$PATH /home/eli/miniconda3/bin:/home/eli/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games :/usr/ローカル/ゲーム
私のスクリプト権限は次のとおりです。
(によると)eli@eli-XPS-13-7390-2-in-1:~$ls -al ~/bin/trim2bRAD_2barcodes_noAdap.pl -rwxr-xr-x 1 eli eli 3064 2018年5月19日/home/eli/bin/trim2bRAD_2barcodes_noAdap.pl
ファイルの正確なパスを指定せずにディレクトリからスクリプトを実行しようとしたときの出力は次のとおりです。
(によると)eli@eli-XPS-13-7390-2-in-1:~$./trim2bRAD_2barcodes_noAdap.pl bash: ./trim2bRAD_2barcodes_noAdap.pl: そのファイルやディレクトリはありません。
答え1
シェルが変数にリストされているディレクトリから実行可能ファイルを検索できるようにするには、$PATH
コマンドラインで実行可能ファイルのパスを指定しないでください。
だからこれをしないでください。
./trim2bRAD_2barcodes_noAdap.pl
$PATH
これはシェルがまったく見つからないためです(./
実行可能ファイルへの明示的なパスを提供しました)。
代わりに使用してください
trim2bRAD_2barcodes_noAdap.pl
/home/eli/bin
また、の先頭に追加すると、次のように$PATH
言うことができます。
PATH=$HOME/bin:$PATH
仮定が$HOME
拡張されます。つまり、変数を非常に特定のディレクトリリストに設定したい場合、および/またはシステムが合理的なデフォルト値を提供したと信頼していない限り、すべてのディレクトリを一覧/home/eli
表示する必要はありません。すでに環境変数なので、$PATH
エクスポートする必要はありません。PATH