user3086014 user3086014 - 1 month ago 6
Linux Question

How to insert a new line in Linux shell script?

I want to insert a new line between multiple echo statements. I have tried

echo "hello\n"
, but it is not working. It is printing
\n
. I want the desired output like this:

Create the snapshots

Snapshot created

Answer

The simplest way to insert a new line between echo statements is to insert an echo without arguments, for example:

echo Create the snapshots
echo
echo Snapshot created

That is, echo without any arguments will print a blank line.

Another alternative to use a single echo statement with the -e flag and embedded newline characters \n:

echo -e "Create the snapshots\n\nSnapshot created"

However, this is not portable, as the -e flag doesn't work consistently in all systems. A better way if you really want to do this is using printf:

printf "Create the snapshots\n\nSnapshot created\n"

This works more reliably in many systems, though it's not POSIX compliant. Notice that you must manually add a \n at the end, as printf doesn't append a newline automatically as echo does.