Beberapa hari yang lalu saya puas dengan jawaban saya. Saya juga tahu bahwa whichperintah itu tidak digunakan untuk menguji apakah ada perintah. Sekarang saya tidak begitu puas dengan jawaban saya, dan saya merujuk pada tanggapan yang luar biasa ini .
Dengan whichperintah sederhana :
which foo.sh
Atau typeperintah:
type foo.sh
Dan Anda dapat memengaruhi ini dengan urutan jalur di Anda $PATHatau melalui jalur absolut saat skrip dimulai, EG
/home/user/scripts/foo.sh
Contoh
Jika PATH didefinisikan seperti di bawah ini
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Dan Anda memulai skrip atau sesuatu yang lain yang masuk /usr/local/bindan masuk /usr/bin, skrip /usr/local/binsebagai prioritas yang lebih tinggi.
bashdanzshada jugatypebuilt-in; sebaliknya dizshwhich, berbeda daribash, adalah built-in (dan tidak/usr/bin/which)