GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Python – Woher weiß /usr/bin/env, welches Programm zu verwenden ist?

Wenn ich den Shebang #!/usr/bin/env python verwende Um ein Skript auszuführen, woher weiß das System, welcher python benutzen? wenn ich nach einem python suche bin Pfad in den Umgebungsvariablen finde ich nichts.

env | grep -i python

Akzeptierte Antwort:

Der Shebang erwartet einen vollständigen Pfad zum zu verwendenden Interpreter, daher wäre die folgende Syntax falsch:

#!python

Das Festlegen eines vollständigen Pfads wie folgt könnte funktionieren:

#!/usr/local/bin/python

wäre aber nicht portierbar, da Python in /bin installiert werden könnte , /opt/python/bin , oder an einem anderen Ort.

Verwenden von env

#!/usr/bin/env python

ist eine Methode, die es ermöglicht, dem Betriebssystem auf tragbare Weise einen vollständigen Pfad anzugeben, der dem entspricht, in dem python steht zunächst im PATH .


Linux
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Wie chmod ohne /usr/bin/chmod?

  3. Woher weiß ein transparenter Socks-Proxy, welche Ziel-IP verwendet werden soll?

  4. Woher weiß der Befehl Xdg-open, welche Anwendung zum Öffnen einer Datei verwendet werden soll?

  5. Linux – Zusammenführen von /usr/bin und /usr/sbin in /bin (gnu/linux)?

Linux – /sbin/init existiert nicht?

Wie misst /usr/bin/time die Speichernutzung?

cmake --version zeigt auf /usr/bin/cmake, während cmake auf /usr/local/bin zeigt

Wann sollte ich /dev/shm/ verwenden und wann sollte ich /tmp/?

Unterschied zwischen /bin und /usr/bin

/bin Inhalt nach /usr/bin verschoben, rückgängig machen möglich?