回车命令回车


9

我正在练习带有选项\r(回车)的echo命令,如下所示。

echo -e "This is \r my college"

输出:

 my college

但是当我在\r下面再添加一个单词时

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

然后它给我输出像:

 my college the

另一个例子

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

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

所以,我想知道这里回车的实际目的是什么?


这是不可复制的。␣my college与第一个命令一样,第二个命令产生输出。
库沙兰丹

3
echo -e众所周知是不可携带的。您应该使用printf代替。
点钟

Answers:


20

\r就是这样,一个“回车” -没有别的。这意味着\r遗嘱之后的内容将覆盖已经打印的内容的开头。

例如:

echo -e "1234\r56"

将显示:

5634

echo已打印,1234然后返回到该行的开头,并打印56在的顶部12

对于新行,请尝试\n。也不需要空格。例如:

echo -e "This is\nmy college"

将输出:

This is
my college

回车对于以下情况很有用:

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

它将显示date在其自身的顶部,而不是在每个循环之后创建新行。


1
sysvinit提供的函数中也使用了回车符。例如echo_success来自的函数/etc/init.d/functions
Trevor Boyd Smith,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.