PATH konumunda olmasına rağmen script bulunamadı


1

Bu terminal çıkışına bir göz atın ...

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

Giriş dizinideyken neden first.sh bulunmuyor? Oturumu kapatıp tekrar açmayı denedim!

Yanıtlar:


6

Çünkü özellikle koşuyorsun ./first.shyani, yani "first.sh" adlı bir komut dosyası geçerli dizin ( ./ ). $ PATH içinde olup olmadığı konu dışı. Tam bir yol verirseniz, yaptığınız gibi, sistem verilen yoldaki yürütülebilir dosyayı arayacaktır. Aşağıdaki komutları karşılaştırın:

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

Koşmak istediğin şey first.sh yerine ./first.sh.


Oh öyle işte ./ ne için! Bu birçok şeyi açıklıyor. Yerel bir komutu çağırmak yerine bash'e bir senaryo çalıştırmaya çalıştığımı söylemenin bir tür yolu olduğunu her zaman düşündüm. Teşekkür ederim!
— Björn Andersson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.