GNU/Linux >> Tutoriels Linux >  >> Linux

Python – Comment /usr/bin/env sait-il quel programme utiliser ?

Quand j'utilise le shebang #!/usr/bin/env python pour exécuter un script, comment le système sait-il quel python utiliser? si je cherche un python chemin bin dans les variables d'environnement je ne trouve rien.

env | grep -i python

Réponse acceptée :

Le shebang attend un chemin complet vers l'interpréteur à utiliser, donc la syntaxe suivante serait incorrecte :

#!python

La définition d'un chemin complet comme celui-ci peut fonctionner :

#!/usr/local/bin/python

mais ne serait pas portable car python pourrait être installé dans /bin , /opt/python/bin , ou n'importe où ailleurs.

Utilisation de env

#!/usr/bin/env python

est une méthode permettant de manière portable de spécifier à l'OS un chemin complet équivalent à celui où python est d'abord situé dans le PATH .


Linux
  1. Pourquoi /bin/sh pointe-t-il vers /bin/dash et non /bin/bash ? ?

  2. Installer les binaires dans /bin, /sbin, /usr/bin et /usr/sbin, interactions avec --prefix et DESTDIR

  3. Comment /usr/bin/time mesure-t-il l'utilisation de la mémoire ?

  4. Comment faire en sorte que la commande python3 exécute Python 3.6 au lieu de 3.5 ?

  5. Quand dois-je utiliser #!/bin/bash et quand #!/bin/sh ?

Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

Comment utiliser Chmod sans /usr/bin/chmod ?

Comment un proxy Transparent Socks sait-il quelle adresse IP de destination utiliser ?

Comment la commande Xdg-open sait-elle quelle application utiliser pour ouvrir un fichier ?

Linux – /sbin/init n'existe pas ?

Déplacement du contenu de /bin vers /usr/bin, possible d'annuler ?