POSIX シェルスクリプト shebang #!/bin/sh と #!/usr/bin/env sh の違いは何ですか?

POSIX シェルスクリプト shebang #!/bin/sh と #!/usr/bin/env sh の違いは何ですか?

私は最近多くのスクリプトを持ってい/usr/bin/envますシェルボーン。主に使用しているようです吹くそしてPythonでも、今までは一度もPOSIX sh( ash,, dash...).

私の意図が携帯性に優れているのなら、なぜ理由があるのだろうか。POSIXシェルスクリプトはenvこのアプローチの利点を享受できますか?


以下を使用するかどうかに関する一般的な合意はありますか?

  • 基準:

    #!/bin/sh
    
  • 環境:

    #!/usr/bin/env sh
    

これを完全に強調します。

私はこれを見たことがありませんsh

ベストアンサー1

に設定すると、#!/bin/shファイルに直接移動します/bin/sh

パラメータ#!/usr/bin/env shとして実行するように設定します。これにより、スクリプトは明示的に実行されず、in変数を介して実行されます。/usr/bin/envshshPATH/bin/sh

おすすめ記事