Which: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
'''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 [https://wiki.ubuntuusers.de/Umgebungsvariable/ Umgebungsvariablen] $PATH angegebenen Verzeichnisse nach einer ausführbaren Datei gleichen Namens. | '''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 [https://wiki.ubuntuusers.de/Umgebungsvariable/ Umgebungsvariablen] $PATH angegebenen Verzeichnisse nach einer ausführbaren Datei gleichen Namens. | ||
== | == Syntax == | ||
Die allgemeine Syntax von which lautet: | Die allgemeine Syntax von which lautet: | ||
which [-a] Befehl(e)... | which [-a] Befehl(e)... | ||
== | == Parameter == | ||
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. | 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. | ||
== | == Rückgabewerte == | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Zeile 32: | Zeile 20: | ||
|} | |} | ||
== | == Hinweise== | ||
* Findet which keine ausführbare Datei, wird nichts ausgegeben. | |||
Findet which keine ausführbare Datei, wird nichts ausgegeben. | * which beherrscht keine [https://wiki.ubuntuusers.de/Bash/#Wildcards Wildcards]. Es können jedoch mehrere Befehle, nach denen gesucht werden soll, als Parameter angegeben werden. | ||
which beherrscht keine [https://wiki.ubuntuusers.de/Bash/#Wildcards 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''' | 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 [https://wiki.ubuntuusers.de/ln/ symbolischen Verknüpfungen], | * das Auflösen von [https://wiki.ubuntuusers.de/ln/ symbolischen Verknüpfungen], | ||
* das Auflösen von [https://wiki.ubuntuusers.de/alias/ Alias], | * das Auflösen von [https://wiki.ubuntuusers.de/alias/ Alias], | ||
* und es berücksichtigt keine internen Shellbefehle. | * und es berücksichtigt keine internen Shellbefehle. | ||
Für die letzten beiden Punkte gibt es das Shell-Builtin type (Infos siehe help type) | Für die letzten beiden Punkte gibt es das Shell-Builtin type (Infos siehe help type) | ||
== | == Beispiele == | ||
=== Terminal === | === Terminal === | ||
Zeile 71: | Zeile 54: | ||
fi | fi | ||
== | == Quellen == | ||
[https://wiki.ubuntuusers.de/which/ Wiki Ubuntu Users] | [https://wiki.ubuntuusers.de/which/ Wiki Ubuntu Users] | ||
[[Category:Linux:Suchen]] | [[Category:Linux:Suchen]] |
Version vom 10. Juli 2020, 22:12 Uhr
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.
Syntax
Die allgemeine Syntax von which lautet:
which [-a] Befehl(e)...
Parameter
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.
Rückgabewerte
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 |
Hinweise
- 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)
Beispiele
Terminal
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
Shellskript
#! /bin/sh RETWHITCH=`which $1` if [ "$?" -eq '0' ]; then echo "Programm existiert und ist hier "$RETWHITCH" zu finden." else echo "Programm existiert nicht" fi