shebangヘッダーは常にインタプリタのインストールディレクトリと一致する必要がありますか?それでは、なぜ両方とも私にとって効果的ですか#!/usr/bin/python
?#!/usr/local/bin/python
ベストアンサー1
他の人が指摘したように、shebang行は存在する実際のファイルを参照する必要があります。
これは、異なるシステムが異なる場所にバイナリをインストールできるため、スクリプトの移植性の弱点です。
他の人が述べたように、この問題を解決する1つの方法はリンクを使用することです。
別の方法は、システムの正しいパスを参照するようにスクリプトを編集することです。
/usr/bin/env
この問題を解決する別の方法は、PATHで実行可能ファイルを見つけることを使用することです。
だから代わりに:
#!/usr/bin/python
書く:
#!/usr/bin/env python
これにより、/usr/bin/env
個々の実行可能ファイルではなく、必要なときにのみシンボリックリンクをリンクできます。
もちろん、正しく機能するには、実行可能ファイルがPATHに存在する必要があります。
ご覧のとおり、100%のクリーンなソリューションはありません。覚えておいてください:「悪いほど良い」(: