You may notice that most shell and Perl script starts with the following line:
It is called a shebang. It consists of a number sign and an exclamation point character (#!), followed by the full path to the interpreter such as /bin/bash. All scripts under UNIX-like os and Linux execute using the interpreter specified on a first line. However there is a small problem. BASH or Perl is not always in the same location (PATH) such as /bin/bash or /usr/bin/perl. If you want to make sure that script is portable across different UNIX like operating system you need to use /usr/bin/env command.
More on env
The env command allows to run a program in a modified environment. First, find line
For example here is a small script:
#!/usr/bin/env bash x=5 y=10 echo "$x and $y"
#!/usr/bin/env perl use warnings; print "Hello " x 5; print "\\n";
Now you do not have to search for a program via the PATH environment variable. It makes the script more portable. Also, note that it is not a foolproof method. Always make sure you have /usr/bin/env exists or use a softlink/symbolic link to point it to correct path. Moreover, yes your work or script looks more professional with this simple hack.Share this on: