
내 스크립트는 일부 텍스트를 에코하고 추가로 처리합니다. tput을 사용하여 화면을 지우고 화면의 첫 번째 줄을 유지하고 싶습니다.
예를 들어.
echo Started
seq 1000
tput cup 1 0 && tput ed
이 방법으로 Started는 화면에 남아 있고 다른 모든 것은 지워지지만 출력이 작은 경우(예: seq 10)에만 작동하고 더 긴 스크롤 출력에는 작동하지 않습니다.
답변1
일부 터미널에서는 스크롤 영역을 정의할 수 있습니다.
tput csr 1 "$(( ${LINES:-$(tput lines)} - 1 ))"
tput clear
echo Started
seq 1000
"시작" 행이 화면 밖으로 스크롤되지 않도록 두 번째 행에서 마지막 행까지 스크롤 영역을 설정합니다. 그런 다음:
tput cup 1 0 && tput ed
마지막 행에서 두 번째 행을 다시 지웁니다.
자세한 내용은 terminfo(5)를 참조하십시오.
버전 608부터는 비스크롤 헤더 행을 지정할 수 있는 옵션 less
도 있습니다 .--header=lines[,cols]
{
echo Started; seq 1000
} | less --header=1
복귀 후에도 화면에 남는 제목을 -X
포함한 출력 옵션을 추가할 수 있습니다 . 이스케이프 시퀀스의 그래픽 재생을 허용하고 입력이 화면에 맞는 경우 페이지를 매기지 않는 옵션 less
도 참조하세요 .-R
less
-F