シバンでenvを使用する理由


回答:


11

一部の人は、システムのものとは異なるpython(perlなど)を使用する場合があります。/usr/bin/env python現在のバージョンとして構成されたバージョンを実行し、スクリプトの移植性を高める可能性があります。

一方、伝えられるところでは、一部のシステムにはがありません/usr/bin/env。また、は単一の引数として解釈されるため#!/usr/bin/env foo x、の代わりとして使用することはできません。したがって、アプローチの価値は議論の余地があります。#!foo xfoo x


1
どこで構成されていますか?info coreutils 'env invocation'私が作るの呼び出しのこのフォームは、必ずそれが外部バイナリの代わりに、内蔵されたシェルが、どのように表示なしで見ることができますenv pythonから、何が違うのでしょうかpython
ツミノイド

4
あなたは、PATHおそらく含まれて/usr/local/bin最初。誰かが手動でPythonをインストールした場合、それenvを呼び出しますが、それ#!/usr/bin/pythonをバイパスします。
ロビーバサック

2
virtualenvは非常に人気のあるツールであり、Python実行可能ファイルを作業ディレクトリにインストールします。env正しく動作させるには、トリックが必要です。
フリム

2
@Tuminoid:そのとおりです:はとenv python同じpythonです。ただし、問題は、次のようなシバンを書くことができないことです#!python。フルパスを指定する必要があります。
アンドレアコルベッリーニ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.