When we write shell scripts we do this:


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


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.

  • 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .