Skript nicht gefunden, obwohl es sich im Pfad befindet

Skript nicht gefunden, obwohl es sich im Pfad befindet

Sehen Sie sich diese Terminalausgabe an …

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:~$ 

Wie kommt es, dass first.sh nicht gefunden wird, wenn ich in meinem Home-Verzeichnis bin? Ich habe versucht, mich ab- und wieder anzumelden!

Antwort1

Weil Sie speziell ausführen ./first.sh, also ein Skript namens "first.sh", das sich imAktuelles Verzeichnis( ./). Ob es im $PATH steht oder nicht, ist irrelevant. Wenn Sie wie hier einen vollständigen Pfad angeben, sucht das System unter dem angegebenen Pfad nach der ausführbaren Datei. Vergleichen Sie die folgenden Befehle:

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

Sie möchten first.shanstelle von ausführen ./first.sh.

verwandte Informationen