Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
which (engl. "welche") sucht nach der Datei, die ausgeführt wird, wenn ein Befehl in die Shell eingegeben wird. Dazu durchsucht which nacheinander die in der Umgebungsvariablen $PATH
angegebenen Verzeichnisse nach einer ausführbaren Datei gleichen Namens.
Das Programm which ist im essentiellen Paket
debianutils
von Ubuntu enthalten und ist deshalb auf jedem System installiert.
which kennt nur den optionalen Parameter -a
(für engl. all = alle). Er bewirkt, dass die Suche nicht nach dem Fund der ersten passenden Datei beendet wird. Dadurch werden alle ausführbaren Dateien gefunden, die sich in den durch $PATH
angegebenen Verzeichnissen befinden und den entsprechenden Namen haben.
Die möglichen Rückgabewerte von which sind:
Rückgabewerte von which | |
Wert | Beschreibung |
0 | alle angegebenen Befehle wurden gefunden |
1 | mindestens ein angegebener Befehl wurde nicht gefunden (d.h. die Datei existiert nicht oder ist nicht ausführbar) |
2 | eine falsche Option wurde benutzt |
Findet which keine ausführbare Datei, wird nichts ausgegeben.
which beherrscht keine Wildcards. Es können jedoch mehrere Befehle, nach denen gesucht werden soll, als Parameter angegeben werden.
Im Gegensatz zu anderen GNU/Linux-Distributionen ist which in Ubuntu ein reines Shell-Skript und kein Perl- oder C-Programm. Deswegen beherrscht which z.B nicht
das Auflösen von symbolischen Verknüpfungen,
das Auflösen von Alias,
und es berücksichtigt keine internen Shellbefehle.
Für die letzten beiden Punkte gibt es das Shell-Builtin type
(Infos siehe help type
)
which which # Sucht nach sich selber /usr/bin/which
which -a which # Sucht nach allen ausführbaren Dateien mit dem Namen which /usr/bin/which /bin/which
which kill cp # Sucht nach zwei Befehlen /bin/kill /bin/cp
1 2 3 4 5 6 7 8 9 | #! /bin/sh RETWHITCH=`which $1` if [ "$?" -eq '0' ]; then echo "Programm existiert und ist hier "$RETWHITCH" zu finden." else echo "Programm existiert nicht" fi |
Diese Revision wurde am 12. Januar 2013 18:42 von aasche erstellt.