Have Bash Send Email When Done

Shell Programming

Have you ever wanted to automate the process of sending an email notification when a Bash script has finished running? I recently encountered this need, and I found a solution that I’d love to share with you. Sending an email when a Bash script completes its execution can be especially useful for monitoring long-running or critical tasks, providing you with peace of mind and real-time updates. In this article, I’ll guide you through the process of setting up Bash to send an email when a script has finished.

Setting Up the Email Service

The first step in this process is to ensure that your system is equipped to send emails. For this purpose, we’ll be using the mail command, which is a part of most Linux distributions. If the mail command is not installed on your system, you can install it using the package manager specific to your distribution.

Once the mail command is available, you will need to configure it to work with your email service provider. This typically involves providing the SMTP server details, authentication credentials, and other relevant settings. If you’re using a popular email service such as Gmail, you can find detailed guides online for configuring the mail command to work with it.

Creating the Bash Script

With the email service set up, we can now create the Bash script that will trigger the email notification upon completion. Let’s consider a simple example where we have a script named backup.sh that performs a system backup. At the end of the script’s execution, we want to receive an email confirming that the backup has been completed successfully.

Within the backup.sh script, we can include the following lines to send the email:

# Your backup script commands here

# Send email notification
echo "Backup completed successfully" | mail -s "Backup Notification" [email protected]

In this example, the echo command is used to generate the email message, which is then piped to the mail command. The -s flag is used to specify the subject of the email, and [email protected] should be replaced with your actual email address.

Adding Conditional Notifications

For more complex scripts, you may want to introduce conditional notifications based on the outcome of the script’s execution. For instance, if the script encounters an error or failure, you may wish to receive an email with details about the issue. This can be achieved by incorporating conditional statements within the script to generate appropriate email notifications based on the script’s exit status.

Testing and Refining

Once the script is set up to send email notifications, it’s essential to thoroughly test its functionality. Running the script and verifying that the expected email notification is received will help ensure that everything is working as intended. Additionally, refining the content of the email message to include relevant details such as timestamps or specific output from the script can enhance the value of the notifications.


Integrating email notifications with Bash scripts can significantly improve your workflow by providing timely updates and alerts. Whether it’s for monitoring backups, batch processing, or any other automated tasks, the ability to receive email notifications upon script completion adds a valuable layer of awareness and automation to your system management. By following the steps outlined in this article, you can empower your Bash scripts to keep you informed and in control.