GNU/Linux >> Linux の 問題 >  >> Linux

Python – / usr / bin / envはどのプログラムを使用するかをどのように知っていますか?

シバン#!/usr/bin/env pythonを使用する場合 スクリプトを実行するために、システムはどのpythonをどのように認識しますか 使用しますか? pythonを探す場合 環境変数のビンパス何も見つかりません。

env | grep -i python

承認された回答:

シバンはインタプリタへのフルパスを使用することを想定しているため、次の構文は正しくありません。

#!python

このようにフルパスを設定すると、うまくいく可能性があります:

#!/usr/local/bin/python

ただし、Pythonが/binにインストールされている可能性があるため、移植性はありません。 、/opt/python/bin 、または他の場所。

envを使用する

#!/usr/bin/env python

pythonと同等のフルパスをOSに移植可能な方法で指定できるようにするメソッドです。 最初にPATHにあります 。


Linux
  1. Linuxは複数の連続したパスセパレーター(/ home //// username /// file)をどのように処理しますか?

  2. Shebangとして「#!/ path / to / name」の代わりに「#!/ usr / bin / envName」を使用する方がよいのはなぜですか?

  3. 透過的なSocksプロキシは、どの宛先IPを使用するかをどのように認識しますか?

  1. Linux – / usr/binと/usr/sbinを/bin(gnu / linux)にマージしますか?

  2. バイナリを /bin、/sbin、/usr/bin、および /usr/sbin にインストールし、 --prefix および DESTDIR と対話します

  3. #!/usr/bin/env bash と #!/usr/bin/bash の違いは何ですか?

  1. cmake --version は /usr/bin/cmake を指し、どの cmake は /usr/local/bin を指しますか

  2. /usr/sbin、/usr/local/sbin、/usr/local/bin の意味は何ですか?

  3. #!/bin/bash と #!/bin/sh はいつ使用する必要がありますか?