7

When we write shell scripts we do this:

#!/bin/bash

But What if bash is in /usr/bin/? How can we find it in a portable way inside script? I did this, but it gives error:

#!which bash

1 Answer 1

10

If bash is in the different location you can hash bang it as follows:

#!/usr/bin/env bash

Location for env is pretty standard across the variants.

4
  • 7
    A similar arabesque is useful for python scripts: #!/usr/bin/env python Feb 19, 2012 at 19:43
  • 2
    python, perl and all other scripting languages.
    – Karlson
    Feb 19, 2012 at 20:02
  • 1
    But this method does have some drawbacks; see this question and this answer. Most systems are going to install bash as /bin/bash (via a symlink if necessary) simply because so many scripts out there have #!/bin/bash. Feb 19, 2012 at 21:59
  • 1
    There are drawbacks to using either method but the fact that scripts out there use #!/bin/bash doesn't necessarily make them right.
    – Karlson
    Feb 20, 2012 at 0:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.