8

I was practicing echo command with option \r (carriage return) as below.

echo -e "This is \r my college"

output:

 my college

but when I add one more word before \r as below

echo -e "This is the \r my college"

Then it gives me output like:

 my college the

Another example

echo -e "This is \r valid data"
 valid data

echo -e "This is not a \r valid data"
 valid data a

So, I wanted to know that what is the actual purpose of carriage return here?

17

The \r is just that, a "carriage return" - nothing else. This means what is after the \r will overwrite the beginning of what has already been printed.

For example:

echo -e "1234\r56"

Will display:

5634

echo has printed 1234 then gone back to the begining of the line and printed 56 over the top of 12.

For a new line, try \n instead. No need for spaces too. For example:

echo -e "This is\nmy college"

Which will output:

This is
my college

The carriage return is useful for things like this:

#!/bin/sh
i=0
while [ $i -lt 3 ]
do
    echo -ne "\r"`date` #you should remove new line too
    sleep 1
    i=$(($i + 1))
done
exit

Which will display date over the top of itself instead of creating a new line after each loop.

  • 1
    carriage return is also used in the sysvinit provided functions. For example the function echo_success from /etc/init.d/functions. – Trevor Boyd Smith Jan 7 at 14:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.