5 Creative Ways To Use The Linux ECHO Command In Bash Scripts

Table of Contents

If you’re a Linux user, then you’ve undoubtedly come across the Linux echo command at some point. It’s like the Swiss Army knife of the command line – a versatile tool that can be used for a variety of tasks, from displaying text to redirecting output to files. And let’s face it, who doesn’t love a good command that simplifies things and makes life easier? By mastering the echo command, you can take your Linux skills to the next level and become a true command line ninja. In this article, we’re going to delve deep into the features and options of the echo command, and show you how to use it to display messages, manipulate strings, and generally make your life easier. So strap in, grab a cup of coffee, and get ready to unleash the power of echo!

1. Output to Console

Best start with the basics right? At the most simple level, the Linux echo command is widely used to just output a line of text in the terminal.

				
					echo "Hello"
				
			

In other situations, you can get creative and output a line of text but using colors. I find this super fancy and handy for automated scripts because you can easily differentiate between what is verbose spam and what is the next step in the script. This is one of my favorite formats for outputting colored lines or steps in scripts. Feel free to steal it!

				
					echo -e "\e[37m[\e[33m*\e[37m] \e[32mStarting Script"
				
			

If you need a hand on finding out what color codes to use, you can find a chart for them here. Also, if you want to learn how to actually write bash scripts, check out these other posts here and here.

2. Display System Information

You can actually use echo in combination with other Linux commands to display system information, such as the current time, date, and uptime. For example, this is how you would use echo to display the current time in-line.

				
					echo "The current time is $(date +%T)"
				
			

Or, perhaps you would like to display… I don’t know… your hostname!

				
					echo "The current hostname is: $(hostname)"
				
			

3. Output to a file

I guess this is also more of a basic thing, but if you don’t already know. You can output just about anything to a file using these operators >>.
				
					echo "The only line in this file" > hello.txt
				
			

And

				
					echo "An additional line in this file" >> hello.txt
				
			
There are two key differences here. The first example using the > operator, creates a new file with the contents after echo. But beware! This will replace any existing file that happens to share the same file name. Whereas the second example will create a new file with the contents after echo, but will append to any existing file that happens to share the same file name.

4. Progress Bar

Oh yea, now we’re getting into the big boy stuff. Have you ever wanted to add a fancy progress bar to your bash script? it’s actually not that hard at all! Check this out.

				
					for i in {1..10}
do
    echo -ne "Progress: ["
    for j in $(seq 1 $i)
    do
        echo -ne "#"
    done
    for k in $(seq $i 9)
    do
        echo -ne " "
    done
    echo -ne "] ($i/10)\r"
    sleep 1
done

				
			

Now, I know this is a lot to handle if you’re new to bash in general but let’s break down what is going on here.

This script creates a progress bar that updates in real-time as it counts from 1 to 10. The progress bar is displayed using the echo command, which prints out a series of # symbols to represent the progress.

The \r character at the end of the echo command is used to move the cursor back to the beginning of the line, so that the progress bar is updated in place.

The sleep command is used to pause the script for 1 second between each iteration, so that the progress bar is updated slowly enough to be visible.

In practice, you would not use the sleep command. Instead, delete the sleep command and right after the first do you would execute whatever task you actually want to complete.

5. Password Generator

Yes, that is right. A password generator. Unconventional and a bit complicated but if there is a will, there is a way!

				
					echo "$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)"
				
			

What on earth is going on here? Lets’ break it down.

So, the random output generator is like a magical spell that conjures up a completely random string of characters. It’s like a mini lottery machine, but instead of numbers, it spits out letters and numbers in a completely unpredictable way.

First, we start with the cat /dev/urandom command, which is a virtual device in Linux used to generate random data. From there, we move on to the tr -dc 'a-zA-Z0-9' command, which is the truncate command that will remove all non-alphanumeric characters from the stream of bytes we just conjured up. The truncate command can be customized for what characters to use in your brand new password generated from the void.

Next, we use the fold -w 32 command to fold or wrap the output into lines of 32 characters. This is like a magical incantation that transforms the chaotic stream of bytes into a more structured, readable format.

Finally, we use the head -n 1 command to select only the first line of output. This is like a wise old sage who looks deep into the swirling mists of the future to select the one true fate that will be revealed to us.

And voila! The final touch is to use command substitution to embed the output of these commands into an echo statement, which displays the random string on the terminal. It’s like a beautiful fireworks display, bursting forth in a shower of letters and numbers, to delight and amaze us with its utter randomness.

In conclusion, the Linux echo command is a versatile and powerful tool that can be used in a wide range of creative and innovative ways. From simple tasks like printing messages to the terminal, to more complex tasks like generating random output or creating progress bars, the possibilities are virtually endless. By exploring the various features and options of the echo command, Linux users can improve their productivity, streamline their workflow, and even add a touch of personality and humor to their command line experience. So go forth and explore the magic of the echo command, and see what wondrous things you can conjure up!

Meet the Author

boxes-header
Boyd Gordon
GNOME Boxes with KVM

Ever need a VM ASAP without having to find the ISO file yourself? Today we will explore how spin up a VM at the push

View Post

Leave a Reply