Which: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
== <big> which</big> ==
'''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.


== <big> Installation </big> ==
== Syntax ==
Das Programm which ist im essentiellen Paket:
*debianutils
Von Ubuntu enthalten und ist deshalb auf jedem System installiert.
 
== <big> Benutzung </big> ==
Die allgemeine Syntax von which lautet:
Die allgemeine Syntax von which lautet:
  which [-a] Befehl(e)...  
  which [-a] Befehl(e)...  


== <big> Parameter </big> ==
== 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.


== <big> Rückgabewerte </big> ==
== Rückgabewerte ==
Die möglichen Rückgabewerte von which sind:
<br>
'''Rückgabewerte von which'''
{| class="wikitable"
{| class="wikitable"
|-
|-
Zeile 32: Zeile 20:
|}
|}


== <big> Hinweise </big> ==
== 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)


== <big> Beispiele </big> ==
== Beispiele ==


=== Terminal ===
=== Terminal ===
Zeile 71: Zeile 54:
  fi
  fi


== <big> Quellen </big> ==
== 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

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

Quellen

Wiki Ubuntu Users