PATH にあるにもかかわらずスクリプトが見つからない

PATH にあるにもかかわらずスクリプトが見つからない

この端末出力を見てください...

bjorn@jungleland:~$ cd bin
bjorn@jungleland:~/bin$ ./first.sh 
Hello World
bjorn@jungleland:~/bin$ cd ..
bjorn@jungleland:~$ pwd
/home/bjorn
bjorn@jungleland:~$ echo $PATH
/home/bjorn/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/bjorn/bin
bjorn@jungleland:~$ ./first.sh
bash: ./first.sh: No such file or directory
bjorn@jungleland:~$ 

ホームディレクトリにいるときに first.sh が見つからないのはなぜですか? ログアウトして再度ログインしてみました。

答え1

具体的に実行しているのは./first.sh、つまり「first.sh」というスクリプトであり、カレントディレクトリ( ./)。$PATH にあるかどうかは関係ありません。フルパスを指定すると、システムは指定されたパスで実行可能ファイルを検索します。以下のコマンドを比較してください。

/bin/ls      <-- works
ls           <-- works
../../bin/ls <-- works if you are in $HOME
./ls         <-- fails unless you are in /bin

実行したいのはfirst.shの代わりにです./first.sh

関連情報