What is the purpose of using #!/usr/bin/env <sh|bash|python>
shebang compared to #!/bin/bash
, #!/bin/sh
or #!/usr/bin/python
?
Command Line – Why Use env in Shebang?
bashcommand lineenvironment
bashcommand lineenvironment
What is the purpose of using #!/usr/bin/env <sh|bash|python>
shebang compared to #!/bin/bash
, #!/bin/sh
or #!/usr/bin/python
?
Best Answer
Some people might use a different python (perl, etc.) than the system one.
/usr/bin/env python
would run the version configured as the current one, possibly making the script more portable.On the other hand, reportedly, some systems do not have
/usr/bin/env
. Also, you cannot use#!/usr/bin/env foo x
as a replacement for#!foo x
, becausefoo x
will be interpreted as a single argument. So the value of the approach is debatable.