web-dev-qa-db-ja.com

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

#!/usr/bin/env <sh|bash|python>#!/bin/bash、または#!/bin/shと比較して#!/usr/bin/python Shebangを使用する目的は何ですか?

19
Tuminoid

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

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

11
choroba