This question already has an answer here:
-
Echo newline in Bash prints literal \n
17 answers
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
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.
Use this echo statement
echo -e "Hai\nHello\nTesting\n"
The output is
Hai
Hello
Testing
echo $'Create the snapshots\nSnapshot created\n'
You could use the printf(1) command, e.g. like
printf "Hello times %d\nHere\n" $[2+3]
The printf
command may accept arguments and needs a format control string similar (but not exactly the same) to the one for the standard C printf(3) function...