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.