Vor ein paar Tagen war ich mit meiner Antwort zufrieden. Ich wusste auch, dass der which
Befehl nicht verwendet wird, um zu testen, ob ein Befehl existiert. Jetzt bin ich mit meiner Antwort nicht so zufrieden und beziehe mich auf diese großartige Antwort .
Mit einem einfachen which
Befehl:
which foo.sh
Oder ein type
Befehl:
type foo.sh
Und Sie können dies durch die Reihenfolge der Pfade in Ihrem $PATH
oder über einen absoluten Pfad beeinflussen, wenn das Skript gestartet wird, z
/home/user/scripts/foo.sh
Beispiel
Wenn PATH wie folgt definiert ist
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Und Sie starten ein Skript oder etwas anderes, das sich in /usr/local/bin
und in befindet /usr/bin
, das Skript hat /usr/local/bin
eine höhere Priorität.
bash
undzsh
es gibt auch dastype
eingebaute; stattdessen inzsh
which
, anders alsbash
, ist ein eingebautes (und nicht/usr/bin/which
)