logo

터미널에서 커서의 위치를 변경하는 법 📂프로그래밍

터미널에서 커서의 위치를 변경하는 법

개요

터미널에서 커서의 위치를 변경하려면 특수한 문자를 출력하면 된다. 이렇게 커서의 위치를 제어해서 출력을 반복하는 기능은 진행상황이나 목록을 지면의 낭비 없이 보여줄 때 유용하다.

  • \r: 캐리지리턴이라 불리며, 커서를 현재 줄의 맨 앞으로 이동시킨다.
  • \x1b[1A: 이전 줄로 이동하는 ANSI 이스케이프 코드이다.
  • \x1b[F: 현재 줄에서 이전 줄의 맨 앞으로 이동하는 ANSI 이스케이프 코드이다.

여기서 \x1b는 이스케이프 문자로, ANSI 이스케이프 시퀀스를 시작하는 역할을 한다.

예시

loading.webp

위 움짤은 가상의 로딩화면을 보여주는 줄리아 코드를 실행시킨 것이다. 근본적인 원리는 문자열의 출력이므로 다른 언어라도 비슷한 방식으로 구현할 수 있다.

println("loading...")
for i in 1:100
    print("\r", i, "%")
    sleep(0.01)
end
print("\x1b[F", "done!", " " ^ 10)