What is Shebang and How to Use this Character Sequence in Linux

Shebang Feature

One of the best features of Linux is that you can easily create scripts that are designed to automate and simplify tasks. This can help when processing large groups of files, like log files if you’re a Systems Administrator or CSV and TXT files if you’re doing some kind of research. However, there’s one very specific set of characters that you have to understand to get scripting – the Shebang or #!. We answer all your questions about the Shebang in this tutorial, a guide on how to use this character set in Linux.

What Is the Shebang?

The Shebang, or #!, is a character set used to direct your system on which interpreter to use. If you’re not familiar with what an interpreter is, it’s basically the program that reads the commands you enter into the terminal on your Linux system. You probably know it as Bash, but you also could use Fsh, Zsh, or Ksh.

This is a binary program that reads the commands you put into it, like ls or xargs, and figures out what to do with them. The full path is usually /bin/bash or something like that. Check out our guide on the Linux virtual directory structure if you’re confused what that means.

#! is used in a text file of some kind to load the proper interpreter for the code that’s below that file. You could write out a script like what is shown in the following image.

Shebang Plain Sample Script

And run it like what is shown in this image.

Shebang Plain Script Output

That will work for you, but it may get annoying after a while. A better way to do it might be like this image.

Shebang Sample Script

And then run it like this.

Shebang Sample Script Output

Why Was the Shebang Invented?

While using the Shebang takes an extra step when creating the script, being able to use a ./ or “dot-slash” to run your scripts will make it easier down the road. The script takes care of which interpreter to pass the commands to, meaning you don’t have to remember. This is great if you’re scheduling it as a cron job or if you’re executing scripts from within other scripts.

It makes the system more simple to administer because regardless of whether you want Bash, Zsh, or Python to interpret the contents of the files, having that as the first line of your script will make it drop-dead simple.

How Do I Use the Shebang?

It’s very simple: just type it in the first line of your script file along with the absolute path to the interpreter you want to pass the commands to. Here’s a couple of examples:

#!/bin/bash
#!/bin/zsh
#!/usr/bin/env python3

Once that’s in the file, start typing below it. Once you’re done, save your file and make it executable by running one of the following commands:

chmod 755 SCRIPT-NAME
chmod a+x SCRIPT-NAME

They will both accomplish the same thing. From there, all you have to do is run your script like this:

./SCRIPT_NAME

And you’re done! It’s that simple.

If you enjoyed this guide on how to use the Shebang, make sure you check out some of our other Linux how-to’s, like our guides on fixing the “No space left on device” error and repairing a corrupted USB drive.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox