BASH Programming

Echo without Newline Character in Bash

When working with bash scripts, you may find the need to print text to the console without a newline character at the end. By default, the echo command in bash appends a newline character at the end of the output. This may not always be desirable, particularly if you need to format the output in a specific way. Fortunately, there are several ways to use echo without a newline character in bash but this article will cover three different methods.

1: How to Use echo without New Line Character Using the -n Option

The most straightforward way to use echo without a newline character is to use the -n option. Here’s an example:

#!/bin/bash

echo -n "Please enter your name: "

read name

echo -n "Hello, $name!"

echo " "

The -n option will prevent echo from add a newline character at the end of the output and this will produce the following output:

2: How to Use echo without New Line Character Using the -e Option with Escape Sequences

The -e option enables the interpretation of escape sequences, which can be used to produce output without a newline character. Here’s an example:

#!/bin/bash

echo -e "Please enter your name:\c"

read name

echo -e "Hello,\c"

echo -e $name"!"

echo " "

The \c escape sequence tells echo to suppress the newline character. This will produce the following output and note that the -e option is required to enable escape sequence interpretation:

3: How to Use echo without New Line Character Using a Combination of echo and tr Commands

Another way to remove the newline character is to use the tr command to delete it. Here’s an example:

#!/bin/bash

echo -n "Please enter your name: " | tr -d '\n'

read name

echo "Hello, $name!" | tr -d '\n'

echo " "

The tr command is used to delete the newline character (\n) from the output of echo. This will produce the following output:

The first “echo” command is modified to use the “-n” option, which prevents the command from adding a trailing newline character. This means that the prompt for the user’s name will be printed on the same line as the “Please enter your name:” text.

The second “echo” command is modified to include the user’s name in the output using variable expansion (i.e. “$name”). The “-n” option is also used to prevent the command from adding a trailing newline character. The final “echo” command is left unchanged, as it simply prints a blank line to the terminal

Conclusion

These are some of the ways to use echo without a newline character in bash; however, each method has its own advantages and disadvantages, so you should choose the one that best fits your preference. Using the -n option with echo is the simplest and most used method, but the other methods provide additional flexibility for more complex scenarios.

About the author

Aaliyan Javaid

I am an electrical engineer and a technical blogger. My keen interest in embedded systems has led me to write and share my knowledge about them.