最近、多くのスクリプトが Shebang で/usr/bin/env
を使用していることに気付きました。私は主に Bash と Python を使用することを見てきましたが、これまで [〜#〜] posix [〜#〜]sh
と組み合わせて使用することはありません。 (ash
、dash
、...)。
なぜ、そして私が移植性の高いものであるのか [〜#〜] posix [〜#〜] シェルスクリプトがenv
アプローチの恩恵を受ける可能性があるのはなぜですか?
使用するかどうかについての一般的な合意はありますか?
標準:
#!/bin/sh
環境:
#!/usr/bin/env sh
これを十分に強調しましょう:
sh
でこれを見たことはありません。
#!/bin/sh
に設定すると、そのファイル/bin/sh
に直接移動します。
#!/usr/bin/env sh
に設定すると、sh
を引数として/usr/bin/env
が実行されます。これにより、/bin/sh
を明示的に指定するのではなく、sh
変数のPATH
によってスクリプトが実行されます。