Erhalten Sie den vollständigen Pfad des Skripts in der Umgebungsvariablen PATH


4

Ich habe mich gefragt, ob es in Bash einen integrierten Befehl (oder sogar einen OSX-spezifischen Befehl) gibt, der den vollständig aufgelösten Pfad eines Skripts in der aktuellen PATHUmgebungsvariablen anzeigt .

Zum Beispiel PATHsieht mein aktuell so aus:

>: echo $PATH | tr ":" "\n"
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/opt/X11/bin
/Users/Josh/Dropbox/Scripts/Bash
/Users/Josh/Dropbox/Tools/WinRAR/OSX

Und es gibt ein Skript in Dropbox namens get-azurelogs.sh. Dieser Pfad ist der Einfachheit PATHhalber in meiner Variablen enthalten, aber wenn ich den vollständigen Pfad zu diesem Skript anzeigen möchte, gibt es eine einfache einzeilige Möglichkeit, den vollständig aufgelösten Pfad anzuzeigen, anstatt ihn zu testen, vorausgesetzt, ich war mir nicht sicher, wo er sich befand in jedem der oben genannten Verzeichnisse?

Antworten:


6

Sie können verwenden which. Von der Manpage:

Das Dienstprogramm which verwendet eine Liste von Befehlsnamen und durchsucht den Pfad nach jeder ausführbaren Datei, die ausgeführt werden würde, wenn diese Befehle tatsächlich aufgerufen worden wären


Boom. Ich wusste, dass es etwas geben musste. Akzeptiert die Antwort, sobald die obligatorische Wartezeit abgelaufen ist. Vielen Dank!
Josh

whoops, hab deine antwort anfangs nicht gesehen. Prost!
njboot

4

Eine gute Alternative whichist das eingebaute type. Der Vorteil ist, dass typeauch Bash-Aliase und -Funktionen verarbeitet werden können.


Es gibt auch etwas, type -Pdas sich auf ausführbare Dateien auf der Festplatte beschränkt - es werden keine Aliase angezeigt.
Rich Homolka

2
which -a [nameofexecutable]

IE:

Macbook-Pro:~ njboot$ which -a chmod 
/bin/chmod
Macbook-Pro:~ njboot$ which -a nusers
/Users/njboot/bin/nusers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.