반향 명령으로 캐리지 리턴


9

\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

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


재현 할 수 없습니다. 두 번째 명령은 첫 번째 명령 ␣my college과 마찬가지로 출력이 됩니다.
Kusalananda

3
echo -e악명 높은 것으로 유명합니다. 아마도 printf대신 사용해야 합니다.
tripleee

답변:


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_successfrom 함수 입니다 /etc/init.d/functions.
Trevor Boyd Smith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.