반향 명령으로 캐리지 리턴 -e “This

\r아래와 같이 옵션 (캐리지 리턴)으로 에코 명령을 연습하고있었습니다 .

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

그래서 나는 실제 운송 목적이 무엇인지 알고 싶었습니다.



답변

\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각 루프 후에 새 줄을 만드는 대신 자체 상단에 표시됩니다 .


답변