Hangi komutun alındığını nasıl kontrol edebilirim?


9

Aradım bir kabuk komut dosyası var foo.shiçinde /usr/local/sbin. Ayrıca aynı isimli başka bir senaryo kullanıyorum. İçinde saklanır /home/user/scripts.

Her iki yol da aittir PATH. foo.shKomut satırına yazarken bu komut dosyalarından hangisinin yürütüldüğünü nasıl öğrenebilirim ? Etkileyebilir miyim?

Yanıtlar:


10

Birkaç gün önce cevabımdan memnun kaldım. Ayrıca whichbir komutun var olup olmadığını test etmek için komutun kullanılmadığını da biliyordum . Şimdi cevabımdan pek memnun değilim ve bu büyük cevaba atıfta bulunuyorum .


Basit bir whichkomutla:

which foo.sh

Veya bir typekomut:

type foo.sh

Ve bunu, yolunuzdaki yolların sırasıyla $PATHveya komut dosyası başladığında mutlak bir yolla etkileyebilirsiniz , EG

/home/user/scripts/foo.sh

Misal

PATH aşağıdaki gibi tanımlanırsa

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Ve bir betik ya da içinde /usr/local/binve içinde olan başka bir şeyi /usr/bin, /usr/local/bindaha yüksek bir öncelik olarak başlatırsınız .


1
Konuşmak bashve zshorada typeyerleşik; bunun yerine zsh which, farklı olarak bash, yerleşik (değil /usr/bin/which)
kos


@muru teşekkürler. Biraz zaten biliyordum, ama bu kadar ayrıntılı değil. Cevabıma görüşlerimi ekledim. Tekrar teşekkürler.
AB
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.