나는 이런 일을하고 싶다 :
user@myserver$echo -en "\rSome text to overwrite same line command is on"
문제는 내가 끝내는 결과는 다음과 같다는 것입니다.
Some text to overwrite same line command is onuser@myserver$
이렇게 하면 echo -e
다음과 같은 결과를 얻습니다.
Some text to overwrite same line command is on
user@myserver$
콘솔이 스크롤된다는 점을 제외하면 괜찮습니다. 내 tmux 콘솔 창의 높이가 한 줄밖에 되지 않기 때문에 스크롤하는 것을 원하지 않습니다. 문자열의 오른쪽을 공백으로 채우려고 시도했지만 작동하지 않습니다.
답변1
$ echo -en "\rSome text"
여기서는 \r
커서를 줄의 시작 부분으로 되돌리기 때문에 많은 일을 하지 않지만, 명령줄에서 Enter를 누르면 커서는 이미 프롬프트 다음 줄의 시작 부분에 있습니다. 간단한 에코와 마찬가지로 출력은 자체 라인에 있습니다.
$ echo foo
foo
따라서 동일한 명령줄을 잘 덮어쓸 수 없습니다(적어도 새 명령줄을 실행하기 전에는 불가능). 그러나 표시된 마지막 행에만 관심이 있는 경우에는 이 작업을 수행할 필요가 없습니다. 예방해야만 해다음프롬프트를 인쇄합니다. read
계속하기 전에 일부 입력(Enter 누르기)을 기다릴 수 있습니다 . 커서는 _
뒤에 남아 있습니다 bar
.
$ echo -n foo bar ; read
foo bar_
답변2
노력하다
echo -en "\rSome text to overwrite same line command is on\n"