Retorno de carro com o comando echo

6

Eu estava praticando o comando echo com a opção \r (retorno de carro) como abaixo.

echo -e "This is \r my college"

saída:

 my college

mas quando adiciono mais uma palavra antes de \r como abaixo

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

Em seguida, ele me dá uma saída como:

 my college the

Outro exemplo

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

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

Então, eu queria saber qual é o propósito real do transporte retornar aqui?

    
por Dip 01.07.2017 / 10:12

1 resposta

12

O \r é apenas isso, um "retorno de carro" - nada mais. Isso significa que depois do \r irá substituir o início do que já foi impresso.

Por exemplo:

echo -e "1234\r56"

exibirá:

5634

echo imprimiu 1234 , depois retornou ao início da linha e imprimiu 56 sobre a parte superior de 12 .

Para uma nova linha, tente \n . Não há necessidade de espaços também. Por exemplo:

echo -e "This is\nmy college"

Qual será a saída:

This is
my college

O retorno de carro é útil para coisas como esta:

#!/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

Que exibirá date sobre o topo de si mesmo, em vez de criar uma nova linha após cada loop.

    
por 01.07.2017 / 10:25