Shebang is a special character sequence consisting of the hash and exclamation mark (
#!) at the beginning of the script.
This is used to tell the operating system which program is used to parse the rest of the script.
The bash shebang is also known as
In this article, we will discuss the usage of shebang in bash scripts along with some examples.
What is the Bash shebang Interpreter Directive?
In Bash, Perl, or Python scripts you probably have seen shebang i.e. #! followed by some paths such as the below examples:
Have you ever thought why is this used? The Shebang on Bash or any shell script in Linux is used as an Interpreter Directive and it is not a comment, if you have ever thought so!
In general, the shebang interpreter directive takes the following form.
While using the shebang interpreter directive keep the following things in your mind.
- The directive should be the first line in the script
- It should always start with a shebang character i.e. #!
- The interpreter is a full path to an executable binary file for example
- Interpreter arguments are optional
- You can use white space after shebang this is optional
Ignoring The shebang interpreter directive
If you do not specify the interpreter line in a script then the script will parse using the default interpreter set for your shell.
For example, suppose you want to parse a script using
/bin/bash then you should mention it as the shebang interpreter directive otherwise it will be parsed using the default program on most systems by default it is
Example of Using shebang in Bash Scripts
There are two ways to use the shebang interpreter directive to set the default program to parse the script.
1. Using the absolute path to bash binary
2. Using env program
You can use either way to mention the shebang interpreter directive. The benefit of using the second approach is that it will search for the
bash executable in the user’s
$PATH environmental variable. If it finds more than one path of
bash, the first one will be used by the script.
The given example shows a sample script.
#!/bin/bash # bash script to add two numbers echo "Enter first number" read a echo "Enter second number" read b ((sum=a+b)) echo "The sum is $sum"
Before you execute this provide executable permission to this file. Let’s say you saved this file with the name
ex1.sh. Use the given command to make it executable.
chmod +x ex1.sh
Now you can run this script using –
This will display output something like the given in the image.
Alternatively, you execute this script using the given command.
But this will override the interpreter set in the shebang line. Using this method can lead to unexpected behavior of the script so try to avoid this.
I hope now you understand what is shebang and how to use it in bash scripts. Now if you have any queries then write us in the comments below.