태그 보관물: tput

tput

명령 줄에서 화면의 절반을 지 웁니다. 있습니까?하지만 화면 상단에 프롬프트를 남기지 않고

터미널을 지우는 방법이 있습니까?하지만 화면 상단에 프롬프트를 남기지 않고 가운데에 남겨 두십시오. clear기본적으로 모든 명령 줄 매개 변수를 무시하는 것처럼 보입니다 .

나는 이것을 할 수있는 방법이 tput있지만 그것을 찾을 수 없다고 생각했다.



답변

tput커서를 화면의 주어진 줄로 이동할 수 있습니다 .

tput cup 11 0

열두 번째 줄로 이동합니다 (값은 0부터 계산).

동일한 선 tput을 따라 ed기능을 사용하여 해당 위치에서 화면 끝까지 지울 수 있습니다 . 클로즈업,

tput cup 11 0 && tput ed

원하는 것일 수도 있습니다.

화면의 중간 표시로 이동하려면 첫 번째 숫자가

stty size

(대부분의 시스템에서) 화면의 행 수입니다. 명령에 추가하기 :

tput cup $(stty size|awk '{print int($1/2);}') 0 && tput ed

clear프로그램은 다음과 다릅니다 tput ed.

  • 커서를 위치 (왼쪽 위)로 이동시킵니다.
  • 그 시점부터 화면 끝까지 지 웁니다.

주의 사항 : 일부 플랫폼에서는 tput ed오래 전에 수정 된 문제로 인해 작동하지 않을 수 있습니다. 이 경우 curses / ncurses 구성을 업그레이드하면 문제가 해결됩니다.


답변

줄 수가 홀수이면 tput cup전체 페이지 를 지 웁니다.
다음과 같이 작성하면 문제가 해결됩니다.

tput cup $(($(stty size|awk '{print $1}')/2)) 0 && tput ed

답변

나머지를 유지하면서 화면 의 아래쪽 절반을 지우고 싶다면 다음과 같이하십시오.

half=$(stty size | awk '{print int($1/2)-1;}'); for i in `seq ${half}`; do echo '' ; done && tput cup ${half} 0 && tput ed

편집 : 명확히하기 위해, seq $(stty size | cut -d' ' -f1)다른 답변 을 실행 하면 출력의 전반부는 그대로 남고이 명령은 후반을 떠나게됩니다 (즉 가장 최근의 출력).


답변