Skip to content

How to exit Bash script?

When coding any script, let alone Bash, having an exit clause in your script is a good coding practice. If you need to terminate your script based on a condition or after a certain action based on the exit code of the command, these clauses come in handy.

In this article, we’re going over the Bash exit command. We’ll be taking a look at how you can use this command and exit statuses of executed commands to terminate a Bash script. 

Also read: How to install Kali Linux on Virtualbox?

Bash exit status

Regardless of successful termination, each shell command returns an exit code. By default, non-zero error codes mean that there was some problem with the execution. 

The $? variable returns the exit status of the last executed command. For example, if you run ls on a non-existent directory, the return code will be non-zero. 

ls /no_dir &> /dev/null
echo $?

When you’re running multiple commands in a pipeline, the exit status is that of the last command executed.

sudo tcpdump -n -l | tee file.out
echo $?

The above set of commands will return the exit status of the tee command.

Also read: How to remove a Directory in Linux?

Bash exit command

The exit command exits the shell with the status provided.

exit N

In the above command, the script will end when encountering the status code. If no code is provided, the command uses the error code of the last executed command. 

When you use this command in a shell script, the error code returned is of the last executed command. 


You can use the exit command in conjunction with statements like if. The following example terminates the script if the specified string is found in a filename. 

if grep -q "search-string" filename then
  echo "String found."
  echo "String not found."

If you’re running a list of commands using conditional operators like && or ||, the command’s exit status determines whether the condition is true or not. In the example below, the mkdir command will only execute if the cd command executes and returns 0. 

cd /opt/code && mkdir project

Below is an example of what will happen if a script is run by a non-root user. 


if [[ "$(whoami)" != root ]]; then
  echo "Only user root can run this script."
  exit 1

echo "doing stuff..."

exit 0

Now if you run this script as root, the exit code will be 0, otherwise, you’ll get 1.

Also read: Mint vs Ubuntu: Linux distro comparison

Hello There!

If you like what you read, please support our publication by sharing it with your friends, family and colleagues. We're an ad-supported publication. So, if you're running an Adblocker, we humbly request you to whitelist us.

Share on facebook
Share on whatsapp
Share on twitter
Share on reddit
Share on linkedin
Share on pocket
Share on pinterest
Share on telegram
Share on stumbleupon
Share on digg
Share on tumblr
Share on email
Share on skype
Share on xing
Share on vk
Share on odnoklassniki
Share on mix